Commit Graph

1823 Commits

Author SHA1 Message Date
miruka
84734599e3 Fix lag with Alt+S when mainpane is collapsed 2020-03-17 14:48:14 -04:00
miruka
d96304dc33 Have labels for text fields 2020-03-17 14:24:35 -04:00
miruka
8452bdd5e7 Print only short error when image retrieval fails 2020-03-17 12:11:18 -04:00
miruka
e4d47b9b9c Ensure we don't atomically write an empty file 2020-03-17 12:09:08 -04:00
miruka
9a66afb4eb Delay msgs a bit more for faster room switching 2020-03-16 20:58:50 -04:00
miruka
51c266d2e4 Slight fix for message avatars size 2020-03-16 17:21:17 -04:00
miruka
c969a98f30 Clear the last event date when clearing room msgs 2020-03-16 12:36:39 -04:00
miruka
e23f6f2e7c Remove uneeded and update some QML imports 2020-03-16 09:04:59 -04:00
miruka
992719554f Log the involved user id in sync failures 2020-03-16 00:31:31 -04:00
miruka
1b1912a55f Fix "developper" typos 2020-03-16 00:25:30 -04:00
miruka
665c00645b Fix displaying transparent GIFs 2020-03-16 00:15:47 -04:00
miruka
977e75e95e Bundle default theme fonts 2020-03-15 19:08:12 -04:00
miruka
647d2e1f1f Fix (explicitely define) popup overlay 2020-03-15 19:08:12 -04:00
miruka
bbc4a9bb17 Fix HMenuItem icon colors 2020-03-15 19:08:12 -04:00
miruka
cada86a05f Log server sync errors as warnings instead 2020-03-15 19:08:12 -04:00
miruka
faaa5933d4 Fix local echo 2020-03-15 19:08:12 -04:00
miruka
8a99ccd976 Make retry_decrypt_events() work for good 2020-03-15 19:08:12 -04:00
miruka
adbe2d88ee Fix dict changing size problem in retry_decrypt_..
Also add a copy() method to models, and make them able
to not have a sync_id (in which case they won't send pyotherside
events).
2020-03-15 19:08:12 -04:00
miruka
d00db2256d PointHand cursor when "upload profile pic" hovered 2020-03-15 19:08:12 -04:00
miruka
73d54b5788 Don't show CancelledError when logging out early 2020-03-15 19:08:12 -04:00
miruka
beac0ce3dd HBox: fix error when setting firstButton sometimes 2020-03-15 19:08:12 -04:00
miruka
25101578cc Fix retry_decrypting_events() 2020-03-15 19:08:12 -04:00
miruka
7fd41f3eb4 QML Utils.showError() function 2020-03-15 19:08:12 -04:00
miruka
de729e42d9 Notice event line: respect UI zoom 2020-03-15 19:08:12 -04:00
miruka
64d67234ab Fix room settings background 2020-03-15 19:08:12 -04:00
miruka
90a2773a8c Fix room header and composer avatar radius 2020-03-15 19:08:12 -04:00
miruka
ebab1e15c2 Add more control on radiuses from themes 2020-03-15 19:08:12 -04:00
miruka
615c08848d HBox: respect theme.radius 2020-03-15 19:08:12 -04:00
miruka
deb4161bbe Make fields and text areas respect theme.radius 2020-03-15 19:08:12 -04:00
miruka
1c23450805 Make events, checkbox, avatars respect radius 2020-03-15 19:08:12 -04:00
miruka
abdaf13da5 Add way to round images 2020-03-15 19:08:12 -04:00
miruka
4d2345f4b9 Fix JsonDataFile default file loading 2020-03-15 10:26:53 -04:00
miruka
f507523af6 Fix default theme retrieval mess 2020-03-14 22:20:41 -04:00
miruka
cc3bb3c4fd Fix utils.py import for Python 3.6 2020-03-14 17:32:05 -04:00
miruka
d3e01b938c Force fusion QML style, prevent problems with KDE 2020-03-14 17:31:52 -04:00
miruka
b85236d514 Slightly reduce "typing" icon size 2020-03-13 13:04:36 -04:00
miruka
9d7bffcee8 Ignore alias in room with no permission to talk 2020-03-13 12:47:01 -04:00
miruka
8d6fcf5c88 Limit display name setting to 255 bytes 2020-03-13 12:18:31 -04:00
miruka
5d7aa0b142 Fix composer alias field label overflow 2020-03-13 12:16:09 -04:00
miruka
3922903d38 Reduce text colors intensity 2020-03-13 12:11:02 -04:00
miruka
298043b3cb Prevent saving alias taken by other account 2020-03-13 12:10:47 -04:00
miruka
a0c42fe5a6 Example placeholder for composer alias 2020-03-13 11:44:47 -04:00
miruka
8c1c3ef05c Add explanation tooltip for composer alias 2020-03-13 11:35:05 -04:00
miruka
15afce3393 Fix invisible room pane filter placeholder text 2020-03-13 10:34:37 -04:00
miruka
190eb58187 Write user files and media atomically 2020-03-13 04:36:22 -04:00
miruka
9d3e2dbfc4 Fix quotes in room subtitles 2020-03-13 03:55:04 -04:00
miruka
630e011cfd HMxcImage: cancel media retrieval on destruction 2020-03-13 02:52:38 -04:00
miruka
7e5896f52b Fix MediaCache asyncio Semaphore early import bug 2020-03-13 02:46:21 -04:00
miruka
3a2771d138 Change main pane top bar buttons and layout 2020-03-13 01:41:38 -04:00
miruka
46a1c13088 Update LoadingScreen design 2020-03-13 01:17:47 -04:00
miruka
5cee0f6c8a Improve overall theme and pane colors 2020-03-13 01:09:04 -04:00
miruka
0068550410 Get rid of main pane error when no currentItem 2020-03-12 23:31:13 -04:00
miruka
05ebe955d0 Fix accentBackground/Element colors 2020-03-12 23:30:58 -04:00
miruka
710891be90 Fix add new account & focus filter rooms keybinds 2020-03-12 23:23:21 -04:00
miruka
02d09f405a Improve MainPane when reduced to minimumSize 2020-03-12 23:17:23 -04:00
miruka
ca53e18e24 Add main pane top bar, improve readability 2020-03-12 22:16:33 -04:00
miruka
247eb15281 Rename MainPaneToolBar to BottomBar 2020-03-12 17:15:36 -04:00
miruka
a6315f7829 Fix default theme path with QRC 2020-03-12 16:46:44 -04:00
miruka
b531ca0a4a Mention keys *until present time* are exported 2020-03-12 15:52:43 -04:00
miruka
77d877047b Update docstrings 2020-03-12 14:41:00 -04:00
miruka
04790b3ed3 EventList: Add missing QtQuick.Window import 2020-03-12 13:30:46 -04:00
miruka
9bad0132d6 Make upload cancelling instant without visual hack 2020-03-12 13:28:30 -04:00
miruka
e8d4823227 Unset parent_model when deleting item in model 2020-03-12 13:28:30 -04:00
miruka
8f19adf279 Don't show Chat spinner for short loadings 2020-03-12 13:28:30 -04:00
miruka
45ea3de3d8 Make keyboard room switching more reactive 2020-03-12 13:28:30 -04:00
miruka
b26fe10810 Load Chat faster by delaying EventList loading 2020-03-12 13:28:30 -04:00
miruka
8a43690676 Remove old HSortFilterProxy component 2020-03-11 11:05:32 -04:00
miruka
c8bf9a6e63 Optimize EventList cacheBuffer binding 2020-03-11 10:57:20 -04:00
miruka
5f6a23f051 Split HPage into more specialized components 2020-03-11 10:45:47 -04:00
miruka
1c9604c31a Add comment about file:// for theme image property 2020-03-10 12:28:22 -04:00
miruka
59296dd22c Change name and bump version 2020-03-10 10:41:27 -04:00
miruka
612c18ac28 Increase display names lightness 2020-03-10 10:04:30 -04:00
miruka
ecfdd8ff23 Glass.qpl: increase bgSaturation 2020-03-10 09:54:01 -04:00
miruka
298ab30672 Read theme in app dir if doesn't exist in user dir 2020-03-10 09:51:51 -04:00
miruka
264c2ab16b Rename themes 2020-03-10 09:48:51 -04:00
miruka
7c83041f6c Add new theme 2020-03-10 09:33:02 -04:00
miruka
a8c6538de1 Update register/reset not implemented labels 2020-03-10 09:03:56 -04:00
miruka
baac01d1ad Revise default theme 2020-03-10 08:58:14 -04:00
miruka
8d594e3e83 Fix room at index 0 not highlightable 2020-03-10 06:07:55 -04:00
miruka
89ee4c2361 Reselect the right room when main pane loses focus 2020-03-10 05:41:40 -04:00
miruka
aafbecfdda Fix main pane highlight 2020-03-10 05:38:28 -04:00
miruka
49966e06ad Fix Transfer.time_left that could be None 2020-03-09 17:36:47 -04:00
miruka
f9f558cd34 Fix Thumbnail.from_bytes() 2020-03-09 17:33:07 -04:00
miruka
24180fc346 GUI-report important errors that occur during sync
Important = "isn't a server 5xx error"
2020-03-09 13:08:09 -04:00
miruka
46f3f15694 Fix cached thumbnails extensions 2020-03-09 12:10:04 -04:00
miruka
7ee83c5fe4 Downloaded files: include title + ext in filename 2020-03-09 11:46:08 -04:00
miruka
bd7b45cc7a Add title property for EventMediaLoader 2020-03-09 11:08:07 -04:00
miruka
2a2b3df845 Utils.urlExtension: don't lowercase returned ext 2020-03-09 11:00:48 -04:00
miruka
ff642485e8 Show max size in "too large" UI Transfer error 2020-03-09 10:27:22 -04:00
miruka
048c1ddabf Reject files too large before attempting to upload 2020-03-09 10:23:08 -04:00
miruka
382235875c Upload thumbnails with the correct extension 2020-03-09 10:10:21 -04:00
miruka
2307d5f1b2 Fix thumbnail uploading for SVG files 2020-03-09 10:03:22 -04:00
miruka
61cc87cf18 Show max file size on upload button tooltip 2020-03-09 09:57:53 -04:00
miruka
ca8dd65f34 Disable buggy composer backspace override 2020-03-09 08:09:58 -04:00
miruka
0fa16400df Error msg for bad invites in non-federated room 2020-03-09 07:59:23 -04:00
miruka
c618fb8ba3 Don't upload thumbnail if heavier than original 2020-03-08 08:10:27 -04:00
miruka
e1b26d1ec7 Show thumbnail uploading progress when uploading 2020-03-08 08:05:41 -04:00
miruka
d1e42a72a0 Fix upload pause/cancel 2020-03-08 07:34:38 -04:00
miruka
cdb79d11aa Use const instead of let when possible 2020-03-08 04:46:20 -04:00
miruka
ffc8a13db6 Get rid of the HMxcImage undefined py warnings 2020-03-08 04:27:51 -04:00
miruka
606e8a25df PythonBridge: minor code improvements 2020-03-08 04:27:43 -04:00
miruka
7d2b85dfda Remove Chat user/roomInfo binding loop 2020-03-08 04:02:26 -04:00
miruka
46232e3fb1 Button icon.cache only exists for Qt 5.13+ 2020-03-07 13:08:18 -04:00
miruka
617e68cc71 Fix main pane list position when kb-scrolling top 2020-03-07 12:37:39 -04:00
miruka
5709b5b756 Fix local echoed message replaced only for one acc 2020-03-07 12:35:12 -04:00
miruka
9fc347ac10 Fix selecting a room in a collapsed account 2020-03-07 11:28:51 -04:00
miruka
ffca63653d Fix Enter in filter rooms field 2020-03-07 11:17:48 -04:00
miruka
1556e569b8 Replace room loading bar with an eventList header 2020-03-07 11:11:32 -04:00
miruka
269bd1d557 Improve filtered main pane keyboard navigation 2020-03-07 10:15:54 -04:00
miruka
f60b46f26b Account without matches: -opacity instead of hide
Hiding doesn't work properly
2020-03-07 09:45:52 -04:00
miruka
566aaf3a51 Fix main pane list scrolling? 2020-03-07 09:32:56 -04:00
miruka
c49f9b98b2 Split RoomPane into Base/MultiviewPane 2020-03-06 08:41:04 -04:00
miruka
191e86530f C++ hsluv(): ensure passing color within bounds 2020-02-14 12:32:45 -04:00
miruka
ff72983bb4 Don't copy the default theme to userdata dir 2020-02-14 12:21:24 -04:00
miruka
f6cec0bcdb Half-fix main pane scrolling? 2020-02-14 10:24:42 -04:00
miruka
7325c78c5a Highlight main pane items on startup and clicks 2020-02-13 07:19:27 -04:00
miruka
7547703bb0 Main pane list items keyboard activation 2020-02-13 05:56:10 -04:00
miruka
4636a36154 AccountRoomsList highlight delegate scrolling 2020-02-13 05:36:28 -04:00
miruka
a78f5506b8 AccountRoomList keyboard up/down
Item activation or proper scrolling not reimplemented yet
2020-02-12 17:58:24 -04:00
miruka
ce0a868579 Refix Event.source, JSONify dicts for ListModel 2020-02-12 14:14:09 -04:00
miruka
ae780345e8 Make "Filter members" work again 2020-02-12 08:15:54 -04:00
miruka
9a0969adf5 Fix Event.source for messages we send 2020-02-12 08:10:59 -04:00
miruka
f922204644 Optimize Model insertions (blist + bisect) 2020-02-12 07:43:03 -04:00
miruka
7020706ff1 items.py: rebase fix 2020-02-12 06:27:21 -04:00
miruka
e982de1c61 Make Event.inline_content & links pure attrs 2020-02-12 06:21:43 -04:00
miruka
8a29143b60 Working Event.event_type & source fields 2020-02-12 06:19:49 -04:00
miruka
b992db9bfe Use typing.TYPE_CHECKING to avoid inner imports 2020-02-12 05:56:18 -04:00
miruka
a653a6160a Get SortProxyFilterModel stuff working?
Came back from a break and forgot what I was fixing
2020-02-12 05:56:18 -04:00
miruka
d8e18c3337 Room: show month for previous years dates 2020-01-06 03:41:27 -04:00
miruka
9990fecc74 Begin yet another model refactor
Use native ListModel which require a lot of changes, but should be
much faster than the old way which exponentially slowed down to a crawl.
Also fix some popup bugs (leave/forget).

Not working yet: side pane keyboard controls, proper highlight,
room & member filtering, local echo replacement
2020-01-06 03:41:14 -04:00
miruka
2ce5e20efa Fix chat creation client methods 2019-12-29 14:30:15 -04:00
miruka
10dabca1d9 Use monospace font for error popup traceback 2019-12-28 04:55:34 -04:00
miruka
5f3ecef408 Merge branch 'style' into 0.3 2019-12-27 16:35:56 -04:00
miruka
ce733c6641 Catch signal exception when imported from thread 2019-12-27 09:28:46 -04:00
miruka
a1256cf20a Turn Clipboard into a singleton 2019-12-27 09:06:42 -04:00
miruka
f34d2a1c6d Turn CppUtils into a Singleton 2019-12-27 08:58:24 -04:00
miruka
e7caa0b8ef Use a C++ implementation of hsluv 2019-12-27 08:23:32 -04:00
miruka
77f851c319 Respect uiScale to decide how to align our msgs 2019-12-26 11:12:33 -04:00
miruka
35fd57be56 Improve HDrawer complience/behavior with zoom 2019-12-26 11:09:40 -04:00
miruka
fc7f7256a1 Fix RoomPane buttons background static height 2019-12-26 10:51:41 -04:00
miruka
f977d9acf2 GUI popup for uncaught asyncio loop exceptions 2019-12-26 10:17:54 -04:00
miruka
511681ae4d Report uncaught Python exceptions with a GUI popup 2019-12-26 09:24:54 -04:00
miruka
eff64fabd6 Catch any nio.ErrorResponse to raise MatrixErrors 2019-12-26 08:16:04 -04:00
miruka
4f1e4fcf1c Remove excess period 2019-12-22 11:36:31 -04:00
siedes
f3e87eb3fc Minor spelling and wording corrections 2019-12-22 11:29:33 -04:00
miruka
74d21224ab Hide account icons when MainPane gets too small 2019-12-22 09:35:21 -04:00
miruka
ab786173d9 MainPane: leave more space to chat in small window 2019-12-22 09:35:21 -04:00
miruka
e9efca76d4 HDrawer: snap around default size when resize-drag 2019-12-22 09:35:21 -04:00
miruka
b4df752f8a Improve MembersView when RoomPane collapsed 2019-12-22 09:35:21 -04:00
miruka
44e5de02f8 font color → span mx color for outgoing HTML
Also remove HTML_PROCESSOR `filter_inline` and `from_markdown_inline`
methods. `filter` and `from_markdown` now take an `inline` argument.
2019-12-22 09:35:21 -04:00
miruka
335d931b0a Turn markdown color names into hex codes
Not all clients may know the same color names or even support them, hex
codes are unambiguous.
2019-12-22 09:35:15 -04:00
miruka
b0d77d74a9 Add custom markdown syntax for coloring text
<color>(text to color) where color can be a SVG color name,
3 characters hex or 6 characters hex code.

Can be used to send colored message from the composer. Other clients
that follow the matrix spec should be able to display them (e.g. riot,
even if it can't send them)
2019-12-20 14:44:31 -04:00
miruka
be61a34ec0 Event context menu entry to open debug console
Replaces the hidden double-click-on-empty-space feature
2019-12-20 10:39:10 -04:00
miruka
9bd739a0db Fix focus and simplify popup-opener menu items
Introduce a HmenuItemPopupSpawner component that takes care of reacting
to onTriggered signals and calling the utils.makePopup() function.

The combination of this new component used in HMenu to open a HPopup
now correctly takes and restore focus to the right element when closed.
2019-12-20 10:30:50 -04:00
miruka
d9b7118f45 load_past_events: raise instead of logging errors 2019-12-20 09:30:57 -04:00
miruka
5e26188dfe Fix & improve EventImage thumbnail sizes 2019-12-20 09:12:16 -04:00
miruka
be6292a521 RoomPane leave more space for chat in small window 2019-12-20 07:38:42 -04:00
miruka
5857f4e398 Better defined maximum sizes for the panes 2019-12-19 19:27:39 -04:00
miruka
535e380f40 Remove unused theme supported*PlusSpacing 2019-12-19 19:04:07 -04:00
miruka
aaa8411cb9 Room.last_event: be an Event instead of dict 2019-12-19 16:52:21 -04:00
miruka
cdd119405e backend.py: remove some unused imports 2019-12-19 16:31:01 -04:00
miruka
090c53898c Fix width for messages with text + image previews
The width of the images weren't taken into consideration to calculate
the message xOffset, resulting in these messages being pushed way past
what they should be and looking very thin
2019-12-19 16:03:00 -04:00
miruka
be0541f2d9 Improve HRepeater width properties 2019-12-19 16:00:37 -04:00
miruka
2229b41af1 New way to open debug consoles
Replace broken old utils.debug(...) (since the utils.js → Utils.qml
transition) with a declarative approach:
a console can now be opened with by placing a `DebugConsoleLoader {}`
anywhere.
mainUI has a default console opened by F1/alt-shit-c when no other
console is loaded.
2019-12-19 14:11:13 -04:00
miruka
fb1f9c62e5 Add SPDX ID LGPL v3+ license headers 2019-12-19 07:46:16 -04:00
miruka
d3ee39bf7b Have a separate PageLoader component from UI 2019-12-18 17:04:18 -04:00
miruka
a1f89ca9c4 Fix utils.guess_mime / uploading with 0 byte files 2019-12-18 16:52:39 -04:00
miruka
e6541cd767 Document model.py 2019-12-18 16:41:51 -04:00
miruka
1f41e2ffaa Document Backend attrs, adapt to new ModelStore 2019-12-18 16:24:43 -04:00
miruka
36359b05fa Transfer.qml: fix typo 2019-12-18 16:24:36 -04:00
miruka
6fa2d91b69 Simplify and document ModelStore 2019-12-18 16:24:25 -04:00
miruka
5f1044e96a Document model items 2019-12-18 15:00:34 -04:00
miruka
934d6a79a2 Document nio_callbacks.py, small code improvements 2019-12-18 14:24:55 -04:00
miruka
d9b27eff9f Document media_cache.py 2019-12-18 13:43:31 -04:00
miruka
c6938903b8 Document matrix_client.py 2019-12-18 13:16:15 -04:00
miruka
05a331382e Improve pyotherside_events.py doc 2019-12-18 10:39:38 -04:00
miruka
d89c83af5b Document theme_parser.py 2019-12-18 09:50:53 -04:00
miruka
845fa40ed8 Improve docs for utils.py 2019-12-18 09:42:56 -04:00
miruka
d7045644f1 Rename and document html filtering stuff 2019-12-18 09:33:22 -04:00
miruka
cfcc190473 Rename QmlBridge to QMLBridge 2019-12-18 08:49:03 -04:00
miruka
ab46ac15e7 Document errors module 2019-12-18 08:46:36 -04:00
miruka
61cd3b2f55 Rename config_files module → user_files + document 2019-12-18 08:41:02 -04:00
miruka
23be12fb60 Document backend & qml_bridge + minor code changes 2019-12-18 08:14:35 -04:00
miruka
87b262ebee Move backend.__about__ stuff into __init__ 2019-12-18 06:55:05 -04:00
miruka
9e372d01d5 Python backend "App" becomes QmlBridge
Is now strictly about setting up asyncio/uvloop and providing the
functions for QML to interact with it and call backend coroutines.

The appdirs attribute is moved to Backend.
2019-12-18 06:44:18 -04:00
miruka
5d7d66f99b Have a QML Future object instead of JS dict 2019-12-18 06:16:24 -04:00
miruka
d675b3a40b Fix HDrawer import versions 2019-12-18 05:02:37 -04:00
miruka
717c5078c7 Move QML Python stuff to its own subfolder 2019-12-18 05:00:27 -04:00
miruka
f4d7636df6 Move Chat/ dir under Pages/ 2019-12-18 04:53:08 -04:00
miruka
2bdf21d528 Rename some filers and folder for clarity 2019-12-18 04:45:09 -04:00
miruka
127f724357 Comment C++ files 2019-12-18 04:32:32 -04:00
miruka
12c7e44d8a Turn event_handlers.js into EventHandlers.qml 2019-12-17 18:10:18 -04:00
miruka
705fb31f88 Fix Utils.flickToBottom() 2019-12-17 18:07:15 -04:00
miruka
2cb64c5346 Turn utils.js into a Utils.qml QtObject
When a .js module is used, every single file that imports it creates
its own duplicated environment in memory for that module.

Instead, use a simple QtObject with all the functions, and declare it in
Window.qml so that it is available to all children everywhere in the
app.
2019-12-17 17:59:53 -04:00
miruka
c16731b239 Fix "transfered" → "transferred" spelling 2019-12-17 17:43:32 -04:00
miruka
b0cf708246 Differentiate invited members in room pane 2019-12-17 09:46:18 -04:00
miruka
216514f19c Don't desaturate disabled button icons 2019-12-17 08:55:04 -04:00
miruka
c99ca8de44 Show progress bar when loading past room events 2019-12-17 08:54:46 -04:00
miruka
026c049d62 Improve message delegate code, fix multiple issues
- Fix the ListView not auto-scrolling like it should when message
  delegates changed height, such as when images were loaded

- Fix messed up delegate positions overlapping each others when
  movements happen

- Fix previous/nextItem binding broken due to imperative modification

- Fix "messageBodyWidth" binding loop
2019-12-17 03:45:00 -04:00
miruka
b3e3fd7bc6 EventFile: be as tall as the message avatars 2019-12-16 18:28:51 -04:00
miruka
1d43d522e6 Strip file:// prefix from copied downloaded paths 2019-12-16 18:22:25 -04:00
miruka
ce23d2c992 Reactivate EventFile for video and audio events
Temporary solution until the media player is ready
2019-12-16 18:19:06 -04:00
miruka
45ff9bba99 EventFile now downloadable 2019-12-16 18:05:09 -04:00
miruka
8215d127c8 Move EventImage.download() to EventMediaLoader 2019-12-16 17:48:58 -04:00
miruka
011b870d0b Don't show EventFile for video/audio links 2019-12-16 17:42:05 -04:00
miruka
1ec8ed466f Implement crude encrypted EventImage downloading
When a message image is clicked in an encrypted room, the full file will
be download (no GUI indication for now, just a print in terminal) and
opened when ready.

Before downloading, copying the image address via right click will put
the full image mxc:// URL in clipboard. After downloading, it will be
the local downloaded image path instead.
2019-12-16 17:36:14 -04:00
miruka
5dbf06ba6c Fix multiple accounts local echo issues
- Messages should now always be in the order they were sent in when
  sending from multiple accounts to a same slow room

- Fixed dead lock that occured when sending a message
  from account A, then from account B, then from account A, in a
  room slow enough so that all of them would be in local echo transition
  at the same time.
2019-12-16 10:53:26 -04:00
miruka
423c657fea Disable HListView animation debug prints 2019-12-16 07:35:39 -04:00
miruka
817ae905fe Backend._any_clients(): only pick a healthy client
When selecting a random client for get_profile(), thumbnail(), or
download() requests, ignore those that aren't currently syncing.
Also warn if we still can't find a healthy client after 30s.
2019-12-16 07:02:42 -04:00
miruka
5b4146c854 Fix main pane not updating on Account changes
The pane only updated on Room model changes. If an account with no
joined rooms was added, it would be invisible until a client restart.
2019-12-16 07:01:19 -04:00
miruka
9da0b12e45 Resume accounts faster on client startup 2019-12-16 05:14:26 -04:00
miruka
7d8f67bfe2 Retry if initial profile retrieval on login fails 2019-12-16 05:03:57 -04:00
miruka
18822b9102 Remove unused ImportError.qml 2019-12-16 04:51:52 -04:00
miruka
b307b596d2 Animators are buggy crap, drop them 2019-12-16 04:42:41 -04:00
miruka
aad317126a Fix sign out 2019-12-16 04:11:46 -04:00
miruka
5765638466 Fix click on room setting buttons not working 2019-12-15 15:23:15 -04:00
miruka
88df501f13 Remove now unused pane properties in theme 2019-12-15 15:11:51 -04:00
miruka
5e3a621f8b Respect uiScale for panes 2019-12-15 15:10:50 -04:00
miruka
52956954e5 Fix filter field overflowing at some sizes/zooms 2019-12-15 14:56:40 -04:00
miruka
a9507bdbeb Change HListView transitions to run on scale 2019-12-15 14:36:24 -04:00
miruka
5a3eb2c2e5 Disable room pane buttons startup animation
Looks weird
2019-12-15 13:04:51 -04:00
miruka
2cfe76fd8e Wrap image progress bars in loaders, fix cpu usage 2019-12-15 13:02:40 -04:00
miruka
2d501dca5a Use a Loader for HTile context menus 2019-12-15 05:37:14 -04:00
miruka
59260e108a makeObject(): accept a component as first argument 2019-12-15 05:26:36 -04:00
miruka
986b117fbc Prevent HDrawer resizer events from being stolen 2019-12-15 03:45:46 -04:00
miruka
a8dbd9185a Update matrix client update() usage 2019-12-14 17:40:31 -04:00
miruka
73dfcce8a7 Prevent crash in loading past evnts 2019-12-14 13:50:21 -04:00
miruka
47c53644e7 Fix/improve transfer speed-related stuff 2019-12-14 13:49:31 -04:00
miruka
c5ed3be031 RoomPane flickable: ignore unimplemented views 2019-12-13 18:04:31 -04:00
miruka
c6295225fb Make tab keybinds work on room pane views 2019-12-13 17:59:58 -04:00
miruka
d8639db8ee Fix HSwipeView binding loop 2019-12-13 17:55:41 -04:00
miruka
17452ea69b Update TODO 2019-12-13 17:37:31 -04:00
miruka
ff7393b7c3 HSplitView with state saving and default props 2019-12-13 17:19:47 -04:00
miruka
51c68cf998 Fix Room.given_name possibly being None 2019-12-13 17:18:36 -04:00
miruka
df76efa359 Italicize room name in leave/forget poups
Like for the invite popup now
2019-12-13 17:11:01 -04:00
miruka
843389693e Add room name to invite popup 2019-12-13 17:08:59 -04:00
miruka
a493b0cf61 Add "invite members" to room context menu 2019-12-13 17:04:56 -04:00
miruka
55506dd10e Disable the room settings save button for now 2019-12-13 16:40:48 -04:00
miruka
c8ce50a01c Fix Room.plain_topic accidentally set to None 2019-12-13 15:09:13 -04:00
miruka
8a4c160df6 Working cancel button in settings 2019-12-13 10:14:54 -04:00
miruka
0ab7a008cf Add default... + reset() to field, area & checkbox 2019-12-13 09:56:52 -04:00
miruka
407396e01e Put RoomPane inside a loader 2019-12-13 09:53:11 -04:00
miruka
bd8fa997c4 CreateRoom: Room names must not exceed 255 bytes 2019-12-13 09:22:29 -04:00
miruka
d240de702f Implement (read-only for now) room settings 2019-12-13 09:22:13 -04:00
miruka
f8d5260fd7 Update some icons 2019-12-13 08:31:40 -04:00
miruka
c191adfd0b Rename "Find someone" page to "Direct chat" 2019-12-13 07:17:11 -04:00
miruka
dff7be33f9 AddChat: Simplify EncryptCheckBox subtitle 2019-12-13 07:03:36 -04:00
miruka
621a4e415a HTextField: disabledText and opacity handling 2019-12-13 06:29:58 -04:00
miruka
4cd4386abe Improve HScrollableTextArea disabled handling
Don't hide text if no disabledText is explicitely set, set opacity
using theme.disableElementsOpacity
2019-12-13 06:24:58 -04:00
miruka
2ca79a212f Increase chechbox indicator opacity when disabled 2019-12-13 06:21:30 -04:00
miruka
37023638c0 Hide avatar tooltip if avatar already big enough 2019-12-13 06:21:12 -04:00
miruka
82e4dff2ab Fix left rooms appearing as joined rooms 2019-12-12 10:33:52 -04:00
miruka
438b0d26a4 Don't share room members models between accounts
Is unsafe and creates subtile bugs, like "invite member → member
declines → member disappears from the member list, then reappears a
second after" (race condition)
2019-12-12 10:11:24 -04:00
miruka
707ac61ff6 Support and sort invited room members 2019-12-12 10:03:39 -04:00
miruka
4b13b75617 Restore previous focus after HPopup closed 2019-12-12 08:39:26 -04:00
miruka
1bd012c871 Restore focus to previous element on HMenu closed 2019-12-12 08:36:51 -04:00
miruka
2769d60fdc Add copy room/user ID context menus 2019-12-12 08:32:50 -04:00
miruka
6813a2c9b4 Fix double click on event to open console 2019-12-12 08:20:26 -04:00
miruka
1ecd383791 Hide avatar tooltips for broken thumbnails 2019-12-11 15:16:14 -04:00
miruka
5bef84064d Don't show MemberDelegate subtitle if same as name 2019-12-11 15:12:21 -04:00
miruka
c4ee77ca15 Disable composer/upload button when no permission 2019-12-11 13:54:18 -04:00
miruka
c2b7b458f9 Use the "Binding on ..." syntax whenever possible 2019-12-11 13:03:33 -04:00
miruka
e694f1739b Trim some text fields 2019-12-11 12:46:43 -04:00
miruka
001c643406 Implement inviting to room 2019-12-11 12:42:59 -04:00
miruka
fd2f8c9828 Reorder HButton props 2019-12-11 11:44:59 -04:00
miruka
ed3a3726e1 Don't call onError() for python CancelledError 2019-12-11 10:51:04 -04:00
miruka
1f12a19b48 Utils.makePopup(): allow setting different parent 2019-12-11 07:54:42 -04:00
miruka
e4f1cb6545 BoxPopup: more reliable implicitWidth (margins) 2019-12-11 07:54:13 -04:00
miruka
1c7015bbd2 Prevent HDrawer from being in front of an HPopup 2019-12-11 07:53:27 -04:00
miruka
d56b590edc Rate-limit config files writing 2019-12-10 17:59:04 -04:00
miruka
3c4c92dbc0 Save/load composer text 2019-12-10 17:04:03 -04:00
miruka
98c2efb773 Unified API to save/restore state properties 2019-12-10 16:29:49 -04:00
miruka
2cd177dc13 Add text remembering ability to HTextField 2019-12-10 15:32:42 -04:00
miruka
888df282a8 Rename side pane stuff to main pane 2019-12-10 15:17:41 -04:00
miruka
3a3e0e9dbb Rename some chat components 2019-12-10 15:03:05 -04:00
miruka
f65425957b Builtin ability to remember size for HDrawer 2019-12-10 15:01:56 -04:00
miruka
8c8ba221d3 HDrawer resizer: use MouseArea's pressed prop 2019-12-10 14:23:14 -04:00
miruka
0578844eef Rename some HDrawer props for more clarity 2019-12-10 14:19:25 -04:00
miruka
29cf78fe18 SidePane: default size if no custom one in state 2019-12-10 14:10:01 -04:00
miruka
ad6f111793 Fix & improve keyboard and mousewheel flicking 2019-12-10 11:49:46 -04:00
miruka
e70a1d459b Correct SidePane behavior when no accounts present 2019-12-10 04:18:17 -04:00
miruka
b32d88cd95 Fix users that left a room not deleted from model 2019-12-09 15:34:29 -04:00
miruka
852b5818a2 Fix Chat loading spinner position 2019-12-09 15:34:13 -04:00
miruka
bd8bf6120e Fix taking focus for chat 2019-12-09 14:13:38 -04:00
miruka
2e780d7c6a HDrawer: provide real visible size prop→fix issues 2019-12-09 13:54:05 -04:00
miruka
6627c6341a Fix DebugConsole retained history size 2019-12-09 13:51:50 -04:00
miruka
9c70e08668 Restore focus to previous item on console exit 2019-12-09 13:34:56 -04:00
miruka
37d8d5c68d History persistence for DebugConsole 2019-12-09 13:21:12 -04:00
miruka
718aef8414 Make DebugConsole keyboard-scrollable 2019-12-09 13:00:42 -04:00
miruka
6e6fa0ad35 Improve console size, add variables info 2019-12-09 12:56:25 -04:00
miruka
f5b0cbb204 Make new console when needed & destroy old console 2019-12-09 12:32:46 -04:00
miruka
f125b6d60e Minor DebugConsole improvements
Startup animation, top position by default, add F1 shortcut
2019-12-09 12:27:40 -04:00
miruka
9b9cf274ac DebugConsole: take active focus on startup 2019-12-09 12:20:58 -04:00
miruka
e7abcced5f Fix a HDrawer weird size issue 2019-12-09 12:16:23 -04:00
miruka
7d50e8c6a8 HDrawer: enable behaviors based on orientation 2019-12-09 12:10:04 -04:00
miruka
66e3a07401 RoomSidePane header buttons background 2019-12-09 12:03:35 -04:00
miruka
13d3f19997 Replace all ==/!= by ===/!== 2019-12-09 11:35:50 -04:00
miruka
3b78d12f9c Rename HTabbedBoxes to HTabContainer 2019-12-09 09:29:57 -04:00
miruka
7ecdefa7f3 Set x/y only on DebugConsole, not HDrawer 2019-12-09 08:11:46 -04:00
miruka
a5e01fd3b9 Rename HDrawer "width" props, add horizontal prop 2019-12-09 08:10:03 -04:00
miruka
99034c7587 Make DebugConsole use HDrawer
Also add some help, commands to quicly set the position, and support
vertical orientations for HDrawer
2019-12-09 08:01:01 -04:00
miruka
5609ae2817 Refactor Chat/RoomSidePane 2019-12-09 05:25:31 -04:00
miruka
06a6a4c08d Rewrite SidePane using QQC Drawer
Cleaner approach, gets rid of the HPage swipe view hack, better
performances, a lot less complex
2019-12-08 14:43:41 -04:00
miruka
5326726c4f Improve default window size for small screens 2019-12-08 14:40:56 -04:00
miruka
9a074e6097 Improve bad event types messages 2019-12-08 12:46:25 -04:00
miruka
c2f5a5bcbc Use normal QtQuick.Shortcut 2019-12-08 12:43:39 -04:00
miruka
793db51a60 Improve add-account.svg 2019-12-08 10:32:25 -04:00
miruka
93a6d706b8 Rename "Recovery" page to "Reset" 2019-12-08 05:31:02 -04:00
miruka
77a1d854c2 Add signin remember checkbox info 2019-12-08 05:30:30 -04:00
miruka
c3570c9d82 Update recovery/register texts 2019-12-08 05:30:04 -04:00
miruka
c3f1ca95f9 Increase HBox spacing 2019-12-08 05:29:37 -04:00
miruka
f58e2cbf7a Change add account icon, prevent checkbox overflow 2019-12-08 05:08:59 -04:00
miruka
b267ef6562 SignIn screen tweaks
- Put the server field after user & pass, it makes more sense to have
  the default focused field at the start

- Hide the currently unimplemented login method selection

- Rename Recovery tab to Reset (shorter)
2019-12-08 03:49:17 -04:00
miruka
f5fde35482 Remove checkbox default padding 2019-12-08 03:49:07 -04:00
miruka
455801a641 Use new way to cancel current login for signin btn 2019-12-07 18:45:03 -04:00
miruka
6f589dbda5 Implement cancelling python coros from QML
This was needed to implement the cancel button featue on the login
screen
2019-12-07 18:33:33 -04:00
miruka
4a93a24f74 cancel_previous(): use @functools.wraps 2019-12-07 17:09:13 -04:00
miruka
7deb21c182 Rename "logout" things to "sign out" + update icon 2019-12-07 12:45:20 -04:00
miruka
0f1a6c7df1 Add temporary Recovery box 2019-12-07 12:39:56 -04:00
miruka
f75d44a0dd Add temporary "unimplemented" Register box 2019-12-07 12:39:35 -04:00
miruka
a2ffaf4a67 More consistant spacing for HBox & SignIn 2019-12-07 11:05:46 -04:00
miruka
956dc52174 Simplify box, tabs and popups size handling 2019-12-07 10:59:43 -04:00
miruka
7235611d54 Refactor SignIn, adjustments to HCheckBox & HBox 2019-12-07 09:38:36 -04:00
miruka
150744ab8a main.cpp: put setAttribute before creating app 2019-12-07 09:05:57 -04:00
miruka
28b3727e88 New HTabbedBoxes component, base AddChat on it 2019-12-07 08:56:32 -04:00
miruka
883d1c095b Smooth box size transition between AddChat tabs 2019-12-07 08:18:18 -04:00
miruka
099a98a5da Click anywhere on errored upload bar to close it 2019-12-06 18:47:34 -04:00
miruka
54395fff44 Fix upload icon height 2019-12-06 18:40:39 -04:00
miruka
737e102629 Color upload icon but not text on pause/error 2019-12-06 18:37:18 -04:00
miruka
74efce589b Remove periods at the end of room info events 2019-12-06 18:23:25 -04:00
miruka
4ada039384 Upload UI/code improvements 2019-12-06 16:44:25 -04:00
miruka
54df551b08 Rename theme "uploadsBar" to "fileTransfer" 2019-12-06 09:22:38 -04:00
miruka
150a783c28 Split UploadBars into a new FileTransfer/ dir 2019-12-06 09:20:34 -04:00
miruka
8ae4bbb6cf Fix uplaod item delete, pause and cancel bugs 2019-12-06 08:59:35 -04:00
miruka
e51f1f2c79 Implement upload pause function 2019-12-06 08:44:45 -04:00
miruka
d354480840 Work around Qt hover bug for tooltips 2019-12-06 08:21:48 -04:00
miruka
d70260d007 Add visual upload pause button, not working yet 2019-12-06 07:10:22 -04:00
miruka
6c92f4cad1 Hide tooltips when window not hovered anymore 2019-12-06 07:07:40 -04:00
miruka
d893c4f534 SidePane: consider uiScale for manualSize 2019-12-05 10:59:29 -04:00
miruka
97cf7b6dcd EventImage: respect uiScale 2019-12-05 10:51:57 -04:00
miruka
a555ad0e19 Upload stats 2019-12-05 10:00:23 -04:00
miruka
3aff20006c Handle OSError happening in send_file() 2019-12-05 09:51:31 -04:00
miruka
b3f93b969c Fix RoomMessageUnknown not seen as general event 2019-12-04 18:27:56 -04:00
miruka
9d89409379 Support UnknownEvent and UnknownEncryptedEvent 2019-12-04 18:20:30 -04:00
miruka
2fe8c80aa5 Enable high DPI scaling 2019-12-04 11:49:20 -04:00
miruka
c3dfb523b6 Don't bind ctrl+backspace to zoom reset
ctrl+backspace is used to delete previous word in a text field
2019-12-04 10:06:00 -04:00
miruka
b25f3f3e51 FindSomeone: reject invalid user ID 2019-12-04 10:00:29 -04:00
miruka
a992b51ac5 Fix being able to make room with inexistant user 2019-12-04 09:43:04 -04:00
miruka
470b031a6f Standardize usage of period in UI sentences 2019-12-04 09:32:07 -04:00
miruka
915c96f174 Fix power icons position when room pane collapsed 2019-12-04 09:17:13 -04:00
miruka
34e0ec7c7d Implement UI zooming 2019-12-04 09:08:38 -04:00
miruka
87a81ed1a7 Use real UUIDs for pendingCoroutines 2019-12-04 06:22:04 -04:00
miruka
26e63e4ab2 Use new nio AsyncClient.mxc_to_http()
Has the correct behavior for all servers,
e.g. mxc://privacytoosl.io/id → https://chat.privacytools.io/...
2019-12-02 06:42:48 -04:00
miruka
3919b964ca Add ability to cancel uploads 2019-12-02 05:06:21 -04:00
miruka
ae009c7412 Serialize Python UUIDs to strings for QML 2019-12-02 04:40:29 -04:00
miruka
bbb872e5dc Improve HButton behavior on small fixed size 2019-12-02 04:40:01 -04:00
miruka
92bfb02446 UploadBars: tooltip and expand text on error/click 2019-12-02 03:19:43 -04:00
miruka
e4aa3b6572 Handle upload errors 2019-12-02 02:57:47 -04:00
miruka
08694388dd Serialize Python types to their __name__ attribute 2019-12-01 12:21:37 -04:00
miruka
3e214dc26b Don't use Animators for ListView transitions
They're buggy
2019-12-01 11:24:20 -04:00
miruka
9e9737d8ad Don't use HOpacityAnimator in ListView, flickering 2019-11-30 16:27:34 -04:00
miruka
df0020e62c Fix EventImageTextBubble shown when no text 2019-11-30 15:03:07 -04:00
miruka
c5a8be9ef9 Use new HScaleAnimator instead of HNumberAnimation 2019-11-30 14:59:48 -04:00
miruka
29cdc0f3f8 Use HRotationAnimator instead of HNumberAnimation 2019-11-30 14:37:04 -04:00
miruka
68d7c11c58 Add HX/YAnimator, used instead of HNumberAnimation 2019-11-30 11:45:24 -04:00
miruka
6a442da16f Use OpacityAnimators instead of NumberAnimations 2019-11-30 11:41:19 -04:00
miruka
d1e1ed07dd Hide EventImage bubbles on hover 2019-11-30 11:15:54 -04:00
miruka
db36ab6a74 No html styling in processedEventText() + cleanups 2019-11-30 08:20:41 -04:00
miruka
c8095f4874 EventContent: rename eventSender to senderText 2019-11-30 08:01:00 -04:00
miruka
2fd2806514 Support RoomMessageNotice events 2019-11-30 07:10:48 -04:00
miruka
3b2ab048fb Rework import keys pass confirmation
- Show button as loading until the import is done, *then* close popup
- Remove the dedicated backend password checking function, we can use
  import_keys() directly now
- Handle all the possible errors that could be thrown from python
2019-11-30 05:55:27 -04:00
miruka
a09e811e56 Remove old import dialog cruft 2019-11-30 05:55:27 -04:00
miruka
580f92e0be Color member name on hover in sidepane 2019-11-30 05:55:27 -04:00
miruka
a01de1f3d6 Add power icons for room members 2019-11-30 05:55:23 -04:00
miruka
a35526a0b5 Show higher power-level room members first 2019-11-30 04:04:24 -04:00
miruka
61c2919c7f Sort members and undated rooms case-insensitively 2019-11-30 03:59:44 -04:00
miruka
710dd56109 Correct "Empty room" display 2019-11-27 10:04:55 -04:00
miruka
81ce4635fc Linkify alias in m.room.alias events 2019-11-27 06:30:42 -04:00
miruka
f187a5f0ab Handle m.room.avatar, improve name/topic/alias
- Display the new room's avatar as an EventImage
- Show "x removed the room's avatar" if it's set to none
- Show "x removed the room's y" for empty name/topic/canonical alias
  events instead of "x changed the y to ''"
2019-11-27 06:18:06 -04:00
miruka
e57ffdae3f Room.__lt__(): use tuple comparison 2019-11-26 16:18:48 -04:00
miruka
2754fff0df Fix set_avatar_from_file() 2019-11-26 15:52:04 -04:00
miruka
2b288bdfc6 Import/export keys improvements 2019-11-23 11:14:14 -04:00
miruka
1d3ca08957 Reintroduce (reduced) event list cacheBuffer
This is needed until we have proper url preview support
2019-11-22 10:36:59 -04:00
miruka
6eff9e0513 Animate HBox apparition 2019-11-22 10:35:53 -04:00
miruka
66d7428da2 Don't disable loading tab buttons 2019-11-22 04:51:55 -04:00
miruka
301384dc57 Fix collapse buttons always disabled 2019-11-22 04:50:40 -04:00
miruka
60c64ad96f Fix logout 2019-11-22 04:27:20 -04:00
miruka
5a70adcc93 Use ES6 template strings 2019-11-18 03:57:13 -04:00
miruka
2123f5a66f Improve upload code, based on nio PR #76 2019-11-17 13:31:00 -04:00
miruka
25ce08891d Fix which EventImage url gets opened/copied 2019-11-16 08:06:56 -04:00
miruka
fc2fb605e3 Prefer using own client for fetching own profile 2019-11-14 16:20:30 -04:00
miruka
f727645342 Fix progress bar indeterminate ←→ normal switching 2019-11-12 18:22:57 -04:00
miruka
7e5bd5299e Fix logout not properly stopping the sync task 2019-11-12 18:19:48 -04:00
miruka
c2590abe12 Fix saved_accounts.add bad arguments 2019-11-12 18:12:41 -04:00
miruka
ea980e0241 Show coro uuid when logging py exception from QML 2019-11-12 18:12:08 -04:00
miruka
c4a65b0cff Remove big cacheBuffer from EventList 2019-11-12 10:00:32 -04:00
miruka
9f3bb1aa4d set_avatar_from_file: raise if file isn't an image 2019-11-12 09:48:11 -04:00
miruka
5f04628178 No need to str(path) anymore for model item Upload 2019-11-12 09:46:29 -04:00
miruka
37f5f5973c Clarify upload data type, guess_mime seek on end 2019-11-12 09:37:21 -04:00
miruka
47bfad1d72 Move Size type alias to utils 2019-11-12 09:26:43 -04:00
miruka
ef391d1eb1 Make utils function accept Path, str, bytes and IO 2019-11-12 09:24:58 -04:00
miruka
5832c3ca2d Raise on init if homeserver url is missing scheme 2019-11-12 09:13:45 -04:00
miruka
73541ad7a5 download/thumbnail don't need authentification 2019-11-12 09:10:00 -04:00
miruka
4cc2ebf6e3 Use exceptions for get_profile 2019-11-12 08:47:03 -04:00
miruka
6558bdc87f Put custom exceptions in their own file 2019-11-12 08:38:43 -04:00
miruka
290d3e9f6b Simplify Backend.get_profile 2019-11-12 08:34:08 -04:00
miruka
3ebb11aa69 Raise on room send error instead of logging 2019-11-12 07:45:54 -04:00
miruka
5a04bbaa93 Remove leftover debug console call 2019-11-11 11:07:38 -04:00
miruka
a7e505a387 Document utils.py 2019-11-11 09:26:35 -04:00
miruka
746a9259db SignIn: cancel previous task when clicking button 2019-11-11 09:12:31 -04:00
miruka
c9ddd4ee80 Change error msg when server URL may be invalid 2019-11-11 06:57:33 -04:00
miruka
7f48c1b35d Properly handle login errors with new exceptions 2019-11-11 06:39:11 -04:00
miruka
de7053f196 Improve MatrixError.from_nio, use it for upload() 2019-11-11 06:08:31 -04:00
miruka
dbdb7b9bb0 Make thumbnail min/max size configurable via theme 2019-11-11 05:43:17 -04:00
miruka
deedc8c7aa Fix EventFile sizing/elliding 2019-11-11 05:34:46 -04:00
miruka
4b76725006 Bring back EventFile (also for video/audio for now) 2019-11-11 05:26:32 -04:00
miruka
717b18fede Fix HPage and EventList flickTarget conflict 2019-11-10 09:38:16 -04:00
miruka
f2ab84c754 Add tab navigation shortcuts (for AddChat) 2019-11-10 09:28:57 -04:00
miruka
484e9e595d Rename EditAccount to AccountSettings 2019-11-10 09:07:35 -04:00
miruka
e3165d0a7c HPage: fix header text vertical centering 2019-11-10 08:58:47 -04:00
miruka
c0adf8353b Add account settings keybinds 2019-11-10 08:54:45 -04:00
miruka
e32747d434 Keybinds: remove old sidepane workaround binds 2019-11-10 08:50:50 -04:00
miruka
4920ef8155 Keybinds: Alt(+Shift)+N for add new chat/account 2019-11-10 08:49:51 -04:00
miruka
f552a16d51 HPage: set shortcuts.flickTarget on init
This makes any HPage by default keyboard-scrollable, notably
the new AddChat pages.
2019-11-10 08:44:36 -04:00
miruka
35a3ae2558 Change default collapse keybind to Alt+O 2019-11-10 08:36:54 -04:00
miruka
e2a7b690b3 Keybind: collapse first account if none selected 2019-11-10 08:34:05 -04:00
miruka
5d4840dcd8 Add shortcut to add new chats 2019-11-10 08:32:17 -04:00
miruka
14ba4b50b5 Avatars on FindSomeone/JoinRoom pages 2019-11-09 15:19:10 -04:00
miruka
72c480471a Add encryption check box to FindSomeone page 2019-11-09 14:57:46 -04:00
miruka
793024434f Set icon for starting direct chat 2019-11-09 14:29:19 -04:00
miruka
de59948214 When leaving room, try to go to previous page 2019-11-09 14:25:48 -04:00
miruka
46ff911bfa Add FindSomeone page 2019-11-09 14:20:53 -04:00
miruka
0aedc1a7d0 Prevent "failed to convert null" qt warning 2019-11-09 13:41:12 -04:00
miruka
b34387ad79 Implement enabling encryption when creating room 2019-11-09 13:38:21 -04:00
miruka
e7283f48f1 Create/JoinRoom: fix clickButtonOnEnter 2019-11-09 11:18:49 -04:00
miruka
35a4030cc0 Hide previous errors when clicking accept buttons 2019-11-09 11:15:24 -04:00
miruka
02888eb63d Change join/create room button icons 2019-11-09 11:10:25 -04:00
miruka
66fe230044 JoinRoom: enable join button if field is not empty 2019-11-09 10:48:48 -04:00
miruka
fa25c101ff Fix HRepeater childrenImplicitWidth property 2019-11-09 10:48:05 -04:00
miruka
5d4b699104 CreateRoom: show message if creation fails 2019-11-09 10:39:43 -04:00
miruka
c34676e5a0 Turn JoinRoom field red on error 2019-11-09 10:34:54 -04:00
miruka
e95a23ef90 Handle JoinRoom errors, error clases overhaul 2019-11-09 10:20:16 -04:00
miruka
dbcca17192 Add JoinRoom page 2019-11-09 09:52:16 -04:00
miruka
a9a99e4a65 Add ctrl+tab keybind to go to last page 2019-11-08 16:01:09 -04:00
miruka
b53acb3113 Implement pageLoader history + CreateRoom cancel 2019-11-08 15:56:20 -04:00
miruka
ad34d2d171 Implement room creation functions 2019-11-08 15:32:12 -04:00
miruka
bfbeb83ce5 Size CreateRoom box correctly if window too small 2019-11-08 10:31:07 -04:00
miruka
37e6ced259 Readd nio_callbacks.py 2019-11-08 10:20:48 -04:00
miruka
0ebbbc4a27 HCheckBox: fix bad default subtitle text value 2019-11-08 10:17:23 -04:00
miruka
2f20361f5c AddChat: make SwipeView non-interactive
Prevent accidentally switching tab by pressing left/right arrow (?)
2019-11-08 10:17:23 -04:00
miruka
8742b7803c Tabs theme, even/odd color, no gaps between tabs 2019-11-08 10:17:23 -04:00
miruka
8c111904a5 AddChat: move create room tab to last position 2019-11-08 10:17:23 -04:00
miruka
11c8af7c19 Show the creator or future room's avatar 2019-11-08 10:17:23 -04:00
miruka
d6fd518334 Add HTabButton component 2019-11-08 10:17:23 -04:00
miruka
7bed1eca30 AddChat page 2019-11-08 10:17:23 -04:00
miruka
45951554a5 Add "+" button to account delegates 2019-11-08 10:17:23 -04:00
miruka
83ff9bf61d Put all nio callbacks in a new separate class 2019-11-08 10:17:23 -04:00
miruka
693ae1c78e Put all nio callbacks in a new separate class 2019-11-08 10:13:50 -04:00
miruka
eee2162575 Serialize Path objects to QML
- media_cache.get_(thumbnail/media) now return a Path instead of str
- When converted to strings in the serialization, the "file://" prefix
  is prepended. This fixes problems when the app is built in release
  mode with QRC resources.
2019-11-07 04:02:41 -04:00
miruka
a8f4a00e5e Remove old broken __main__.py 2019-11-07 03:53:59 -04:00
miruka
acd69108e8 Common func for ModelItem/POSEvent value serializ 2019-11-07 03:43:05 -04:00
miruka
4a6f634f7a Allow picking multiple files to upload 2019-11-06 17:13:15 -04:00
miruka
6953239bc3 Add shortcut to send file from path in clipboard 2019-11-06 17:03:34 -04:00
miruka
25a86bc484 Add shortcut to send file 2019-11-06 16:45:33 -04:00
miruka
5c6b6ef68a Have a dedicated SendFilePicker component 2019-11-06 16:45:30 -04:00
miruka
c6bb41573f Add uploadsBar section to theme 2019-11-06 16:14:48 -04:00
miruka
67cffa854d EventImage: fix empty bubble in the corner 2019-11-06 16:11:12 -04:00
miruka
3acd3ba66a Show broken image icon when image fails to load 2019-11-06 16:09:32 -04:00
miruka
8383b6d3e4 Add radial progress bars to images 2019-11-06 15:47:18 -04:00
miruka
96839ea69a Add forked RadialBar module 2019-11-06 15:30:51 -04:00
miruka
8eca875499 Use new HCircleProgressBar for HBusyIndicator 2019-11-06 14:30:31 -04:00
miruka
f9fd8055f2 Add HCircleProgressBar 2019-11-06 13:49:48 -04:00
miruka
3cbbd6042b Show upload file size instead of index/upcount 2019-11-06 11:03:08 -04:00
miruka
28dd35fc1b Indeterminate progress bar styling 2019-11-06 10:08:55 -04:00
miruka
6cdd6de1b3 Show local echo icon on pure media events 2019-11-06 09:48:27 -04:00
miruka
18e184d1f0 Cache local media on upload, fix media local echo 2019-11-06 09:43:05 -04:00
miruka
1de82492dd media_cache: remove leftover pdb call 2019-11-06 09:03:50 -04:00
miruka
de41e859be Fix picking same file twice not working 2019-11-06 08:55:47 -04:00
miruka
487446046f Fix upload avatar overlay shown after picking one 2019-11-06 08:52:23 -04:00
miruka
4b47b0f7ec Remove useless UploadStatus.Success 2019-11-06 07:52:43 -04:00
miruka
4c15b7dc62 Fix SVG uploads, fix entire Upload model deleted 2019-11-06 07:50:31 -04:00
miruka
ace79a169c UploadsBar: fix qsTr.arg(arg1, arg2) call 2019-11-06 07:45:28 -04:00
miruka
e45f2c9d2d Fix thumbnail API error when QML gives float sizes 2019-11-06 06:51:55 -04:00
miruka
93a4015369 EventImage: set prop correctly if no thumbnail
Fix cases where a m.image event doesn't have a thumbnail but we tried to
download one anyway, resulting in a DownloadFailed exception.
2019-11-06 06:34:52 -04:00
miruka
92d3390106 Fix CryptDict redefined in media_cache.py 2019-11-06 06:30:17 -04:00
miruka
078cf61b7e Show an uploads bar in chats when uploading files 2019-11-06 06:28:48 -04:00
miruka
91064fc625 Fix error when using upload button more than once 2019-11-05 18:30:51 -04:00
miruka
8f3df28b9d ModelItem: serialize enum members to their values 2019-11-05 18:03:48 -04:00
miruka
7408322fbe Fix/improve image sizes 2019-11-05 09:19:48 -04:00
miruka
82104266fe Encrypt uploads in a thread 2019-11-04 15:18:01 -04:00
miruka
3c1d926188 Open decrypted file in browser for crypt images 2019-11-04 14:57:56 -04:00
miruka
ea0cda6aa8 HMxcImage: Fix "invalid write to property httpUrl" 2019-11-04 14:55:26 -04:00
miruka
6586403985 Event/RoomDelegate: consider RoomEncrypted- events 2019-11-04 14:45:20 -04:00
miruka
2d682516e8 Support encrypted file reading & caching
Also don't convert palette images to JPEG when creating thumbnails.
2019-11-04 14:37:48 -04:00
miruka
bf9ced1acd Don't cache local GIFs in memory 2019-11-04 10:53:13 -04:00
miruka
de8d0b5823 Fix image events opened/copied url 2019-11-04 10:46:06 -04:00
miruka
ca09effd6e Download and show full picture for m.image GIFs 2019-11-04 10:29:41 -04:00
miruka
02c6ec4500 Implement Media download 2019-11-04 10:29:18 -04:00
miruka
484eefe86d Fix image URL preview, add Thumbnail.create()
- Make HMxcImage's mxc property work with http too (temporary quick
solution)

- Thumbnail objects can now be initialized with existing bytes and not
  have to download anything.
2019-11-04 07:00:28 -04:00
miruka
337603595a Backend: separate wait_until_(any_?)client_exists() 2019-11-04 06:56:26 -04:00
miruka
e1600389fc Upload 800x600 thumbnails instead of 512x512
Maximum thumbnail size, match Riot's behavior.
2019-11-03 14:08:29 -04:00
miruka
2f19ff493b Rewrite media caching (old image provider)
- Doesn't use pyotherside's image provider feature, for more flexibility
  and simplicity
- Suitable for supporting matrix media events and more later
- Avoid a lot of duplicate files that the old cache created due to
  server not returning what we expect, mistakes in Python/QML code, etc
- Changed file structure
  (e.g. thumbnails/32x32/<mxc id> instead of
   thumbnails/<mxc id>.32.32.crop)

- Backend.wait_until_account_exist: start issuing warnings if the
  function runs for more than 10s, which means in most case a bad user
  ID was passed

- New HMxcImage QML component, used in H(User/Room)Avatar
2019-11-03 13:48:12 -04:00
miruka
55d4035f60 DebugConsole: show "t = ..." instead of "target =" 2019-11-03 13:47:33 -04:00
miruka
b9fbd36661 Restart sync if exception occurs 2019-10-30 11:15:35 -04:00
miruka
ce2a7f1018 Support encrypting uploads
For files and thumbnails.
Also fix the PIL thumbnail() bad argument function call.
2019-10-30 10:34:20 -04:00
miruka
b6609c5435 DebugConsole: remove debug print 2019-10-30 09:26:02 -04:00
miruka
ba527abedc Add bubbles on top of EventImage to show name-date 2019-10-30 09:25:49 -04:00
miruka
2e4a7904d5 Play m.image events GIFs, rename some properties 2019-10-30 06:47:59 -04:00
miruka
b11c9d5675 Use lanczos filter and optimize saved thumbnail 2019-10-30 05:47:22 -04:00
miruka
adeec71fac Log warning when thumbnailing fails 2019-10-30 05:36:54 -04:00
miruka
48bcc91582 Never upscale images when thumbnailing 2019-10-30 05:34:32 -04:00
miruka
412a86762e Generate thumbnail when uploading images 2019-10-29 16:42:56 -04:00
miruka
7a5a1fc650 Print python exception tracebacks 2019-10-29 13:34:55 -04:00
miruka
001d6eff71 Initial upload implementation 2019-10-28 15:27:36 -04:00
miruka
820cc68373 Rename MatrixClient.send_markdown() to send_text
Because it deals with text command parsing too
2019-10-28 13:51:46 -04:00
miruka
662b60d7a8 Separate _function for local echoing 2019-10-28 13:49:55 -04:00
miruka
09a50f8bc7 Separate _function for general message sending 2019-10-28 13:34:59 -04:00
miruka
6eb3a378bc Proper upload exceptions, handle in QML set avatar 2019-10-28 08:06:22 -04:00
miruka
5894481dc5 Python exceptions can now be handled via QML
callCoro/callBackendCoro can now take onSuccess(result) and
onError(type, args, errorObject) callbacks.
2019-10-28 06:26:02 -04:00
miruka
fe4eff62c5 Add basic loading indicator to images 2019-10-27 16:35:58 -04:00
miruka
a67d611958 Composer: add an upload button + file dialog
Upload not working yet
2019-10-27 15:12:57 -04:00
miruka
8c41142b43 HFileDialogOpener: provide better default title 2019-10-27 15:07:58 -04:00
miruka
eb582424b9 Ensure typing bar is invisible when reduced 2019-10-27 14:51:46 -04:00
miruka
040bfe37f8 Improve/fix EventImage size handling 2019-10-27 13:32:22 -04:00
miruka
bf4517b146 Disable non-image media support for now 2019-10-27 12:10:44 -04:00
miruka
07e6d74b91 Fix HTML escaping for markdown parsing
Use mistune's escape option instead of `html.escape()` which messes up
links.
2019-10-27 12:06:19 -04:00
miruka
3bc185f4e6 Change X11 selection only if any text selected 2019-10-25 09:02:21 -04:00
miruka
30ebb7c88e Support X11 selection mechanism for messages 2019-10-25 08:49:19 -04:00
miruka
6aac5a9edb Replace QML clipboard hack by proper new Clipboard 2019-10-25 08:42:04 -04:00
miruka
30823a9bf5 Add C++ Clipboard class accessible from QML 2019-10-25 08:36:24 -04:00
miruka
7090ff601f Don't have local echoes stay fixed at the bottom 2019-10-24 10:28:07 -04:00
miruka
986e39cdc2 Fix quotes rendering in inline filtered html
Before:
a
>x
b
>z

This message would have been shown all gray in the client due to it not
beginning with a >. Now, the colors are properly shown for both quotes
and the non-quote text in between.
2019-10-24 09:43:40 -04:00
miruka
39b4706c75 Have return symbols in inline filtered html
Before: "foo\nbar" was rendered as "foobar"
Now: "foo\nbar" is rendered as "foo ⏎ bar" (U+23CE unicode).
2019-10-24 09:08:10 -04:00
miruka
756edc90dd JS: use slice() instead of splice()
slice() does the same as splice() without the unintended effect of
transforming the array.
2019-10-24 08:09:33 -04:00
miruka
5522de5165 html_filter: don't remove \n in <pre> content 2019-10-24 08:06:50 -04:00
miruka
c4b05befa4 html_filter: html escape markdown before filtering
Fixes the problem where a user sends e.g. "hi <test>" and the "<test>" is
removed because it's seen as a bad html tag.
2019-10-24 07:27:13 -04:00
miruka
652cd059c4 Prevent makeObject callback from running twice 2019-10-22 03:40:09 -04:00
miruka
8416eb33e3 main.cpp: remove useless includes 2019-09-26 17:46:55 -04:00
miruka
579ec94094 Don't vertically center message avatars 2019-09-19 19:36:09 -04:00
miruka
9de34d4d3f Fix own medias in events positions 2019-09-19 19:28:28 -04:00
miruka
a3d2fc9b98 Fix debug console history when editing entry text 2019-09-19 18:43:25 -04:00
miruka
d9addff8ef Put message debug thing in EventContent 2019-09-19 18:39:45 -04:00
miruka
c1a27328d9 Add up/down history browsing to DebugConsole 2019-09-19 18:29:10 -04:00
miruka
7b482de727 DebugConsole must now be created from components
Remove the default console from UI.qml and add a utils.js function
to create one quickly.
Using this function from the component we actually want to debug gives
the console full access to that component's scope, children IDs, etc.
2019-09-19 16:47:35 -04:00
miruka
d20ab5a348 Refactor EventContent
Use proper layouts and get rid of multiple annoyances/bugs like
text-wrapping randomly happening in the middle of words, background
rectangles being too large, a certain binding loop, etc
2019-09-19 15:49:29 -04:00
miruka
4c4d747ecf Add AudioPlayer & EventAudio 2019-09-17 23:23:47 -04:00
miruka
f19d337817 Move hover preview height from settings to theme 2019-09-17 16:39:45 -04:00
miruka
692749e72f Support video events, new media player 2019-09-17 16:30:04 -04:00
miruka
76ffdfd28a Fix HTile left/right click handling 2019-09-14 18:52:43 -04:00
miruka
c6395ff940 EventDelegate context menu, EventFile click
Improve/extend choosing the cursor shape, how context menu handles the
current hovered thing, and open link on EventFile click
2019-09-14 18:33:32 -04:00
miruka
a80f294610 Add EventFile (unfunctional for now) 2019-09-14 17:49:25 -04:00
miruka
38e781c9f7 Fix HButton/HTile focus and click 2019-09-14 17:39:17 -04:00
miruka
784cb3b19c Split HTileDelegate into HTile and HTileDelegate 2019-09-14 16:05:57 -04:00
miruka
fe087ba724 Expose new CppUtils class with formattedBytes() 2019-09-14 15:42:24 -04:00
miruka
69aea0e37f EventImage: open/copy original image on clicks 2019-09-14 01:06:53 -04:00
miruka
45b6714bcb Hide EventContent contentLabel if no text 2019-09-14 00:56:38 -04:00
miruka
451038641e Display RoomMessageImage events 2019-09-14 00:46:54 -04:00
miruka
0db34cc3c8 Add EventMediaLoader
Handles loading of URL previews and will handle all
matrix media messages types.
2019-09-14 00:36:19 -04:00
miruka
8ad13b033d Event: optional (inline_)content, auto-gen inline 2019-09-13 23:02:11 -04:00
miruka
a5095274ba MatrixClient: RoomMessageMedia support 2019-09-13 22:48:33 -04:00
miruka
a2ab7b3090 Add event callback for RoomUnknownMessage 2019-09-13 19:58:45 -04:00
miruka
d3a02deb46 Update version to 0.2.3 2019-09-12 20:59:12 -04:00
miruka
8334f88418 Reduce mouse wheel speed in eventList 2019-09-12 20:54:25 -04:00
miruka
f6b2c59fdc Remove quadruple click message selection
A tripple click is too easily detected as a quadruple when the user
actually did a triple.
2019-09-12 20:17:43 -04:00
miruka
7f29716a61 Fix message times being on a separate line 2019-09-12 20:14:02 -04:00
miruka
ebf6d36c01 Transparent black for hovered avatar background
Also add theme property to change it.
2019-09-12 20:04:46 -04:00
miruka
fcdd960779 Fix avatar tooltips 2019-09-12 19:54:31 -04:00
miruka
7313d6cf1d Remove debug print in HImage 2019-09-12 17:39:28 -04:00
miruka
0b60b2b5bc Add autoplay GIF setting 2019-09-12 17:32:48 -04:00
miruka
1f58cfeae8 Add GIF pause overlay 2019-09-12 17:27:26 -04:00
miruka
5192fe8b55 Click to play/pause animated image 2019-09-12 16:25:05 -04:00
miruka
125d1e24aa Support GIFs 2019-09-12 16:16:35 -04:00
miruka
f8811f4e0c Disable underscore emphasis syntaxes for markdown 2019-09-11 17:25:50 -04:00
miruka
5676a369b2 MemberDelegate: fix missing right padding 2019-09-11 16:49:40 -04:00
miruka
2e3d21aa31 HToolTip: fix binding loop 2019-09-11 16:47:13 -04:00
miruka
0e6b6c830d Support inline HTML/links for room topic 2019-09-11 16:01:37 -04:00
miruka
e53f6ed292 Fix selection disappearing after delegates unload
Make delegates update their selection when they're loaded again.
2019-09-11 15:49:00 -04:00
miruka
d998b471f0 Fix text selection start drag delay 2019-09-11 15:25:57 -04:00
miruka
51e544ddf1 Fix triple click not selecting last message char 2019-09-11 01:55:07 -04:00
miruka
72bcb9bbe3 Update version to v0.2.2 2019-09-10 22:07:41 -04:00
miruka
60663ed040 Leave non-image links out from Event.previe_links
normal links preview isn't implemented yet, which caused any message
with a link to take at least 256px due to the preview repeater.
2019-09-10 22:07:06 -04:00
miruka
7211dd8fda Fix account settings name field getting reset 2019-09-10 21:58:28 -04:00
miruka
7797b0e1eb HtmlFilter: Remove excess newlines
To avoid additional blank lines with HTML/CSS using `white-space: pre`
2019-09-10 21:22:42 -04:00
miruka
b3135601ed Stop supporting starting without pyotherside 2019-09-10 20:49:01 -04:00
miruka
d6b8fae30a matrix_client: leave room before forgetting it 2019-09-10 01:34:01 -04:00
miruka
988ab94772 Fix ForgetRoomPopup destruction/callback 2019-09-09 20:56:10 -04:00
miruka
3e01eeef71 LeftBanner: use ForgotRoomPopup 2019-09-09 20:24:29 -04:00
miruka
b7b309ad4c SignIn: increase box width again
To avoid the Login button loading icon from making the button grid
switch to column mode.
2019-09-09 14:50:45 -04:00
miruka
82f0c273e7 LogoutPopup: implement export keys button callback 2019-09-09 14:49:54 -04:00
miruka
7c0bed79a9 ImportKeys/ExportKeys separate dialog componants 2019-09-09 14:42:58 -04:00
miruka
15add6d91c Confirm account logout and propose exporting keys
Key export button callback not implemented yet.
2019-09-09 12:58:13 -04:00
miruka
85bdbcf5be Move HBox stuff from HPopup to BoxPopup 2019-09-09 12:50:00 -04:00
miruka
38781502c6 HBox: make buttons a column if not enough width 2019-09-09 12:37:01 -04:00
miruka
a3b56519f7 ForgetRoomPopup: improve texts 2019-09-09 12:35:19 -04:00
miruka
2f7fbd2621 Profile: fix eliding, increase wide width needed 2019-09-09 11:35:46 -04:00
miruka
81f54641ba SignIn: increase box width to avoid eliding 2019-09-09 11:24:42 -04:00
miruka
035ab1add6 HMenu: Fix width calculation (padding) 2019-09-09 11:21:49 -04:00
miruka
d7fc0ad0b8 HButtonContent: Enable label eliding 2019-09-09 11:20:59 -04:00
miruka
4ffa3470c7 Confirm forgetting room with popup 2019-09-09 09:24:45 -04:00
miruka
88042cd111 Confirm leaving room with popup 2019-09-09 09:12:51 -04:00
miruka
c38cc9d3df Move popups to their own folder 2019-09-09 08:57:38 -04:00
miruka
6b26aa6d0b load_past_events: Catch RoomMessagesError 2019-09-09 08:26:09 -04:00
miruka
3ef32b4c04 Use verb when possible instead of "OK" for buttons 2019-09-09 08:20:24 -04:00
miruka
9f8ac6ca9f Auto-focus OK only for ClearMessagesPopup 2019-09-09 08:16:05 -04:00
miruka
7f995c749f HPasswordPopup: enable OK if password not empty 2019-09-09 07:49:07 -04:00
miruka
e5893c5569 HBox: Add arrow keys navigation
Also rename enterButtonTarget to clickButtonOnEnter
2019-09-09 07:41:48 -04:00
miruka
7f89604789 button/checkbox: highlight on activeFocus
Not just tab-induced focus.
2019-09-09 07:19:06 -04:00
miruka
af17151c11 Fix shortcut focus issue? 2019-09-09 06:47:36 -04:00
miruka
6f7695ad22 HBoxPopup: split text into summary and details 2019-09-09 06:32:29 -04:00
miruka
9286f54cd5 Rename HOkCancelPopup to HBoxPopup 2019-09-09 06:25:08 -04:00
miruka
2611e86517 Confirmation popup to clear messages 2019-09-09 06:23:46 -04:00
miruka
f40e853078 Word-wrap name label for messages 2019-09-08 21:56:15 -04:00
miruka
d547df62fb Fix HPasswordPopup valid/wrong icon color 2019-09-08 12:19:40 -04:00
miruka
aae26672de Split HPasswordPopup into HPopup, HOkCancelPopup 2019-09-08 12:17:42 -04:00
miruka
aefb314999 Fix exporting key to a path that doesn't exist yet 2019-09-08 12:17:08 -04:00
miruka
df753b5262 Say "change profile picture" if avatar already set 2019-09-08 11:53:01 -04:00
miruka
e93c251624 Add clear messages shortcut 2019-09-08 11:51:03 -04:00
miruka
db0de237e6 Add message context menu entry to clear events 2019-09-08 11:40:39 -04:00
miruka
405573bb2d Fix room subtitle quotes: second+ quote not green 2019-09-08 10:48:58 -04:00
miruka
916f6d8327 Update version to v0.2.1 2019-09-07 23:14:31 -04:00
miruka
a87f98fae0 Add key exporting to account settings 2019-09-07 19:17:32 -04:00
miruka
11486ab51d Add homeserver URL field to login screen 2019-09-07 17:24:58 -04:00
miruka
8113ba468d HTextField: remove ugly _tf property 2019-09-07 17:02:09 -04:00
miruka
31e1daa046 Set placeholder text color for text field and area 2019-09-07 17:00:12 -04:00
miruka
c5bd5a1eb1 Add transparency to typing members bar 2019-09-07 16:55:07 -04:00
miruka
134543728e Add escape to exit and clear room filter field 2019-09-07 16:48:23 -04:00
miruka
a15fba92cb Add clearRoomFilterOnEnter setting, default true 2019-09-07 16:39:14 -04:00
miruka
a731013a8c Fix Utils.minutesBetween()
minutesBetween(
    new Date(2019, 01, 01, 13, 20, 00), new Date(2019, 01, 01, 14, 20, 00)
)
returned 0 instead of 60, the fixed function property return numbers of
minutes after 60.
2019-09-07 16:33:16 -04:00
miruka
a6b154c207 Composer scrollbar: invisible unless really needed 2019-09-07 15:48:13 -04:00
miruka
66129a9eb2 Remove seconds from message dates
Makes them easier to read
2019-09-07 15:16:03 -04:00
miruka
78119d1ef0 Wrap text in <pre> 2019-09-07 14:34:14 -04:00
miruka
cde0c15a68 Add full name/topic tooltip to room header 2019-09-07 14:14:04 -04:00
miruka
66871aefe6 Set a (max) content width for HToolTip 2019-09-07 14:00:01 -04:00
miruka
fd543f3204 Re-fix quote parsing 2019-09-07 02:22:42 -04:00
miruka
9f8bdfc6fb Fix html quote regex
Also allow quoting in title, e.g. "# > blah blah blah"
2019-09-07 01:44:51 -04:00
miruka
07fb63aa1e rstrip excess \n from html filter output
Caused the event time to be incorrectly shown on its own on a new line
for messages that were ~600px
2019-09-07 00:19:36 -04:00
miruka
393d404242 Fix name alignment for own messages on left 2019-09-06 23:36:37 -04:00
miruka
6e40f29ebe Consider preview thumbnails to calculate msg width
Also move thumbnails width setting from settings.json to the theme
2019-09-06 23:36:37 -04:00
miruka
ea9caa69f6 Change cursor shape when image hovered 2019-09-06 23:36:37 -04:00
miruka
be481b778a Fix message width making time on its separate line 2019-09-06 23:36:37 -04:00
miruka
7c42066d75 Eventdelegate: Merge menu print and debug console
Also fix avatar-message spacing
2019-09-06 23:36:14 -04:00
miruka
5674d0c7b7 Use a component to display image link previews 2019-09-06 23:34:40 -04:00
miruka
3c4ca7d433 Fix past loading not triggering in some cases 2019-09-06 17:05:49 -04:00
miruka
0651fbd100 Make page scrolling less slippery 2019-09-06 17:03:52 -04:00
miruka
14e01159c6 Increase max flick velocity for HListView 2019-09-06 16:51:26 -04:00
miruka
c35492ca62 Restore HListView scrollbar 2019-09-06 16:46:04 -04:00
miruka
164f09c939 Add theme property to control hovered avatar size 2019-09-06 16:14:39 -04:00
miruka
812fc3aff7 Background color for HMenu instead of transparent 2019-09-06 16:11:25 -04:00
miruka
e1f24657f1 Fix mouse wheel not working on eventList 2019-09-06 16:08:16 -04:00
miruka
d353056db9 Fix scroll to top/bottom 2019-09-06 15:20:22 -04:00
miruka
f6a24ec020 Remove overshoot check for smartVerticalFlick()
Keyboard flicking feels better witohut rather than just abruptly
stopping or not doing anything if the user is already at the top/bottom
of the flickable.
2019-09-06 15:07:19 -04:00
miruka
ddce551360 Add option to target message for debug console 2019-09-06 15:07:19 -04:00
miruka
01f8bc3d6c Add context menu to copy message link URLs 2019-09-06 15:07:19 -04:00
miruka
bf2004ed84 Don't deselect area text from label container 2019-09-06 15:07:19 -04:00
miruka
85aaf7bcce Don't copy combined invisible names 2019-09-06 15:07:19 -04:00
miruka
9936a7e2ee Fix ctrl-c behavior 2019-09-06 15:07:19 -04:00
miruka
922eac4ea9 Pseudo-clipboard safety modifications 2019-09-06 15:07:19 -04:00
miruka
5ce71834f9 Fix clicking a link breaking scroll shortcuts 2019-09-06 15:07:19 -04:00
miruka
b867584784 Make qrc path aliases the same as filesystem ones 2019-09-06 15:07:19 -04:00
miruka
ddd1587b7d Update version to v0.2.0 2019-09-06 15:07:19 -04:00
miruka
e6a133598f Prevent non-left buttons from drag-scrolling 2019-09-06 15:06:35 -04:00
miruka
24a976e3ee Fix clicking on eventList top/bot making it scroll 2019-09-06 15:06:35 -04:00
miruka
6a346264be Improve multiple clicks message selection
- Triple click selects the message body without date or name
- Quadruple click (yes) selects the entire message with name and date
- Quadruple click on the name label does the same
2019-09-06 15:06:35 -04:00
miruka
32fde57ba7 Make message display names selectable 2019-09-06 15:06:35 -04:00
miruka
b610a404af Clear selection if event list loses focus 2019-09-06 15:06:35 -04:00
miruka
522d078d7b Accept ctrl-c to copy selected messages 2019-09-06 15:06:35 -04:00
miruka
131a20e9c5 Add context menu to copy selected messages 2019-09-06 15:06:35 -04:00
miruka
016f76167f Initial implementation of message selection 2019-09-06 15:06:35 -04:00
miruka
aaaff814a1 Update version to v0.1.3 2019-09-06 15:04:19 -04:00
miruka
87ff343cc3 Reduce quotes brightness in room subtitles 2019-09-06 14:12:32 -04:00
miruka
fd0cd35152 Enable logging of nio errors 2019-09-06 14:05:47 -04:00
miruka
f5cbbd0a44 Reduce needed width to show room times
Also remove excess spacing between the title and time
2019-09-06 14:04:18 -04:00
miruka
5eaa877554 Avoid import harmless error messages at the end 2019-09-05 17:51:38 -04:00
miruka
dc209bc5d4 Press esc to hide debug console 2019-09-05 16:28:06 -04:00
miruka
58d491a2b3 Add basic JS/QML debug console 2019-09-05 15:43:00 -04:00
miruka
eab6d1c2ee Fix linkify regex to allow # characters 2019-09-04 05:10:53 -04:00
miruka
970b0c82d3 Disable long press to open context menu
Interferes with drag-scrolling for HTileDelegate
2019-09-02 19:35:18 -04:00
miruka
6b18ac6d26 Fix members list overlapping with filter field 2019-09-02 13:24:25 -04:00
miruka
175caba2e9 Ignore member events where prev_content == content 2019-09-02 13:21:46 -04:00
miruka
d5dbb1368f Fix RoomHeader icon paddings 2019-09-01 20:33:05 -04:00
miruka
a0509465e6 live-reload: allow specifying a component to load 2019-08-31 21:52:45 -04:00
miruka
11dbd1e457 Force model sync when receiving remote echo
Forcing model sync on local and remote echo make our own messages
appearing and the loading icon disappearing both feel faster.
2019-08-31 16:18:27 -04:00
miruka
69ed35d4dd Trigger model sync ASAP when creating local echoes 2019-08-31 16:14:14 -04:00
miruka
28d8721fe2 Fix HShortcutHandler not processing shortcuts 2019-08-31 15:34:05 -04:00
miruka
0bbc61fd64 Remove pdb call 2019-08-30 20:40:09 -04:00
miruka
9aff5450db Reduce icons brightness 2019-08-30 20:30:39 -04:00
miruka
ca2ecc75bb Make uvloop dependency optional 2019-08-30 20:24:13 -04:00
miruka
cc4a33bb04 Write to disk merged base + user config files 2019-08-30 19:43:58 -04:00
miruka
92f6274458 Use QtGraphicalEffects.LinearGradient
Instead of using a Rectangle and its gradient prop, since there's no
need for the rotation/scale hack and it gives better quality.
2019-08-30 19:21:51 -04:00
miruka
f25a0d7c87 mainUI: be an Item instead of Rectangle 2019-08-30 19:09:21 -04:00
miruka
e506a70767 Fix random shortcuts getting triggered
Caused the "window bounces when typing text" bug
2019-08-30 19:06:42 -04:00
miruka
6953250e50 Adjust padding for Buttons, TextFields, TextAreas 2019-08-30 18:10:25 -04:00
miruka
a6aec2d5bf Fix HButton size on KDE 2019-08-30 17:37:13 -04:00
miruka
a40b274c7d Explicitely unset font.pointSize
Avoid warnings on desktop environments
2019-08-30 17:04:42 -04:00
miruka
546761f591 Fix sidePane toolBar id/property name 2019-08-30 13:48:24 -04:00
miruka
70b82b7b59 Add scroll to top/bottom keybinds 2019-08-30 13:40:56 -04:00
miruka
6a540f6397 Add keybinds to scroll page up/down 2019-08-30 13:06:54 -04:00
miruka
927323909d Rename "greentext" to "quote" 2019-08-30 12:29:01 -04:00
miruka
b651be3c30 Support greentext in RoomDelegate subtitle 2019-08-30 12:07:50 -04:00
miruka
720eb78fe8 Fix displaying local echo html formatting 2019-08-30 11:53:55 -04:00
miruka
aec83c66f3 Fix apply button loading on profile change 2019-08-30 11:42:01 -04:00
miruka
8a2053fcaf Fix collapsing account with keyboard
When collapsing the account and the current page/focus is a room of this
account, switch focus to the account.
2019-08-30 11:24:47 -04:00
miruka
8276e800be Rename SidePane components 2019-08-30 11:05:11 -04:00
miruka
244fc12465 Fix using up/down arrows when focusing sidepane
Pause the HTileDelegates setCurrentTimer when the SidePane has focus.
2019-08-30 10:56:38 -04:00
miruka
4587599cf5 Fix sending typing state when no configured alias 2019-08-30 10:49:41 -04:00
miruka
498bee2e20 Improve image path matching regex for html_filter 2019-08-30 10:37:13 -04:00
miruka
06d75a18fc Remove useless print 2019-08-30 10:33:58 -04:00
miruka
f0612c2a51 Fix daybreak not showing before RoomCreateEvent 2019-08-30 10:33:17 -04:00
miruka
10a53d7afb Fix room past events loading in some cases 2019-08-30 10:28:53 -04:00
miruka
a987cf48e6 Don't add profile events to the timeline (for now) 2019-08-30 10:09:09 -04:00
miruka
19cbfc9cfe Fix html_filter.py for html_sanitizer 1.7.3 2019-08-30 00:07:41 -04:00
miruka
3a6ecce4f7 Improve background gradient 2019-08-29 21:06:24 -04:00
miruka
552a4b53fb Use the now fixed nio.MatrixRoom.display_name
The property behaves according to the Matrix standard starting from nio
0.5, no need to generate the room display name ourself anymore.
2019-08-29 16:47:07 -04:00
miruka
665211a8d3 Increase inputs color saturation 2019-08-28 19:47:28 -04:00
miruka
73af3bd2c5 Reduce button hover/highlight overlay opacity 2019-08-28 19:44:52 -04:00
miruka
1eaec701dc Fix banners position 2019-08-28 19:39:22 -04:00
miruka
ff9f8127d7 UI gradient background, adjust some colors 2019-08-28 19:34:50 -04:00
miruka
1806ac6ac0 Color "upload profile picture" icon
Also fix hover zone to span the entire avatar rectangle
2019-08-28 18:47:04 -04:00
miruka
e1da7be253 Gray out disabled button icons 2019-08-28 18:32:16 -04:00
miruka
6cda69ad67 Restore icon colors 2019-08-28 18:21:13 -04:00
miruka
4bee87ed5d Add positive/negativeBackground to theme 2019-08-28 16:41:58 -04:00
miruka
37e762d241 Remove hard-coded colors and cleanup SVG icons
Also remove old filled icons pack, and rename the "light-thin" pack to just
"thin".
2019-08-28 16:30:48 -04:00
miruka
18120f5216 Add HProgressBar component 2019-08-28 14:28:20 -04:00
miruka
21b44bcf66 Add animated icon to ImportingKeys box 2019-08-28 13:50:29 -04:00
miruka
4ff3ebe255 Fix room subtitle for local echoes 2019-08-28 13:29:49 -04:00
miruka
f8a392883b Retry decrypting megolm events after a key import 2019-08-28 13:23:12 -04:00
miruka
b9f593fb27 Fix opening import key file picker and button 2019-08-28 13:16:06 -04:00
miruka
3a5d8bff9e Remove HInteractiveRectangle and HRateLimiter 2019-08-28 12:02:53 -04:00
miruka
b1e1ea30d2 Rename HInterfaceBox component to HBox 2019-08-28 11:56:05 -04:00
miruka
7c3ed5ca14 Use HInterfaceBox for ImportExportKeys 2019-08-28 11:54:25 -04:00
miruka
ce3404a516 Show import keys error in the UI 2019-08-28 11:42:52 -04:00
miruka
7d2cbae26f Show key import progression 2019-08-28 03:54:53 -04:00
miruka
f65c0176ba Better error handling and fixes for key import 2019-08-27 23:51:38 -04:00
miruka
399a35dacb Rename SendBox to Composer 2019-08-27 23:03:52 -04:00
miruka
97b1608bcb Ensure opacity/rotation of button icon is reset
After loading finished
2019-08-27 22:59:26 -04:00
miruka
560981a97e Remove uneeded HRectangle component 2019-08-27 22:46:31 -04:00
miruka
77dbc3a502 Fix accent and input colors 2019-08-27 22:44:41 -04:00
miruka
9b83b91d9d Remove unused HScalingBox component 2019-08-27 22:44:20 -04:00
miruka
ebfebbeae1 Improve import keys password popup 2019-08-27 22:43:57 -04:00
miruka
05b248e31a Make config file reloading work again 2019-08-27 20:06:58 -04:00
miruka
eb11e7a13a Disable invite and room sidepane expand icon
Their functions are not implemented yet.
2019-08-27 19:51:25 -04:00
miruka
0a0e11e1f4 Rework the LoadingScreen and HBusyIndicator 2019-08-27 19:47:58 -04:00
miruka
410a42bc59 Show EditAccount page loading until profile ready 2019-08-27 15:07:08 -04:00
miruka
6cb7589cca Loading icon for accounts until synced 2019-08-27 15:00:50 -04:00
miruka
b457f46247 Close HTTP session when logging in fails
Avoids "Unclosed client session" error messages in the terminal
2019-08-27 14:23:09 -04:00
miruka
0c0ede8b40 Disable buttons when they're loading 2019-08-27 14:21:10 -04:00
miruka
bf3847dd66 Animate button loading 2019-08-27 14:11:33 -04:00
miruka
f5e52aed4e Fix qrc resources not working 2019-08-25 15:39:00 -04:00
miruka
8ebd7189cc Disable SidePane shortcuts when no account present 2019-08-23 11:06:19 -04:00
miruka
7eda87217c Add keybind to add new account 2019-08-23 11:03:18 -04:00
miruka
9077ea3925 Fix timer setting current AccountsRoomList index 2019-08-23 10:53:54 -04:00
miruka
2ff65af6ab Prevent alt+letter from writting text in fields 2019-08-22 14:31:13 -04:00
miruka
a47351a5ad Adapt auto-repeat shortcuts to new system 2019-08-22 14:16:49 -04:00
miruka
8de26c11a1 HShortcutHandler & HShortcut components
Provide more powerful shortcuts handling than what's available with
QML's Shortcut component, notably being able to react differently to key
presses, releases and auto-repeats.
2019-08-22 13:03:26 -04:00
miruka
3749d1e135 Allow pressing escape to cancel in edit profile 2019-08-22 10:22:21 -04:00
miruka
cc7fbc5ab7 Fix invite icon size when room side pane collapsed 2019-08-22 10:03:43 -04:00
miruka
627a186700 Add tooltips to buttons and room invite button 2019-08-22 09:27:41 -04:00
miruka
3082c64666 Show user ID as member tile subtitle
Also move member styling in theme to the right place
2019-08-22 05:42:48 -04:00
miruka
6b64800ed7 Fix highlight not set when logging in new account 2019-08-21 17:55:27 -04:00
miruka
b8d43ecfec Add account logout feature via context menu 2019-08-21 17:45:05 -04:00
miruka
7331c1fa1c MenuItem: don't take space when not visible 2019-08-21 16:41:52 -04:00
miruka
26b01be23c Add accept invite to room context menu 2019-08-21 16:38:34 -04:00
miruka
076ff743ad Add forget to room context menu
Also show Leave only if not already left, and rename forget-room.svg to
room-forget.svg
2019-08-21 16:29:44 -04:00
miruka
437324bd64 Improve HMenu/HMenuItem style 2019-08-21 16:23:22 -04:00
miruka
ed96409645 Split HButton components, add HMenu/HMenuItem 2019-08-21 15:45:13 -04:00
miruka
6067c8ec96 Add room context menu with Leave/Decline invite 2019-08-21 14:58:57 -04:00
miruka
fea2178461 Make linkify regex work with port in URL 2019-08-21 14:22:34 -04:00
miruka
d2938f8730 Don't linkify image links for outgoing html 2019-08-21 14:14:44 -04:00
miruka
206f5494c8 Use hsluv for display names & remove hsl funcs 2019-08-21 12:43:07 -04:00
miruka
9332eadbbf Use hsluv instead of hsla for avatar colors 2019-08-21 12:35:55 -04:00
miruka
7624ce5fcb hsluv/hsl(a) functions: wrap around hue 2019-08-21 12:32:14 -04:00
miruka
1886303481 Fix member filtering 2019-08-21 12:17:12 -04:00
miruka
8ef3a6dc33 Fix expand icon size and startup highlight
Remove "hide hover highlight when keyboard pressed" feature, too hacky.
2019-08-21 06:02:00 -04:00
miruka
1f5b46c257 Merge HListView and HFixedListView components 2019-08-21 05:02:37 -04:00
miruka
6e3924ca4e Add ListView highlight color to theme 2019-08-21 04:58:53 -04:00
miruka
bd94cc3625 Fix button icon position 2019-08-21 04:52:34 -04:00
miruka
713aaf3635 Set padding for HCheckBox 2019-08-21 04:46:40 -04:00
miruka
bdf7a63e6f Increase sign in login method icons size 2019-08-21 04:43:37 -04:00
miruka
46e685847f Replace HInteractiveRectangle by HTiledelegate 2019-08-21 04:39:07 -04:00
miruka
4abf57c8d4 Make HCheckBox themable 2019-08-20 18:31:20 -04:00
miruka
e012cf6e31 Highlight HButton when tab-focused 2019-08-20 17:43:59 -04:00
miruka
ce128d5ab5 Refactor HButton 2019-08-20 17:41:24 -04:00
miruka
7e7852b51e Hide hover highlight when moving with keybinds 2019-08-20 14:39:37 -04:00
miruka
073a2eacee Add arrow navigation to sidepane when focused 2019-08-20 13:55:20 -04:00
miruka
203eb3b299 Make focus sidepane keybind swipe if reduced 2019-08-20 13:27:13 -04:00
miruka
e127b96158 Fix collapsed sidepane spacing for the nth time 2019-08-20 13:12:40 -04:00
miruka
c865de6dc7 Fix wrong collapse keybind: Alt+Shift+(R → L) 2019-08-20 13:01:22 -04:00
miruka
57b13131a0 Fix ListView transition bugs? 2019-08-19 20:50:14 -04:00
miruka
16ac335d43 Fix last account always being hidden 2019-08-19 18:49:56 -04:00
miruka
5c75de68ea Don't run ToggleCollapseAccount() if filter active 2019-08-19 18:40:23 -04:00
miruka
d427465425 Don't animate highlight rectangle sliding on click 2019-08-19 18:32:43 -04:00
miruka
de4d984ded Use smart case for filters 2019-08-19 18:25:00 -04:00
miruka
aba01d54e8 Rate-limit next/previous room activation 2019-08-19 18:17:59 -04:00
miruka
109082c8d8 Use a Loader instead of StackView for pageStack 2019-08-19 15:38:45 -04:00
miruka
99bbe7f3ee Keep the highlighted ListView item centered 2019-08-19 14:46:40 -04:00
miruka
c841a7a841 Add keybind to toggle collapsing account 2019-08-19 14:28:12 -04:00
miruka
e713eb7e24 Hide harmless error when no matches for filter 2019-08-19 14:06:11 -04:00
miruka
314b2c30ad Add keybind to clear room filter 2019-08-19 14:05:59 -04:00
miruka
af14038909 Rename filterRooms keybind to FocusSidePane 2019-08-19 13:58:31 -04:00
miruka
36dd6457ea Change focus filter rooms keybind to (Alt/Ctrl)+S 2019-08-19 13:18:45 -04:00