miruka
2ccb28fa49
Box/popups: ignore enter press on disabled buttons
2020-08-21 05:08:12 -04:00
miruka
8fbe59f6eb
Fix cursorShape over fields inside a HFlickable
...
Bug introduced in 6b907, made the cursor stay as a normal arrow when
hovering text fields/areas inside a HFlickable due to the
HKineticScrollingDisabler's width/height being incorrectly set.
2020-08-21 04:58:58 -04:00
miruka
43b14f3129
Make autocompletion work not just at end of line
2020-08-21 04:44:55 -04:00
miruka
1b919ec7be
Cursor moves before last word: close completion UI
2020-08-21 01:46:07 -04:00
miruka
063f9d2b1d
Only mention tab-completed usernames
2020-08-21 01:21:51 -04:00
miruka
5ba669444d
Add basic user autocompletion UI
2020-08-21 01:21:10 -04:00
miruka
ec17d54923
ServerDelegate: ignore compact mode
2020-08-21 01:19:18 -04:00
miruka
cc06645275
Add spinner when fetching homeservers list
2020-08-21 01:19:18 -04:00
miruka
4f1b007e6f
Add some top/bottom padding to account bar
2020-08-21 01:19:18 -04:00
miruka
ede99b310e
Fix login box tab shortcuts
2020-08-21 01:19:18 -04:00
miruka
3c79ffbf21
Don't show register/reset tabs on sso login box
2020-08-21 01:19:18 -04:00
miruka
f648807730
Remove unused Device model item
2020-08-21 01:19:18 -04:00
miruka
e303ee1fc9
SignInSso: return to server list on Cancel click
2020-08-21 01:19:18 -04:00
miruka
5ac5dbd1d5
Add usual FlickShortcuts to server browser
2020-08-21 01:19:18 -04:00
miruka
21fbe7a96b
Show scrollbars for a few seconds at first
...
Lets the user know that there's content to scroll.
2020-08-21 01:19:18 -04:00
miruka
11def5c99f
Mozilla server is now in anchel.nl public list
2020-08-21 01:19:17 -04:00
miruka
2f1889423b
Room & member filter fields: support (shift+)tab
2020-08-21 01:19:17 -04:00
miruka
007a11b4aa
Change "go to homeserver address" icon
2020-08-21 01:19:17 -04:00
miruka
d945bed0a3
Increase "Homeserver address" text bottom padding
2020-08-21 01:19:17 -04:00
miruka
d3092c4929
Clear server list highlight when field text edited
2020-08-21 01:19:17 -04:00
miruka
21462dc25f
Remove unused theme smallPaneHighlight property
2020-08-21 01:19:17 -04:00
miruka
c51a771a65
Add colored border to HListView highlight delegate
2020-08-21 01:19:17 -04:00
miruka
05f2c20924
Remove leftover pdb call in MatrixClient._send()
2020-08-21 01:18:44 -04:00
miruka
4760ccac5e
Filter servers also by their name
2020-08-19 06:37:26 -04:00
miruka
ab390704eb
Use homeserver URL field also as a filter field
2020-08-19 04:39:50 -04:00
miruka
16970d5e56
Auto-detect homeserver scheme://
2020-08-19 02:14:46 -04:00
miruka
2fa8b2c5f9
Add a public server list to the initial login page
2020-08-19 01:13:34 -04:00
miruka
1a6273681d
Fix HMenuItemPopupSpawner
2020-08-19 00:16:42 -04:00
miruka
21fe4b7bd1
Add spacing between MemberDelegate name-last seen
2020-08-16 16:17:22 -04:00
miruka
cc7c0ad336
Add theme property to Utils
...
Gets set to the window.theme when a theme is loaded, done to avoid
having to refer to the window object from utils.
2020-08-03 01:29:37 -04:00
miruka
a389238024
Add window.makePopup(), utils.makePopup() wrapper
2020-08-03 01:26:35 -04:00
miruka
c813e92ac7
Move hideErrorTypes & showError() to PythonBridge
2020-08-03 01:19:08 -04:00
miruka
040e966d27
Remove utils.sendFile(), useless wrapper
2020-08-03 01:05:19 -04:00
miruka
09ae0d7776
Server discovery: no need to recreate a client
2020-07-30 22:59:24 -04:00
miruka
758edd8a6a
Upload sync filter & use filter ID for syncs
...
rather than passing an entire filter dict for every single syncs.
This shortens the request URL and prevents troubles with some servers
that have an absurdly low max URL length (e.g. halogen.city).
2020-07-30 22:53:43 -04:00
miruka
03f9ec94ff
Fix autolinking user IDs including ; or <
2020-07-29 02:00:49 -04:00
miruka
865d6b8bc8
ServerBrowser: strip trailing slashes from URL
2020-07-27 16:40:04 -04:00
miruka
db5d9b57f8
RoomDelegate subtitle: lazy-fetch missing profiles
2020-07-27 04:32:00 -04:00
miruka
a0912106ca
EventDelegate: fix not setting fetchProfilesFuture
2020-07-27 04:24:40 -04:00
miruka
d127ad978c
Correctly handle initial sync member events
...
Previously, member events in initial syncs (unless user had "hide member
events" and "hide profile events" set to false in their config) were
completely discarded with the help of a sync filter, instead of simply
being hidden like events loaded from room backfilling.
This was done due to the common case of rooms getting only
userconfig-ignored/hidden events on startup (especially with the
low number of initial events requested for lazy initial sync),
and thus having nothing to show as "last message" in
the room list (room delegate subtitles).
Other problems resulted from this, like missing join/leave events
when the config was set to hide profile events but not other
member events, and the "Members not synced" (#54 ) in encrypted room
with recent discarded member events.
The discarding filter is no longer used. Instead, if a room in the room
list has no visible "last message" and is currently visible to the user,
messages will be lazily fetched until we find something adequate or the
room goes out of view.
2020-07-27 03:59:41 -04:00
miruka
f1f24f5121
Don't log "unknown member event" warnings
...
These just mean we haven't noticed any change in a profile event, and
haven't been of any use.
2020-07-27 02:43:11 -04:00
miruka
fcf6b45bf6
Disable timeline scrolling when a popup is open
2020-07-27 00:16:04 -04:00
miruka
6d8980bcb3
Use nio's new restore_login() method
2020-07-27 00:15:52 -04:00
miruka
e611f89fe3
Fix/update Backend._do_login() docstring
2020-07-26 23:40:15 -04:00
miruka
3ab2864f22
SignInSso: add a copy URL button
2020-07-26 20:58:14 -04:00
miruka
ddee50f28a
Show a shorter URL to open for SSO
...
Show "http://127.0.0.1:port ", which will automatically redirect to the
long ugly homeserver's URL.
2020-07-26 20:40:55 -04:00
miruka
157ea2ffb2
Add support for SSO authentication
2020-07-26 20:34:06 -04:00
miruka
d7907db547
Ask for server URL before showing sign in box
...
Contact the server's .well-known API before anything to get
available login flows instead of blindly assuming it will be
m.login.password, and to get the server's real URL instead of
requiring users to remember that e.g. it's "chat.privacytools.io"
and not just "privacytools.io" despite user IDs making it look like so.
The server field will also now remember the last accepted URL.
2020-07-24 02:36:24 -04:00
miruka
b94d1e8168
Fix possible race condition when writing user file
...
While a user file write operation #1 was queued in the _write_loop,
it was possible meanwhile for another function to read the file
(the current old version on disk), add some data to it,
add submit the write (operation #2 ).
The modifications from operatio #1 were then completly lost at best.
2020-07-24 01:01:37 -04:00
miruka
872ee49a79
Don't catch SIGQUIT and SIGTERM
...
Give a way to quickly force quit. Catching SIGTERM also causes problems
with the live-reload script.
2020-07-24 00:45:58 -04:00
miruka
3a7ad5859f
qml_bridge: remove old signal code
2020-07-24 00:22:51 -04:00
miruka
87ad3ccab1
Fix truncated "Loading previous messag..." text
2020-07-22 16:26:30 -04:00
vslg
6b9077816e
Add HKineticScrollingDisabler to HFlickable
...
Also make horizontal scrolling available when
kinetic scrolling is disabled
2020-07-22 15:45:05 -04:00
miruka
5dbcf9c825
Image viewer: fix info bar text vertical alignment
2020-07-22 01:31:06 -04:00
miruka
aba29a198d
Increase image viewer bar opacity
...
Make it easier to read on bright images
2020-07-22 01:22:42 -04:00
miruka
d00b29f076
Add media.openExternallyOnClick setting
...
Makes clicking on image open them externally and middle-clicking open
them in the mirage image viewer, the reverse of the default behavior.
2020-07-22 00:14:15 -04:00
miruka
0f1d0f336e
Don't show avatar tooltips when context menu open
2020-07-22 00:04:12 -04:00
miruka
e917e29913
Image viewer: respect autoHideOSDAfterMsec setting
2020-07-22 00:00:53 -04:00
miruka
ad8c9d55dc
Raise max flicking speed while keyboard-scrolling
...
Lets holding the page down/up keybinds properly do their job again
2020-07-21 23:54:35 -04:00
miruka
c1f9416f1a
Clipboard change → force image preview update
2020-07-21 23:47:41 -04:00
miruka
0088fadddd
Compress images in a separate process
...
Compression with Pillow can take long, especially with large
clipboard PNG images.
Doing this in a separate process prevents the async event loop from
getting blocked, and allows multiple compression operations to run in
parallel.
2020-07-21 23:35:16 -04:00
miruka
286b7a951a
Disable optim. when recompressing clipboard PNG
...
Far too slow for big (10MB+) PNG
2020-07-21 23:09:07 -04:00
miruka
1c218c82ec
Ignore reply header links for keyboard open binds
...
Don't open the multiple links contained in the "In reply to <user>"
text of fallback replies when using keyboard shortcuts to open
links/media.
2020-07-21 22:46:05 -04:00
miruka
7214180a66
Don't send typing notif if no permission to talk
2020-07-21 22:13:44 -04:00
miruka
da7417f13f
Fix SettingsView stealing focus from popups
...
Making the window narrow enough to switch to "mobile mode", then big
again would trigger a signal in SettingsView that switched focus to it,
even when it wasn't visible.
2020-07-21 22:11:13 -04:00
miruka
8c1d7a868e
Catch 403 error when getting offline user presence
...
It's possible to get a MatrixForbidden error when trying to retrieve a
offline room member's presence, if that member actually left the room
but the server hasn't yet sent the update.
2020-07-21 21:02:28 -04:00
miruka
a402c7657a
Don't render invisible thumbnail spinner
2020-07-21 19:50:49 -04:00
miruka
43cfb74460
Fix HTTP event image not loading on click
2020-07-21 19:45:52 -04:00
miruka
377b11220e
Auto-hide image viewer bars when needed
2020-07-21 19:42:57 -04:00
miruka
fdc06d81fd
Add info bar to image viewer
2020-07-21 17:34:45 -04:00
miruka
48eac96976
Add "Open externally" to media event context menu
2020-07-21 01:06:31 -04:00
miruka
3435dbc2f8
Add copyFilesLocalPath keybind
2020-07-20 23:28:07 -04:00
miruka
67b7821fae
Ctrl+C, non-E2E media: copy HTTP URL, not filename
2020-07-20 23:17:51 -04:00
miruka
99017adc1d
Model item events: add a media_http_url field
2020-07-20 23:09:28 -04:00
miruka
55e22ea948
Add openMessagesLinksOrFilesExternally keybind
...
This required us to set the media downloaded local path on events
entirely from python instead of simply lazy-fetching them when needed
from QML, due to pyotherside's async nature and files that must be open
in a certain order.
2020-07-20 23:07:52 -04:00
miruka
89e6931d9d
Fix ViewerButtons implicit width calculation
2020-07-20 21:39:52 -04:00
miruka
93b46dcfee
Move AutoDirectionLayout sum function to Utils
2020-07-20 21:37:08 -04:00
miruka
acd02a67a0
Add image viewer keybinds
2020-07-20 21:34:00 -04:00
miruka
0cd2678797
Event context menu: copy HTTP media URL, not MXC
2020-07-20 19:58:44 -04:00
miruka
2fb4ad5eae
Improve timeline GIF auto-pausing
...
Pause when any popup is covering the timeline (image viewer or not), and
work when opened by ctrl+o, not just when clicking the thumbnail.
2020-07-20 19:51:35 -04:00
miruka
93baaf51a0
Fix HPopup not calling window.visiblePopupsChanged
2020-07-20 19:47:48 -04:00
miruka
e5b102c761
Hide HImage pause button in image viewer
...
Have only the one from the viewer's button bar
2020-07-20 19:39:32 -04:00
miruka
a8e1ece1ea
Add buttons to image viewer
2020-07-20 19:39:31 -04:00
miruka
595714f9f6
Fix HButtonContent when no icon
2020-07-20 18:52:44 -04:00
miruka
e62d99c3cc
Stricter requirements to consider a client healthy
...
A healthy client must not only have a sync task running, but also have
finished its initial sync and have been succesful in its last sync
attempt.
The previous weak requirement caused this issue:
Have two clients, one on a failing server, and try to fetch a media,
thumbnail or profile: since these functions don't need auth, any
healthy client is picked to do the request, but the previous
requirement made it possible to pick the failing client.
2020-07-20 16:03:46 -04:00
miruka
b803c34338
Make middle click also work outside of image
2020-07-20 14:30:00 -04:00
miruka
66a44b5251
Split ImageViewer components
2020-07-20 14:27:52 -04:00
miruka
9444225afa
Remove pressDelay from image viewer flickable
...
Seems to create a bug where the user can accidentally scroll the
timeline behind the popup instead of the image viewer flickable itself
2020-07-20 13:24:03 -04:00
miruka
7bfaced66b
Fix event list + composer double context menu
...
Don't also Aopen the composer's context menu when there are
highlighted or selected messages in the timeline and user presses the
menu key.
2020-07-20 12:40:38 -04:00
miruka
e38a4ed408
Fix context menu encrypted media check
2020-07-20 12:34:32 -04:00
miruka
6bdf39ad68
Fix contextmenu "Copy text" when event highlighted
...
When an event was highlighted with the keyboard, right clicking a
message and clicking "Copy text" would always copy the message that was
highlighted instead of the one the user aimed for.
2020-07-20 12:31:40 -04:00
miruka
15b1720775
Pause timeline GIF while image viewer is open
2020-07-20 01:09:06 -04:00
miruka
30ce271ebc
Real "copy URL" & "copy path" context menu entries
...
Replace the poorly implemented 2-in-1 "copy address" media event
menu option with:
- Copy <mediaType> address: visible for non-encrypted media, always
copies the http URL
- Copy local path: always visible for already downloaded media, even if
they were downloaded before mirage was started
2020-07-20 00:22:12 -04:00
miruka
37579fc664
Cleaner context menu "copy text" icon
2020-07-20 00:21:41 -04:00
miruka
2001fcf70a
openImageViewer(): take an optional callback
2020-07-19 20:33:40 -04:00
miruka
066102e64d
fullscreen: alt. scale mode only if image < window
2020-07-19 20:29:25 -04:00
miruka
06c2a24c9e
Image viewer: separate fullscreen functions
2020-07-19 20:27:08 -04:00
miruka
48014cb8e5
Allow right clicking outside of image to close it
2020-07-19 20:22:36 -04:00
miruka
8053bd7d01
EventFile: respond to middle click (same as left)
2020-07-19 20:21:26 -04:00
miruka
b8833af3f9
HTile: add middleClicked() signal
2020-07-19 20:20:53 -04:00
miruka
8a73e65254
Rename openMessagesLinks keybind (...OrFiles)
2020-07-19 20:17:52 -04:00
miruka
de6d8fa59d
Make media openable with the openLinks keybind
...
This involved a refactoring to move all the media handling functions
(downloading, opening externally, etc) out of the Event delegates and
into the EventList, which manage keybinds instead.
This should also be better for performance since all these functions are
no longer duplicated for every Event in view.
Other user-noticable change: clicking on non-image media will
always download and open them no matter if the room is encrypted or not,
instead of opening non-encrypted files in browser like before. It will
be possible to still do that with an "open externally" command later.
2020-07-19 20:10:31 -04:00
miruka
fe08014697
Image viewer: make thumbnailPath property optional
2020-07-19 16:51:06 -04:00
miruka
e2c6f0e64c
Don't cancel upload if server max size is unknown
2020-07-19 16:24:16 -04:00
miruka
2dbb155a22
Fix clicking in image viewer always closing GIFs
2020-07-19 16:02:38 -04:00
miruka
465d31790f
Image viewer: handle images without known w/h
...
There's no way to know in advance the real size for
HTTP image previews and m.image events sent by some clients
2020-07-19 15:50:10 -04:00
miruka
6b1a5a46e6
Fix upload for servers not returning max size
2020-07-19 15:37:05 -04:00
miruka
7595c522c4
Fix image upload without thumbnail
2020-07-19 15:34:06 -04:00
miruka
26fe8c4a09
Include decryption dicts in m.image local echoes
...
Fixes local echoes for images resulting in 404s, related to the
retry fix in the previous commit.
2020-07-19 15:00:23 -04:00
miruka
f1055ce5b9
Fix loading m.image events in encrypted rooms
...
Fix bug introduced in 11fb32:
When loading an encrypted thumbnail, QML lacks the decryption dict for
half a second at first.
When calling python like this, python calls the wrong matrix API
for fetching the encrypted thumbnail, and the added retry code
would be forever stuck.
The retry code has been moved to QML, and now works for all HImage.
2020-07-19 14:49:41 -04:00
miruka
26a4d76fc2
Implement basic image viewer popup
...
Current features:
- Show scaled up thumbnail while the full image is loading
- Click to alternate between scaling mode (or reset zoom if not 1x)
- Click outside of image to close
- Double click to toggle fullscreen
- Middle click to open externally (also for thumbnail in timeline)
- Right click anywhere to close
- Ctrl+wheel to zoom
- Click-drag to pan when image larger than window
2020-07-19 03:26:33 -04:00
miruka
bf1e36031f
Animation overshoot: support negative values
2020-07-19 00:37:26 -04:00
miruka
88fb71ff34
HImage: don't load spinner while invisible
2020-07-18 23:55:05 -04:00
miruka
84a41e09e1
HImage: limit spinner size to 96
2020-07-18 23:37:55 -04:00
miruka
11fb32bff6
Retry downloading media if they fail with 404/500+
...
Trying to fetch a media right after it was uploaded can sometimes lead
to a 404
2020-07-18 22:26:23 -04:00
miruka
46c763fdfd
Don't auto-focus disabled power level controls
2020-07-18 20:25:30 -04:00
miruka
1b5a09c052
Move Presence class to its own python file
...
It's not a ModelItem
2020-07-18 18:33:57 -04:00
miruka
692c78f398
Optimize presence-related model item field changes
2020-07-18 18:19:56 -04:00
miruka
d4fb38fd1a
Use layout margin instead of Item after Daybreak
2020-07-18 15:02:19 -04:00
miruka
6463228db2
Fix path upload preview popup when QRC is used
2020-07-17 11:10:15 -04:00
miruka
bd30f89055
Fix compiling on Qt 5.12 (clipboard lambda)
2020-07-17 10:30:06 -04:00
miruka
4b215f7ddb
Bump version to v0.6.0
2020-07-17 08:10:57 -04:00
vslg
9b9cbcb23c
Fix unable to unset status_msg from other clients
2020-07-17 08:09:52 -04:00
miruka
dc24ee5d9d
Hide recursive layout warnings spam in Qt 5.14+
2020-07-17 07:41:26 -04:00
miruka
46fa68e9ca
Reduce "termined" logging when closing app
2020-07-17 07:31:24 -04:00
miruka
eea2693c6a
fix gif crap again
2020-07-17 07:26:31 -04:00
miruka
03af1da1d4
Remove power level apply/cancel button texts
...
Lazy fix for the layout problem
2020-07-17 06:40:15 -04:00
miruka
78b16ae22c
MemberProfile: remove leftover debug console call
2020-07-17 06:40:15 -04:00
miruka
88e74796ef
Fix HImage fillMode for GIFs
...
The animated image relied on the source image's fillMode property, but
it got overwrote with Image.Pad by a Binding in the AnimatedImage.
2020-07-17 06:39:14 -04:00
miruka
68da4be7be
Make GIFs openable externally + real pause button
2020-07-17 06:07:02 -04:00
miruka
7f478efc40
Topic area, power level text: fix disabled opacity
2020-07-17 05:29:25 -04:00
miruka
504f917b40
Increase context menus minimum opacity
...
The previous opacity could be unreadable when there was lots of text
behind, notably for the account menu with the room list behind.
2020-07-17 02:59:37 -04:00
miruka
716ac2a0af
Refer to custom components to access their enums
2020-07-17 01:45:02 -04:00
miruka
d6e904ca4c
Fix indentation for some backend.py lines
2020-07-17 01:30:51 -04:00
miruka
6c4ee17e40
Retrieve last seen time for offline room members
2020-07-17 00:46:46 -04:00
miruka
a17daf61c8
Add timeout for exit-settting-offline
2020-07-16 23:50:44 -04:00
miruka
4784c80ed9
Refactor exit-offline code
2020-07-16 23:34:35 -04:00
miruka
f316a24550
Handle SIGINT, SIGTERM, SIGUP and SIGQUIT
2020-07-16 23:16:21 -04:00
miruka
aff5f45ca0
utils.h: check for Q_OS_LINUX, not _UNIX
2020-07-16 23:05:02 -04:00
vslg
b69cbf9d14
Set users to offline before exiting Mirage
2020-07-16 22:26:55 -04:00
miruka
abcea2244d
Make libX11 & libXScrnSaver optional on Linux
2020-07-16 19:09:09 -04:00
miruka
15de44f47a
Merge pull request #104 from vSLG/presence
...
Save status_msg to accounts.json
2020-07-16 18:28:46 -04:00
vslg
27745bacca
Fix not being able to unset status_msg
2020-07-16 19:25:02 -03:00
miruka
42791f32d3
Enter member profile → focus power level control
2020-07-16 18:17:44 -04:00
miruka
bcf93a6f36
Disable member power level control when offline
2020-07-16 18:11:37 -04:00
miruka
23a0504937
Increase confirm/preview upload popups width
2020-07-16 17:41:02 -04:00
miruka
6065b6c1d6
confirm upload popups: limit size of loaded images
2020-07-16 17:36:13 -04:00
miruka
1708f692b3
Loading spinners for confirm/preview upload popups
2020-07-16 17:17:58 -04:00
miruka
0515a94429
Show spinner for loading media event thumbnails
2020-07-16 17:15:33 -04:00
miruka
606fe3d022
Use a thread lock for Clipboard.qimage()
...
Prevents this: user paste image (image provider retrieves the clipboard
image to show it as a thumbnail),
and immediatly presses enter (retrieves the image to convert it and send
to Python); the two calls would run at the same time instead of one
waiting for the other to set the cache.
2020-07-16 16:24:16 -04:00
miruka
5cc1c55d95
Immediatly show UI transfer for clipboard paste
...
Create an Upload model item before compressing the image and writing it
to disk
2020-07-16 16:14:07 -04:00
vslg
d57414c06c
Save status_msg to accounts.json
...
Restore it if there is not any status_msg set on
the server
2020-07-16 17:09:14 -03:00
miruka
bceafd7bbd
Preview/confirm popup for clipboard pasting
2020-07-16 15:59:54 -04:00
miruka
6365beb455
Cache the clipboard QImage, share with provider
2020-07-16 15:18:07 -04:00
miruka
74c4d63c16
Add C++ clipboard image provider
...
Will be used to show a preview before uploading image from clipboard.
Transforming the clipboard image to PNG (or any other real format) is
slow and freezes the GUI, with the provider we can display it directly.
2020-07-16 14:26:09 -04:00
miruka
292d88a9bf
Fix power level event display in room subtitle
...
For single-change events only
2020-07-16 12:47:28 -04:00
miruka
49a93ebf2b
Format single-change power level event in one line
2020-07-16 12:42:50 -04:00
miruka
9674bf6a84
Handle dicts in power level event, improve sorting
2020-07-16 12:42:50 -04:00
miruka
7d7376a5cf
Correctly handle <img> with no src attribute
2020-07-16 12:42:50 -04:00
miruka
60832b2fcd
Confirm uploading from path in clipboard
2020-07-16 12:42:42 -04:00
miruka
2d623118b5
Support pasting image to upload in the composer
2020-07-15 18:08:17 -04:00
miruka
2449fd5f18
Have spaces in device key for member verification
2020-07-15 11:27:33 -04:00
miruka
04692179f9
MemberProfile: admins can't demote other admins
2020-07-15 10:04:31 -04:00
miruka
62ea61380a
Split avatar presence orb into its own component
2020-07-15 00:39:16 -04:00
miruka
8d5d0ff7fb
Reduce required width to show last seen times
2020-07-14 17:32:47 -04:00
miruka
8e629ade66
Narrow member list: properly hide last seen texts
2020-07-14 17:29:56 -04:00
miruka
3ff90d1074
Fix avatar membership icon position in narrow pane
2020-07-14 17:20:50 -04:00
miruka
d092cd6506
Fix room header in compact window
2020-07-14 17:09:09 -04:00
miruka
a65163df27
Window.getState: return default if prop not in obj
...
If the requested object in states.json exists but doesn't contain the
property we're looking for, return the default value (passed to the
function) instead of undefined.
2020-07-14 16:56:00 -04:00
miruka
d51c0e3e5d
Add keybind to hide room pane (default Ctrl+Alt+R)
2020-07-14 16:51:01 -04:00
miruka
e00832eea6
Allow hiding room pane with lcick on current tab
2020-07-14 16:47:04 -04:00
miruka
c00e35a948
Don't change chat width when showing overlay panes
...
When auto-expanding a pane and showing it as an overlay because of
narrow window, make the chat keep the width it had before.
This makes the transition less jarring, reduces the amount of text seen
through a transparent pane, and fix making one pane overlay expanding
the other.
2020-07-14 16:16:48 -04:00
miruka
e76143c172
Add HDrawer.calculatedMinimumSize property
2020-07-14 15:55:19 -04:00
miruka
efda3a419e
Add kineticScrollingDeceleration setting
2020-07-14 05:46:48 -04:00
miruka
8b11ddd5b5
HFlickable: respect max flick speed user setting
2020-07-14 05:35:53 -04:00
miruka
5007a5d97c
Fix reply bar height
2020-07-14 05:25:32 -04:00
miruka
e5f147e977
Add expand/search button to room pane when narrow
2020-07-14 04:54:23 -04:00
miruka
fea1a8df4c
Remove overshoot from panes auto-expand animation
...
Caused pane to bounce every time their focus field were focused, even
when they were already at sufficiant size
2020-07-14 04:30:01 -04:00
miruka
b7cd08f66b
Fix panes being shown as overlay in "mobile mode"
2020-07-14 03:56:58 -04:00
miruka
645350f199
Auto-expand main pane when filter field focused
2020-07-14 03:31:01 -04:00
miruka
f84b13c657
Move autoexpand from MultiViewPane to base HDrawer
2020-07-14 03:19:57 -04:00
miruka
4b7ce1a195
Auto-expand room pane when filter field focused
2020-07-14 03:14:05 -04:00
miruka
c018c04cab
Auto-expand room pane to show settings/profiles
...
If the room pane is below the default width (by user resizing or because
of narrow window), go to the room settings or a member profile will
automatically expand it as needed.
The pane goes back to its previous size once the settings/profile is
left.
If the window is narrow enough that expanding the pane normally would
reduce the timeline's width past its minimum, the pane is shown as an
overlay instead.
2020-07-14 03:00:10 -04:00
miruka
a44d683956
Show all power level changes for initial event
2020-07-13 23:54:10 -04:00
miruka
d4bc87ea88
Fix onRedactionEvent "etype" mistake
2020-07-13 23:43:46 -04:00
miruka
dd63d1312a
Don't limit width of messages containing tables
2020-07-13 23:38:39 -04:00
miruka
ce9b739889
Add spacing to table cells in messages
2020-07-13 23:36:55 -04:00
miruka
ec9004101a
Show details in timeline for power level events
2020-07-13 23:36:18 -04:00
miruka
bd50cd46fa
Fix old power events sent when setting user level
2020-07-13 21:14:14 -04:00
miruka
0a277f23b1
Room admins can always demote themselves
2020-07-13 19:22:06 -04:00
miruka
7277b5d198
PowerLevelControl: add error and warning texts
2020-07-13 19:21:50 -04:00
miruka
757679a6e0
Make power level control permission-aware
2020-07-13 18:57:42 -04:00
miruka
f408d511a6
Fix Room.can_xyz attributes
...
The attributes by mistake used nio.AsyncClient.user instead of the
proper user_id. If the user logged in with a partial username instead of
typing their full ID, the can_ attributes (e.g. can_kick) would always
be False.
2020-07-13 18:54:30 -04:00
miruka
0459657575
Room default power level awareness
2020-07-13 18:54:30 -04:00
miruka
9d397b62c5
Update room member models on power levels event
2020-07-13 18:54:30 -04:00
miruka
6ff3cc5f39
Add buttons to Save/cancel power level changes
2020-07-13 18:54:28 -04:00
miruka
1adfa9f4a2
PowerLevelControl: fix default/reset system
2020-07-12 18:48:07 -04:00
miruka
966070b4d6
MemberDeviceSection: elide txt instead of wrapping
...
Wrapping the text just makes the section overflow when
the member pane gets too narrow.
2020-07-12 17:22:28 -04:00
miruka
d648156c38
Use a HLabeledItem for MemberProfile power level
2020-07-12 17:00:04 -04:00
miruka
cc831d0640
Move cursorShape property out of HListView
...
The Timeline EventList is the only HListView that uses it. For other
list views, it interferes with items like text fields which need to set
cursor shape by themselves.
2020-07-12 16:59:33 -04:00
miruka
fe831e7865
Add power level display to member profile
2020-07-12 16:14:24 -04:00
miruka
e3b6f3eb54
HButton: add "uncheckable" property
2020-07-12 15:48:28 -04:00
miruka
370418bcf5
AutoDirectionLayout: consider columnSpacing
...
For summedImplicitWidth calculation.
2020-07-12 13:10:19 -04:00
miruka
3c7b78d4ca
Reorder QML files to follow coding conventions
...
https://doc.qt.io/qt-5/qml-codingconventions.html#qml-object-declarations
2020-07-12 01:27:44 -04:00
miruka
229fbee298
Remove HRichLabel component
...
Sparsly used and inflexible, just use HLabel
2020-07-12 00:13:52 -04:00
miruka
02982f9dc3
Remove unused HAccordionView.qml
2020-07-12 00:13:52 -04:00
miruka
ed030f7dd9
Refactor ButtonLayout module components
...
- Rename ButtonLayout module to just Buttons
- Rename ButtonLayout into AutoDirectionLayout and move it to Base,
it's useful not just for buttons
- Rename OtherButton into GroupButton, which is now the base of all
other Buttons buttons
- Add generic (Positive|Middle|Negative)Button components, which are now
the base for (Apply|Cancel)Button
2020-07-12 00:13:52 -04:00
miruka
67f1572a18
Fix null account warnings on AddChat pages
2020-07-12 00:13:52 -04:00
miruka
1ad3de3917
Make ButtonLayout faster and more precise
2020-07-11 22:06:37 -04:00
miruka
7227ac04a3
Client remove_member(): room item may not exist
2020-07-11 18:49:23 -04:00
miruka
58e7321941
Fix HButton height for icon-only buttons
...
The button only considered its label previously to calculate its
implicit height.
2020-07-11 18:44:57 -04:00
miruka
b8264d123c
Don't use auto-away for servers without presence
2020-07-11 17:39:40 -04:00
miruka
b4f706d2e8
Refresh Room.unverified_devices when members leave
2020-07-11 17:23:36 -04:00
miruka
2644e6d8b0
Fix account update method for unasaved accounts
...
If the account passed to `saved_accounts.update()` doesn't exist in the
config file, return instead of failing with a KeyError.
An account can be absent from the file if "Remember my account" was
unchecked on login, or if the file hasn't been updated yet on disk after
login (race condition).
2020-07-11 17:11:04 -04:00
miruka
3daa60510a
DeviceVerification: slightly improve bottom text
2020-07-11 16:20:19 -04:00
miruka
2b52040632
Improve KeyVerificationPopup for current device
...
Make the text more useful and more adapted to the possible situations.
2020-07-11 16:12:10 -04:00
miruka
cf7786e6c6
DeviceVerification: focus info area by default
2020-07-11 16:10:55 -04:00
miruka
c9843bb2ff
HTextArea: prevent leaking left/right if readOnly
2020-07-11 16:10:21 -04:00
miruka
224e82f38c
KeyVerificationPopup: make details copiable
2020-07-11 15:51:31 -04:00
miruka
f05f2357c7
Fix accounts.json update with missing enabled key
2020-07-11 14:38:10 -04:00
miruka
3c620f6fd1
Add auto-away feature for Linux X11
2020-07-11 14:38:08 -04:00
miruka
10f47f71ac
Fix Chat userInfo errors
2020-07-11 00:43:31 -04:00
miruka
63b80168a6
Fix matrix_client mypy error
2020-07-10 16:54:29 -04:00
miruka
1611b8ea16
Reduce profile status message brightness
2020-07-10 16:51:13 -04:00
miruka
80bbee1434
Center-align profile status msg if only one line
2020-07-10 16:48:29 -04:00
miruka
159f4e3d15
Set a maximum width on member profile avatar
2020-07-10 16:45:31 -04:00
miruka
c53aa5ffa9
Add presence details to member profile
2020-07-10 16:44:08 -04:00
miruka
fec1026346
Add direct keybinds for presence states
2020-07-10 15:15:53 -04:00
miruka
3848ce60ca
Add keybind to open presence (account) menu
2020-07-10 14:59:55 -04:00
miruka
b6b02ee6a7
Fix up/down key handling for account context menu
...
- Press down while focusing status field or apply icon:
focus the online menu item
- Press up while focusing online menu item: focus status field
2020-07-10 14:15:47 -04:00
miruka
8557c79e12
Improve z-ordering of account avatar elements
...
Show presence orb in front of unread messages, which are shown in front
of the loading spinner overlays
2020-07-10 14:08:16 -04:00
miruka
a7702a5260
Add borderWidth presence theme property
2020-07-10 13:38:18 -04:00
miruka
7f476f8f61
Show online presence orb for unsupported presence
...
On server where presence is disabled, we can still know whether we're
online or offline for our own account.
2020-07-10 13:35:34 -04:00
miruka
1c3099d440
Improve positive/middle/negativeBackground colors
...
Make them a bit lighter, and use these background colors
for presence orbs and room header device verified status instead
of text colors
2020-07-10 13:27:35 -04:00
miruka
70351fb16f
Disable AddChat pages content while offline
2020-07-10 13:15:01 -04:00
miruka
9caaf41eae
Disable some account settings while offline
2020-07-10 13:15:01 -04:00
miruka
e34bfd48a7
Disable leave/forget keybinds while offline
2020-07-10 13:15:01 -04:00
miruka
12b6b74881
Disable room context menu entries while offline
...
Except "Copy room ID"
2020-07-10 13:15:01 -04:00
miruka
7580686598
Add MatriwClient.pause_while_offline()
2020-07-10 13:15:01 -04:00
miruka
5b9e84a9f7
Delay redacting events until we're online
2020-07-10 13:15:01 -04:00
miruka
e5b67c722e
Disable inviting members while offline
2020-07-10 13:15:01 -04:00
miruka
291168ccdb
Disable member kick/ban while offline
2020-07-10 13:15:01 -04:00
miruka
f018b9567b
Fix offline → online not sending pending message
2020-07-10 13:15:01 -04:00
miruka
79fdc710c3
Fix & improve send_file handling of offline account
...
- Show a transfer stuck at 0kb uploaded in the GUI instead of waiting to
be online to show anything
- Fix getting online not making the upload start
2020-07-10 13:15:01 -04:00
miruka
e5a196dcf8
Clear default member list highlight on focus loss
2020-07-10 13:15:01 -04:00
miruka
27b914b0bf
Tell user when not loading history due to offline
2020-07-10 13:14:59 -04:00
miruka
8d93433a8e
Fix case for ZeroDate and PresenceOrder
...
Only top-level types should have CaseLikeThis, general top-level
variables should be LIKE_THAT.
2020-07-10 13:14:18 -04:00
miruka
f03ac77595
Improve Presence docstring
2020-07-10 13:14:18 -04:00
miruka
7af13441a0
Fix AccountDelegate properties in wrong place
2020-07-10 13:14:18 -04:00
miruka
435bbdaf22
Fix highlight when ctrl-tabbing to AddNewChat page
2020-07-10 13:14:18 -04:00
miruka
0ea23dcb6f
Fix room list highlight when adding new account
...
- Unset highlight when going to the add new account page
- After login, highlight the account related to the profile page that
gets switched to
2020-07-10 13:14:18 -04:00
miruka
199940ab19
Fix room list highlight when going to account page
...
Correctly set it when going to an account settings or add chat page by
using the account context menu, the add chat button or keybinds.
2020-07-10 13:14:18 -04:00
vslg
5abdc1f779
Fix changes requested ( #101 )
...
- Fix code formatting issues.
- Document `Presence`.
- Improve `Presence.__lt__()` performance by
defining a dict outside the method.
- Make presence ball radius relative to uiScale
and configurable from theme.
2020-07-10 13:14:18 -04:00
vslg
43df8fd60b
Bug fix and minor improvements
...
Improvements:
- Add instant feedback upon setting a different
presence for account (local echo)
- Sort room members by power level and then
presence
- Periodically update members' `last_acitve_at`
field on the room pane
- Move status message field up on account context
menu, and put invisible before offline again
Bug fix:
- Do not try to override presence set from
another client, accept it
2020-07-10 13:14:18 -04:00
vslg
a3c9ac20c6
Make offline presence to stop sync
...
Setting the presence of an account to offline
will make the client to end sync task and will
prevent messages from being sent.
Setting it to online again or any other presence
will start sync task again.
Left:
- Local echo to presence change
- UI Control to affect all members presence
- Block more requests to be sent (e.g. member
actions)
2020-07-10 13:14:18 -04:00
vslg
3fa35b88c9
Add offline icon and fix theme colors
2020-07-10 13:14:18 -04:00
vslg
edc8e04ce7
Bug fix and minor improvements
...
Bug fixes:
- Do not send typing notice and set room read
markers when the account is invisible
- Fix typing on set_presence
- Allow users to unset status message by setting
it to blank
- Escape html tags of status message on
SubtitleLabel of MemberDelegate
Improvements:
- Display user ID and status message on a tooltip
by hovering account or room member name
2020-07-10 13:14:18 -04:00
vslg
a1f38fe8d8
Add support for status message, use new icons
2020-07-10 13:14:18 -04:00
vslg
91ed600997
Check server presence support and comment code
2020-07-10 13:14:18 -04:00
vslg
d5e0a3340d
Use presence events to update Account presence
2020-07-10 13:14:18 -04:00
vslg
a1e5a1981d
Fix presence not being updated after loaded once
2020-07-10 13:14:18 -04:00
vslg
0eda6eb278
Add account presences to account context menu
2020-07-10 13:14:18 -04:00
vslg
6e202c3e27
Fix outdated presence for lazy loaded members
2020-07-10 13:14:18 -04:00
vslg
59198da3b0
Add presence theme options
2020-07-10 13:14:18 -04:00
vslg
8644ddaad4
Add offline presence text
2020-07-10 13:14:18 -04:00
vslg
215557e353
Add presence circle on members avatar and account
2020-07-10 13:14:18 -04:00
miruka
512c08fe0a
Members: show last active time and status message
...
Left:
- Something like "Active" should be shown instead of a relative time
when the member is considered currently active by the matrix server,
but an "Active" text takes too much space
- Show a colored circle in the bottom right corner of avatars to
indicate if they're online, away, or offline
- Reduce opacity of offline members, but is there a way to know if
the server has presence disabled? For servers like matrix.org,
Riot shows the entire list of members with half opacity at all time,
we want to avoid that
- Setting our status text with a text field in AccountDelegate
context menu, similar to the DeviceDelegate's context menu
- Setting our online/away/invisible/offline status from
AccountDelegate context menu
- Replace the useless "Mirage x.y.z" button in the top left of the UI
with a control to affect all accounts's status
2020-07-10 13:14:18 -04:00
miruka
50e17e950d
Store member presence information
2020-07-10 13:14:18 -04:00
miruka
e91a1f93e0
Fix errors related to button.loading
2020-07-10 13:14:18 -04:00
miruka
2cf7b91829
Don't try to highlight first item on menu open()
...
It's imprevisible where the menu is gonna open and this which item is
gonna be under the mouse cursor. Also to match the behavior of other
programs.
2020-07-10 13:14:18 -04:00
miruka
e2bc0cbd84
Improve context menu cursor workaround
...
- Close menu instead of clicking item, to match behavior of other
programs
- Now work on all edges of the menu, not just top
2020-07-10 13:14:18 -04:00
miruka
d4a0434bd9
Disable "Select all" when no text in field/area
2020-07-10 13:14:18 -04:00
miruka
9a943120a8
Show how many devices will be deleted in popup
2020-07-10 13:14:18 -04:00
miruka
099c20c138
Add keyboard navigation for account device list
...
Enter/Return/Menu: open device menu
Space: toggle check device
Escape: uncheck all
Alt+R/F5: refresh device list
Alt+S/Delete: sign out checked or all sessions
2020-07-10 13:14:18 -04:00
miruka
612ded755a
Add context menu for text fields and areas
2020-07-10 13:14:18 -04:00
miruka
657b700fcd
Context menu initial cursor position workaround
...
Workaround for this: when opening a context menu at cursor position,
cursor will be in the menu's border instead of first menu item,
forcing the user to move the mouse for the click to do anything.
2020-07-10 13:14:18 -04:00
miruka
9612470c9c
Highlight first item when opening context menu
2020-07-10 13:14:18 -04:00
miruka
3e92b882c9
Open event context menu on menu keypress
2020-07-10 13:14:18 -04:00
miruka
affd0d0bd3
Improve member list highlighted item behavior
...
- When focusing the "Filter members" field, highlight the first item if
none already is
- When pressing esc in the field, clear any highlight
2020-07-10 13:14:17 -04:00
miruka
08f15b6a01
Support menu key for room/member lists currentItem
...
Allow opening context menu for AccountDelegate, RoomDelegate and
MemberDelegate by selecting an item with up/down (when focusing filter
field) and pressing the menu key.
2020-07-10 13:14:17 -04:00
miruka
10eeb662af
HTile: handle menu key press, open context menu
2020-07-10 13:14:17 -04:00
miruka
c35894e4c8
HTile: trigger leftClicked() on enter/return/space
...
This makes it possible to activate any tab-focused HTile with the
keyboard.
2020-07-10 13:14:17 -04:00
miruka
cfde6cb633
Room filter field: forward keys to room list
...
The room list can handle up/down presses out of the box, no need to
define handlers for these on the filter field.
2020-07-10 13:14:17 -04:00
miruka
92cbc4b006
Add keyboard controls for members list & profile
2020-07-10 13:14:17 -04:00
miruka
dc2a7b8ee1
HMenuItem: always use onTriggered, not onClicked
2020-07-10 13:14:17 -04:00
miruka
b6500add68
Remove useless imports in HAvatar and HNoticePage
2020-07-10 13:14:17 -04:00
miruka
7c213a5317
Verify/blacklist devices for all our accounts
2020-07-10 13:14:17 -04:00
miruka
b0e2533bb9
Auto-verify/blacklist accounts within same client
2020-07-10 13:14:17 -04:00
miruka
9edfba8f18
Fix hovering media not changing mouse cursor shape
2020-07-10 13:14:17 -04:00
miruka
8623edc420
Fix typing notice not sent when composer cleared
...
Make sure to send a "we're not typing anymore" notice to the server when
the composer is cleared, e.g. when sending a message.
2020-07-10 13:14:17 -04:00
miruka
ea0a7517e4
Reload member device list after trust/blacklisting
2020-07-10 13:14:17 -04:00
miruka
963b022f3d
Reload member device list when they change
2020-07-10 13:14:17 -04:00
miruka
8771ae2aae
Ignore EventHandlers members not starting by "on"
2020-07-10 13:14:17 -04:00
miruka
789e9c7da8
Close verif. page when verifying/blacklisting
2020-07-10 13:14:17 -04:00
miruka
d566727698
Make close profile/verification icon thinner
2020-07-10 13:14:17 -04:00
miruka
dbfe04458c
Set HStackView transitions that make sense
2020-07-10 13:14:17 -04:00
miruka
4db69424b8
Put MemberDeviceSection in its own component
2020-07-10 13:14:17 -04:00
miruka
9b43bef935
Add profile/verification UI for room members
2020-07-10 13:14:17 -04:00
miruka
4ccb774411
nio_callbacks: HTML-escape unsafe event values
2020-07-10 13:14:17 -04:00
miruka
0dbc9ce659
Fix mention CSS for display names containing < >
2020-07-10 13:14:17 -04:00
miruka
2674702a59
Fix field/area left/right press with selected text
...
Fix bug in HTextField & HTextArea: when all text was selected, pressing
left or right arrow keys to go to the beginning or end and deselect
didn't respond.
2020-07-10 13:14:17 -04:00
miruka
24e657d193
Protect field/area text binding if no default text
2020-07-10 13:14:17 -04:00
miruka
4752abf6e5
Add a batch set_fields method to Model
2020-07-10 13:14:17 -04:00
miruka
5476e00b9b
Fix missing parentheses in marker update condition
2020-07-10 13:14:17 -04:00
miruka
3933615f67
Fix menu/popup destruction disabling keybinds
2020-07-10 13:14:17 -04:00
miruka
83047cf800
Add Utils.chunk() to split arrays in n-sized chunk
2020-07-10 13:14:17 -04:00
miruka
196d57701a
Cancel device delete when popup closed
2020-07-10 13:14:17 -04:00
miruka
d701e5ea77
Improve "Sign out checked" text
2020-07-10 13:14:17 -04:00
miruka
b47d4d981f
Implement session sign out (password auth only)
2020-07-10 13:14:17 -04:00
miruka
8a3d9affaa
Fix signing out not cleaning up model data
2020-07-10 13:14:17 -04:00
miruka
d0c4022fa4
Fix plaintext reply source body formatting
2020-07-10 13:14:17 -04:00
vslg
3d4bfa7413
Do not use .keys()
2020-07-10 13:14:17 -04:00
vslg
d2229554a9
Do not replace existing session ( #63 )
2020-07-10 13:14:17 -04:00
miruka
0a2d274824
Add verified devices indicator to room header
2020-07-10 13:14:17 -04:00
miruka
90a7a3a6cf
Add kineticScrollingMaxSpeed setting
2020-07-10 13:14:17 -04:00
miruka
9dc0688557
Render inline images/custom emotes
...
<img> tags that either have a width and height (needed for QML to render
correctly) or the data-mx-emote attribute (if they have no width/height,
we assume 32x32) will be rendered inline.
QML's support for img tags with remote src URLs seems buggy on Qt 5.15
especially, not working sometimes. We need to download and cache these
images (like done for matrix media events), and use the local path in
the img's src.
2020-07-10 13:14:17 -04:00
miruka
1a32c26b4d
Don't animate "Loading messages..." when invisible
2020-07-03 15:00:07 -04:00
miruka
8a31f8a9d9
Fix responding to our own event sending wrong ID
2020-06-27 10:08:27 -04:00
miruka
b9f5ec4b72
Fix parsing user/room ID and alias with dashes
...
Properly highlight IDs and aliases where the server part contains a
dash, e.g. "@test:example-abc.org".
2020-06-27 06:20:09 -04:00
miruka
fedcc17c44
Correctly clear room local highlights
2020-06-26 16:26:15 -04:00
miruka
c9cc38e971
Fix QLocale error when compiling on old gcc
2020-06-26 09:56:46 -04:00
miruka
33d09c320b
Fix unhandled enter on sign in and add chat pages
2020-06-26 09:28:58 -04:00
miruka
2d410bb7cc
Themes: rename section scrollbar → scrollBar
2020-06-26 08:21:24 -04:00
miruka
1a93190ee2
Improve account settings avatar font size
2020-06-26 07:24:37 -04:00
miruka
475b07793d
Rename Account/Room → AccountDelegate/RoomDelegate
2020-06-26 07:20:24 -04:00
miruka
0c9474598c
Bump version to v0.5.2
2020-06-26 07:06:56 -04:00
miruka
604daed5fe
Increase button focusline height to avoid problems
2020-06-26 06:56:29 -04:00
miruka
980e258df8
Always parent popups to window
2020-06-26 06:41:15 -04:00
miruka
74784803f5
Refresh device list: use HListView.uncheckAll()
2020-06-26 06:11:36 -04:00
miruka
d058926902
Uncheck messages before clearing event list
2020-06-26 06:11:03 -04:00
miruka
7f66ebb786
Re-add local highlights similar to 0.5.0
2020-06-26 05:59:16 -04:00
miruka
aa8dbce3a7
Re-add local unread "counter" similar to 0.5.0
2020-06-26 05:59:11 -04:00
miruka
213867750d
Add unimplemented auth popup for deleting devices
2020-06-26 04:30:47 -04:00
miruka
088462c4f9
Better icons and details text for password popups
2020-06-26 04:06:01 -04:00
miruka
d40852a11c
HListView: add checkedIndice property
2020-06-26 03:47:55 -04:00
miruka
a22c8ba3ad
Account: remove line break after "User ID:"
2020-06-26 03:19:58 -04:00
miruka
78c04e6404
Fix flickable pages keyboard scrolling
2020-06-26 03:16:36 -04:00
miruka
2e610cf167
Correctly size the device list page
2020-06-26 02:51:31 -04:00
miruka
eca801df4c
Fix laggy device list loading
2020-06-26 02:36:40 -04:00
miruka
ce1373653a
Improve device list footer
...
- Always visible
- Add a refresh button
- Will no longer make the list slowly grow
2020-06-26 02:32:25 -04:00
miruka
cddf4ac2fe
Reload section item counts on verify/blacklist
2020-06-26 02:20:12 -04:00
miruka
edc73c6952
Implement blacklisting from verification key popup
2020-06-26 02:16:00 -04:00
miruka
bcbc356a98
Implement manual key verification popup
2020-06-26 02:09:59 -04:00
miruka
d35173adc3
Correctly handle & warn about key-less devices
2020-06-25 16:10:44 -04:00
miruka
a15a101ce0
Fix error popup focusOnItemTab
2020-06-25 14:54:03 -04:00
miruka
308771f0bf
Limit max device name length to 255
2020-06-25 12:37:05 -04:00
miruka
ee5675bc9b
Add apply button to device renaming field
2020-06-25 12:36:36 -04:00
miruka
51327d810b
Implement device renaming
2020-06-25 12:11:11 -04:00
miruka
3001131ffa
Fix DeviceSection number vertical alignment
2020-06-25 11:26:21 -04:00
miruka
dcc634be04
Page & popups: standardized keyboard accept/cancel
2020-06-25 10:27:24 -04:00
miruka
476888ca84
Fix guest access event text, always said "allowed"
2020-06-25 10:11:42 -04:00
miruka
78affeddd9
Room settings avatar color: respond to name field
2020-06-25 10:06:03 -04:00
miruka
d5ea248ba1
Account page: spinners while profile is loading
2020-06-25 10:00:34 -04:00
miruka
470b0f0de2
Implement HLabeledItem loading mode
2020-06-25 09:46:26 -04:00
miruka
da4a5ab5cd
Rework HBox-based pages and account settings
...
- Refactor everything about HBox, and adapt all the pages and popups
that used it
- Replace HTabContainer by HTabbedBox
- Make boxes swippable
- Make esc presses in boxes click the cancel button
- Make all boxes and popups scrollable when needed
- Replace generic apply button icons in popups
- Fix tab focus for error and invite popups
- Rework (still WIP) the account settings page:
- Use the standard tabbed design of other pages
- Ditch the horizontal profile layout, hacky and impossible to extend
- Add real-time coloring for the display name field
- Implement a device list in account settings (Sessions, still WIP)
2020-06-25 08:49:27 -04:00
miruka
72bd78c77e
Don't keyboard-focus invisible HMenuItems
2020-06-24 16:47:51 -04:00
miruka
b9f8740954
Move room date formatting logic to utils function
2020-06-24 08:14:54 -04:00
miruka
2d8dbb172d
Use fancy focus lines for buttons
2020-06-23 09:18:42 -04:00
miruka
07013d0ed4
Unify text field/area focus line into a component
2020-06-23 08:44:58 -04:00
miruka
8b0f408f34
Fix text field/area leaking arrow presses
...
Prevent leaking arrow presses to parent elements when the carret
is at the beginning or end of the text.
2020-06-23 06:17:52 -04:00
miruka
ad36fc72f4
Fix Connections deprecation warning on Qt 5.15
...
Adopt the correct behavior to get rid of
"QML Connections: Implicitly defined onFoo properties in Connections
are deprecated. Use this syntax instead:
function onFoo(<arguments>) { ... }"
2020-06-22 14:11:56 -04:00
miruka
ae37e13c6e
Use new scrollbars for scrollviews (ie text areas)
2020-06-22 13:57:49 -04:00
miruka
783a711799
Customized themable scrollbars
2020-06-22 13:48:55 -04:00
miruka
f2f4643189
Remove event list scrollbar padding
2020-06-22 13:10:48 -04:00
miruka
e756bd2909
Set a minimum size for scrollbars
2020-06-19 12:03:04 -04:00
miruka
926f77fa91
Add MatrixClient.devices_info() method
2020-06-12 23:09:17 -04:00
miruka
bbdc16c5c9
Merge clipboard.h and clipboard.cpp
2020-06-12 14:10:11 -04:00
miruka
715a6ca530
Merge utils.h and utils.cpp
2020-06-12 14:09:47 -04:00
miruka
451abfdf25
Support MIRAGE_CACHE_DIR env variable
2020-06-11 21:50:26 -04:00
miruka
d4350f6e86
Borders for HTextArea
2020-06-06 21:54:13 -04:00
miruka
8d3ac9cd48
HTextField: support radius, have a fancier border
2020-06-06 21:45:01 -04:00
miruka
e685b0a8b7
Prefer using own account to fetch own profile
2020-06-05 08:11:40 -04:00
miruka
0f679956ec
Fix topic text area inside scrollview
2020-06-05 06:33:55 -04:00
miruka
f632b4e332
Bump version to v0.5.1
2020-06-05 06:26:44 -04:00
miruka
1f441a488e
Fix HFlickableColumnPage bottom padding
2020-06-05 05:53:49 -04:00
miruka
e5d64f76b7
Limit max height of room settings topic area
2020-06-05 05:48:25 -04:00
miruka
3314489a26
Make room settings pane scrollable
...
The new Base/ButtonLayout components will be used in the near future to
refactor other HBox-based components
2020-06-05 05:42:12 -04:00
miruka
48faac9a32
HFlickable: interactive even if nothing to scroll
2020-06-05 05:40:43 -04:00
miruka
cfee1b1e4b
Fix cursor shape over text fields/areas
...
Fix only applies if kinetic scrolling is enabled, need WheelHandler (Qt
5.14+) otherwise
2020-06-05 01:54:42 -04:00
miruka
b81dea9bc2
Fix KeyError when forgetting a room
2020-06-05 01:39:17 -04:00
miruka
43468c25e3
Update account unread count when forgetting room
2020-06-05 01:16:27 -04:00
miruka
43ed7b2eb9
Update highlighted room when adding new chat
2020-06-05 01:07:39 -04:00
miruka
5402a332d2
Fix updating read receipt
...
- Find the last event that wasn't sent by us to update the marker to,
instead of picking whichever is the most recent
- Use the proper event ID instead of ID that could be a local echo
- Wait for the current marker update request to complete before trying
to send a new one
2020-06-04 23:12:03 -04:00
miruka
106bb3546f
Topic text areas: focus next item on tab
2020-06-03 04:58:09 -04:00
miruka
7f72373afe
Implement editing & saving room settings
2020-06-03 04:52:33 -04:00
miruka
00ee534150
HLabeledItem: base label/icons opacity on item
's
2020-06-03 04:50:19 -04:00
miruka
9f51b3c1ca
Fix field and text area defaultText binding
...
Break the binding when the field is focused, recreate it when focus is
lost, properly recreate it when using reset() function.
2020-06-03 04:50:10 -04:00
miruka
a6529b040c
Fix handling topics containing \n, \t or <text>
2020-06-02 22:03:22 -04:00
miruka
6772f14c24
Use a text area instead of field for room topic
2020-06-02 21:52:16 -04:00
miruka
76f0c5626f
Separate window urgency hint setting for mentions
2020-06-02 21:42:16 -04:00
miruka
ccd2308427
Fix new added account's order
2020-06-02 21:11:04 -04:00
miruka
241c16932f
Immediatly update cached profile after changing it
2020-06-02 21:09:21 -04:00
miruka
5bf1a90242
Separate MatrixClient function to get our profile
...
Side-effect: don't endlessly retry anymore when getting the profile
fails for some reason
2020-06-02 20:40:44 -04:00
miruka
8ec715eab7
Improve "user not found" error messages
2020-06-02 20:30:04 -04:00
miruka
bb7178a5c4
Handle bad gateway error when starting direct chat
2020-06-02 20:24:53 -04:00
miruka
eb2c98f67f
Handle MatrixNotFound errors, not UserNotFound
...
UserNotFound doesn't exist anymore
2020-06-02 20:19:09 -04:00
miruka
e676473f82
HLabeledTextField → extensible HLabeledItem
2020-06-02 20:14:55 -04:00
miruka
fdaf7089ab
Hide popup for Python 3.7 pointless SSLError
2020-06-02 19:07:12 -04:00
miruka
283d2235dc
Don't wait for server to zero unread counters
2020-06-01 18:59:49 -04:00
miruka
835d1c486f
Add markRoomReadMsecDelay setting
2020-06-01 18:57:17 -04:00
miruka
f686b96511
Cross-client unread counters & send read receipts
2020-06-01 09:25:09 -04:00
miruka
d2300bf663
Update account total notif/highlight calculation
2020-05-31 19:41:05 -04:00
miruka
3791a08eea
Terminology: room mention count → highlight count
2020-05-31 19:13:19 -04:00
miruka
dce3328037
Use new nio server-backed room unread counts
2020-05-31 19:06:25 -04:00
miruka
7b5aa8ffe1
Store room member read markers in model
2020-05-31 00:38:48 -04:00
miruka
160ce2643e
Add type hints for all NioCallbacks methods
2020-05-31 00:11:56 -04:00
miruka
ca7a47bc19
Register nio callbacks for any class in nio.events
2020-05-30 23:39:07 -04:00
miruka
b399de6776
Remove account collapse bug workaround
...
Unable to reproduce the bug where collapsing an account with lots of
rooms corrupts the ListView, did updating to Qt 5.14.2 do something?
With the workaround removed, the 0.2s delay when removing batch of
ListView items (e.g. when filtering) is gone.
2020-05-30 23:08:21 -04:00
miruka
de894ab4bb
Protect proxy/filter models with write_lock
2020-05-30 23:08:21 -04:00
miruka
9862e39108
HSelectableLabel: selectByMouse true by default
2020-05-30 23:08:21 -04:00
miruka
8b9681dc78
Rename HTextArea.append() → .insertAtCursor()
2020-05-30 23:08:21 -04:00
miruka
877290fc00
Handle 502 errors when inviting bad user to room
2020-05-30 23:08:21 -04:00
miruka
01d3b6b489
Remove usage of HScrollableTextArea
2020-05-30 23:08:21 -04:00
miruka
a91a0c18f7
Refactor Composer
...
- Have a simple HTextArea component instead of HScrollTextArea
- Split composer parts between multiple files
2020-05-30 23:08:21 -04:00
miruka
a87cbd3bac
HTextField: fix implicitHeight Binding
2020-05-30 23:08:21 -04:00
miruka
60fa027c2e
Lock models when trying to decrypt events
...
Trying to deep-copy can result in pickling errors (#50 ),
write-lock the models instead to avoid "dictionary changed size during
iteration" issues.
2020-05-28 14:16:43 -04:00
miruka
c0118c4e28
Rename Model._write_lock → Model.write_lock
2020-05-28 14:13:14 -04:00
miruka
0f6f3bce98
Improve ImportKeys popup closing/cancelling
...
- Once the importing process starts, only allow the popup to be closed
by pressing pressing esc or clicking the Cancel button, to prevent
accidental clicks
- When closing the popup without clicking the Cancel button, cancel the
import process
2020-05-28 14:11:49 -04:00
miruka
e3f13dc16f
Fix hiding gaierror
2020-05-24 16:55:50 -04:00
miruka
855672481f
Improve some python documentation and add an intro
2020-05-22 17:27:57 -04:00
miruka
c8f3a4937c
Fix potential exceptions on AllRooms model __init__
...
Calling super().__init__ may result in source model items being added,
which needs the self.account and self._collapsed attributes to
already exist.
2020-05-22 16:47:15 -04:00
miruka
562e1431b9
Fix adding account when none were previously saved
2020-05-22 08:48:58 -04:00
miruka
b3b12014ee
Workaround collapsing large account ListView bug
2020-05-22 07:31:00 -04:00
miruka
3d40f762ce
Don't strip <mx-reply> tags
2020-05-22 02:11:21 -04:00
miruka
1fea162fac
Give up finding last event to respond to after 1k
2020-05-22 00:18:44 -04:00
miruka
6c7335e5db
Add keybind to open links in messages
...
Ctrl+O by default.
Opens externally all links in selecteds, focused or the last
message that has links.
Can't open files (media events) yet.
2020-05-22 00:10:45 -04:00
miruka
bbd845c040
Use kwargs when calling nio.AsyncClient.upload()
2020-05-21 20:52:42 -04:00
miruka
921f75827d
Use pdb if remote_pdb isn't installed
2020-05-21 20:50:43 -04:00
miruka
fb975fad71
Remove unused Backend.await_model_item()
2020-05-21 20:46:08 -04:00
miruka
8c9b5267e9
Update and add missing new docstrings
2020-05-21 20:45:15 -04:00
miruka
6f688ae1aa
Implement circle progress bars in QML
2020-05-21 20:06:47 -04:00
miruka
35e6c1c7eb
Make sure to register room on ignored events
2020-05-21 14:37:48 -04:00
miruka
24ede5653d
Hide popups for annoying socket.gaierror
...
Workaround until I can figure out how to catch it
2020-05-21 14:20:13 -04:00
miruka
58dd63a850
Traceback if getting profile/server config fails
2020-05-21 14:14:27 -04:00
miruka
5ae71cb7ce
Work around ModelStore binding loop
2020-05-21 01:26:12 -04:00
miruka
b30ce33494
Fix default media_mime for media events
2020-05-21 01:05:31 -04:00
miruka
96e61f15ce
Set a more useful minimum size for main pane
...
144px min for a pane that's still useful.
Also set `collapseSidePanesUnderWindowWidth` config option to `450`
instead of `400` by default now.
2020-05-21 01:04:24 -04:00
miruka
07701ae880
Remove uvloop support, causes issues
2020-05-20 23:56:19 -04:00
miruka
e128471628
Merge branch 'dev' of https://github.com/mirukana/mirage into dev
2020-05-20 23:40:41 -04:00
vslg
6f68f35810
Fix goal is disabling kinetic scrolling
2020-05-20 23:03:36 -03:00
vslg
1bad1e1106
Multiply scrollFactor to wheel.pixelDelta
2020-05-20 21:09:34 -03:00
vslg
3094e47a99
Fix bugs and improve trackpad scroll precision
...
Improve trackpad precision by making the amount
of scroll, flickVelocity and flickDeceleration
proportional
2020-05-20 21:09:34 -03:00
vslg
107f928007
Fix bug when setting useTrackpadFix option
2020-05-20 21:09:34 -03:00
vslg
f72544e3d0
Improve trackpad fix
...
- Add it to remaining components
- Do not use Timer, as flickDeceleration from
Flickable is more performant
- Add a setting option for it: useTrackpadFix
2020-05-20 21:09:34 -03:00
vslg
b179480327
Remove allowDragging, as it is not needed anymore
2020-05-20 21:09:34 -03:00
vslg
d840080fdb
Add custom scroll handler to MouseArea
2020-05-20 21:09:34 -03:00
miruka
4a91b3d09d
Hide unknown events by default (reaction spam)
2020-05-20 11:49:25 -04:00
miruka
a48b1cedd0
Don't limit width of messages with code blocks
2020-05-20 11:08:02 -04:00
miruka
42b62377ab
Fix past member events affecting actual room state
2020-05-20 09:05:36 -04:00
miruka
7719df0135
Fix message mention link regex
...
Also stop trying to autolink strings like "$messageId:example.org" in message
text, matrix.tpo message links need a room ID to make sense.
2020-05-20 07:54:40 -04:00
miruka
8823077a1c
Composer: on escape, cancel any response
2020-05-20 07:19:02 -04:00
miruka
d6846b08d9
Fix debugFocusedMessage keybind
2020-05-20 07:12:00 -04:00
miruka
87fa18fbcd
Fix missing event text in plaintext reply fallback
2020-05-20 07:09:24 -04:00
miruka
26074fabd5
Handle reply keybind when multiple events selected
2020-05-20 06:58:38 -04:00
miruka
d1d7bffc8f
Add replyToFocusedOrLastMessage keybind (ctrl+Q)
2020-05-20 06:51:26 -04:00
miruka
66f9a17111
No need for origin_*body Event keys
...
Also fixes lack of original message text when
replying to non-message events.
2020-05-20 06:38:25 -04:00
miruka
b09b3b990b
Clear reply-to when sending message
2020-05-20 06:20:24 -04:00
miruka
fb35a6ec14
Implement replying to event in backend
2020-05-20 06:19:13 -04:00
miruka
aa8d3cf8d3
Add reply GUI controls
2020-05-20 05:19:06 -04:00
miruka
5128f0d888
Base TypingMembersBar on new InfoBar component
2020-05-20 04:45:30 -04:00
miruka
63af4be1e2
Defer fetching user profiles for events
...
Previously, events for which the sender, target (state_key) or remover
was missing from the room members would have their profile fetched
from network when registering the event into models.
This could cause very slow past events loading times for rooms, since
the event registering function (which contained the profile retrieval
directives) is run sequentially event-by-event.
Missing profiles are now lazy-loaded when events come into the
user's view in the QML timeline.
2020-05-20 03:42:40 -04:00
miruka
bc5549195b
Improve HTMLProcessor performance (mentions)
...
- Try to autolink usernames only for outgoing messages
- Improve and add some missing docstrings
Fixes the very slow loading/python "freezing" for rooms with a huge
number of members.
2020-05-20 00:59:30 -04:00
miruka
c9d5949847
MessageIndicator: shorten thousands and millions
2020-05-19 19:48:52 -04:00
miruka
4a3320111f
Remove debug print
2020-05-17 15:38:17 -04:00
miruka
59486ca65d
Fix setCorrectCurrentItem() for account items
2020-05-17 15:32:10 -04:00
miruka
ef9b880152
Register room members only when needed
2020-05-17 15:29:23 -04:00
miruka
05a547971d
Fix clicking on Account not updating highlight
2020-05-17 14:41:25 -04:00
miruka
f23a83b0d5
NioCallbacks: add self.models/user_id aliases
2020-05-17 13:57:09 -04:00
miruka
14ffe0ba0b
Collapse-expand account → correct highlighted room
2020-05-16 18:21:59 -04:00
miruka
a1b485c039
Add ownMessagesOnLeftAboveWidth setting
...
Replaces the theme eventList.ownEventsOnRightUnderWidth property.
Can be set to -1 to always keep our own messages on the right.
2020-05-16 14:37:45 -04:00
miruka
60ad7416d9
Add maxMessageCharactersPerLine setting
...
Can be set to -1 for no maximum width.
2020-05-16 14:37:34 -04:00
miruka
315237b411
Cycle unread rooms with alt+m when no more mention
2020-05-15 20:56:23 -04:00
miruka
ddf7e724fd
Set a loop_sleep_time for sync_forever()
...
https://github.com/poljar/matrix-nio/pull/132#pullrequestreview-412701098
"If not [set] the client will sync without any sleep between syncs.
This will cause a lot of load on the homeserver and the client."
2020-05-15 20:56:23 -04:00
miruka
084133af49
Make py.pendingCoroutines accessible for debugging
2020-05-15 20:56:23 -04:00
miruka
8c8a58fb07
Remove superfluous private PythonBridge stuff
2020-05-15 20:56:23 -04:00
miruka
dfd7d509a4
Fix item losing its parent model when filtered out
2020-05-15 20:56:23 -04:00
miruka
631e2bc107
Highlight index 1 when filtering rooms
2020-05-15 20:56:23 -04:00
miruka
f20853b7ad
Restore correct highlight when no more room filter
2020-05-15 20:56:23 -04:00
miruka
e147b87d1b
Remove superfluous HTileDelegate, use HTile
2020-05-15 20:56:23 -04:00
miruka
ad7bce657c
Merge RoomList & AccountBar account delegates code
2020-05-15 20:56:23 -04:00
miruka
bbb74b7b90
Remove nio <0.11 asdict workaround
...
Mirage 0.5.0 requires nio 0.11+
2020-05-15 20:56:23 -04:00
miruka
4546a2f88c
Set room as read when focusing it by ctrl+tab
2020-05-15 20:56:23 -04:00
miruka
e006e14b05
Bump version to v0.5.0
2020-05-15 20:56:23 -04:00
miruka
2cc24d0235
Updates and minor adjustment on glass theme
2020-05-15 20:56:23 -04:00
miruka
65b3b17994
Reduce AccountBar highlight border thickness
2020-05-15 20:56:23 -04:00
miruka
5b05e56b2a
Fix AccountBar goToAccount errors
2020-05-15 20:56:23 -04:00
miruka
9b5b3a9f06
Support a order
key for accounts in config
2020-05-15 20:56:23 -04:00
miruka
fd3fe06d15
Add keybinds to go to account at specific indice
2020-05-15 20:56:23 -04:00
miruka
6f1f82f82d
Change unfocus/deselect & debug message keybinds
...
unfocus/deselect → ctrl+D, because escape conflicts with any text field
that must handle escape
debug message → ctrl+shift+D instead of ctrl+D
2020-05-15 20:56:23 -04:00
miruka
bbb00dd8a0
Let escape presses work properly inside HDrawer
...
Also add escape to clear member filter when focusing the field, and
clearMemberFilterOnEscape setting.
2020-05-15 20:56:23 -04:00
miruka
45048e625c
Fix UI parts focus keybind and buttons
2020-05-15 20:56:23 -04:00
miruka
d444c800b9
Remove unused showEveryRoom keybind
2020-05-15 20:56:23 -04:00
miruka
974478f576
Add keybinds for previous/next unread/mention room
2020-05-15 20:56:23 -04:00
miruka
200f0c33a8
Fix higlighted room not updating after ctrl+tab
2020-05-15 20:56:23 -04:00
miruka
922f12e9f9
Highlight correct account/room on startup
2020-05-15 20:56:23 -04:00
miruka
eacee59f9e
Fix Room delegate opacity for left rooms
2020-05-15 20:56:23 -04:00
miruka
82c8496216
AccountBar: reduce opacity of collapsed accounts
2020-05-15 20:56:23 -04:00
miruka
9157cbd590
Add back collapse account keybind
2020-05-15 20:56:23 -04:00
miruka
e544f38b9f
Fix account settings/create room keybinds
2020-05-15 20:56:23 -04:00
miruka
5b4d12e330
AccountBar: make spinners visible again
2020-05-15 20:56:23 -04:00