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