Commit Graph

1855 Commits

Author SHA1 Message Date
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
miruka
94bcf323b2 Drop the "s" from AccountsBar 2020-05-15 20:56:23 -04:00
miruka
eff203032c Python implementation of account collapsing 2020-05-15 20:56:23 -04:00
miruka
064dd08f02 Window.qml: fix alignment, remove unused property 2020-05-15 20:56:23 -04:00
miruka
7192a402b6 Bring back account collapsing UI stuff
Not functional yet
2020-05-15 20:56:23 -04:00
miruka
bd3c78a73a Make theme file closer to what it was in 0.4.3 2020-05-15 20:56:23 -04:00
miruka
c1dd06559c Bring back main pane bottom bar 2020-05-15 20:56:23 -04:00
miruka
fe18b725a5 Use an horizontal bar for accounts 2020-05-15 20:56:23 -04:00
miruka
8e0c046cdb MemberView: no need for onAdd transition hack now 2020-05-15 20:56:23 -04:00
miruka
45790dc57c Remove unused old model stuff 2020-05-15 20:56:23 -04:00
miruka
4d3c26abd4 Gather both Accounts and Rooms in all_rooms model 2020-05-15 20:56:23 -04:00
miruka
19243ec5a6 Fix serialize_value_for_qml handling of class type 2020-05-15 20:56:23 -04:00
miruka
e90312803b Fix event delegates extra bottom space 2020-05-15 20:56:23 -04:00
miruka
b4561ce50b Fix back/forward headers buttons in small window 2020-05-15 20:56:23 -04:00
miruka
05325d21bd Fix current account highlighting 2020-05-15 20:56:23 -04:00
miruka
7aa0e7fad6 Remove 429 workaround (fixed in nio #138) 2020-05-15 20:56:23 -04:00
miruka
c2e212c1eb Add syncing indicator to AccountsBar accounts 2020-05-15 20:56:23 -04:00
miruka
97fdc214dd No need for special model attributes in Backend 2020-05-15 20:56:23 -04:00
miruka
f4dca1c2c9 Fix SyncId type hint & remove debug prints 2020-05-15 20:56:23 -04:00
miruka
7048a0ac08 Remove now unused HFilterModel 2020-05-15 20:56:23 -04:00
miruka
37a9332aed Python filtered models for room members 2020-05-15 20:56:23 -04:00
miruka
200f25d23e Python filter for AccountsBar 2020-05-15 20:56:23 -04:00
miruka
0e49b5f972 Write-lock when refiltering 2020-05-15 20:56:23 -04:00
miruka
c502aa4245 Add model batch removal optimization for filtering 2020-05-15 20:56:23 -04:00
miruka
5432958121 Working python proxy/filter for room list 2020-05-15 20:56:23 -04:00
miruka
eee198b238 Add python proxy/filter models 2020-05-15 20:56:23 -04:00
miruka
1a69ae684e Fix focusRoomAtIndex binds 2020-05-15 20:56:23 -04:00
miruka
ac0907fad7 ModelItem can only have one parent model again 2020-05-15 20:56:23 -04:00
miruka
2a772e5f54 Ensure waiting after sync failure before retrying 2020-05-15 20:56:23 -04:00
miruka
54b5f7b8f2 Fix HFilter find functions 2020-05-15 20:56:23 -04:00
miruka
592a9fe8e7 Have id field on ModelItem base class 2020-05-15 20:56:23 -04:00
miruka
5b2c131fd1 Filtering → hide accounts with no matching rooms 2020-05-15 20:56:23 -04:00
miruka
4f9e320074 Click on account with 0 rooms → AddChat page 2020-05-15 20:56:23 -04:00
miruka
5373d19c83 Fix account bar scrolling when room list filtered 2020-05-15 20:56:23 -04:00
miruka
cc4a780865 Fix account bar scrolling
All delegates must have the same padding, or the ListView doesn't know
how to scroll to a certain index anymore
2020-05-15 20:56:23 -04:00
miruka
194a5194a8 Better account context menu, add it in AccountsBar 2020-05-15 20:56:23 -04:00
miruka
7042df003f Fix clicking on room in filtered list 2020-05-15 20:56:23 -04:00
miruka
37042f6365 Theming for account unread/mention indicator 2020-05-15 20:56:23 -04:00
miruka
9f7d30f248 Add account total unread/mentions indicator 2020-05-15 20:56:23 -04:00
miruka
9ebd8644c8 Dedicated MessageIndicator.qml (unread/mentions) 2020-05-15 20:56:23 -04:00
miruka
c352275089 Maybe fix the DelegateModel + ListView.add bug 2020-05-15 20:56:23 -04:00
miruka
bf20b7864d Fix compact mode with new pane 2020-05-15 20:56:23 -04:00
miruka
0d25c4caeb Improve HTile(Delegate) paddings 2020-05-15 20:56:23 -04:00
miruka
36a214bf1a Fix main pane minimum size 2020-05-15 20:56:23 -04:00
miruka
2bb13bf7f7 HStringFilterModel: Refilter when field changes 2020-05-15 20:56:23 -04:00
miruka
7418f0fe93 Add dedicated HStringFilterModel component 2020-05-15 20:56:23 -04:00
miruka
69a525d317 Replace SortFilterProxyModel by DelegateModel 2020-05-15 20:56:23 -04:00
miruka
19fe1c4e7b Buggy room filtering 2020-05-15 20:56:23 -04:00
miruka
fcf88209f2 Single room list approach, account bar scrolls 2020-05-15 20:56:23 -04:00
miruka
56c09e6b48 Split pane components more 2020-05-15 20:56:23 -04:00
miruka
393a56a50a Model items can now have multiple parent models 2020-05-15 20:56:23 -04:00
miruka
34f98b48d1 Add "every room" button 2020-05-15 20:56:23 -04:00
miruka
bbc462239c Improve accounts bar appearance 2020-05-15 20:56:23 -04:00
miruka
9b3127b7c3 New pane theming 2020-05-15 20:56:23 -04:00
miruka
93c7fadeed Rename RoomPane and AccountBar components 2020-05-15 20:56:23 -04:00
miruka
65103eaaba Add keybinds to switch accounts 2020-05-15 20:56:23 -04:00
miruka
72c96b3ba5 Start restructuring how the account/room pane work 2020-05-15 20:56:23 -04:00
miruka
da6a54f0bf Fix compact mode toggling for room delegates 2020-05-15 20:56:23 -04:00
miruka
7fb67259e7 load_all_room_members doc + ensure registering 2020-05-15 20:56:23 -04:00
miruka
8b02f0e462 More efficiant roomList delegate in view detection 2020-05-15 20:56:23 -04:00
miruka
ecb88864a9 Higher firstsync limit to avoid missing room name? 2020-05-15 20:56:23 -04:00
miruka
744c6f1b3f Load all room members when showing a room to user 2020-05-15 20:56:23 -04:00
miruka
99d59bb49b Use filtered model strictly when neccessary 2020-05-15 20:56:23 -04:00
miruka
01adcff77e Reduce the number of room delegate errors 2020-05-15 20:56:23 -04:00
miruka
6536f89507 Fix missing rooms and wrong avatars in initialsync 2020-05-15 20:56:23 -04:00
miruka
fd8cf4ad8d Optimize model field replacements 2020-05-15 20:56:23 -04:00
miruka
68e344ae21 Give a base class to model item pyotherside events 2020-05-15 20:56:23 -04:00
miruka
a4c33f8edb Ensure first event for each rooms is a visible one
Dependening on the user's config, request for the first sync that
profile changes, membership changes or unknown events be filtered out.
This ensures we have something to show as the room subtitle (last
message) in the UI.
2020-05-15 20:56:23 -04:00
miruka
aba2fd1b4b Improve sync & load_past_events filter usage
Limit to 1 message/room only for the first sync
2020-05-15 20:56:23 -04:00
miruka
2cbedaa892 HLoader as room delegates test 2020-05-15 20:56:23 -04:00
miruka
eacd7f1f3e Get only 1 event of each kind for rooms on start 2020-05-15 20:56:23 -04:00
miruka
3a77a0288f Use user ID for unknown typing users in room 2020-05-15 20:56:23 -04:00
miruka
9e07612249 Remove "room load until there's non-profile event" 2020-05-15 20:56:23 -04:00
miruka
1adbddc063 Enable member lazy-loading for /sync and /messages 2020-05-15 20:56:23 -04:00
miruka
d71dc91a23 Change debug logging color to blue 2020-05-15 20:56:23 -04:00
miruka
2cc3f27247 Add Ban to member context menu
Also don't try to load past messages in rooms we've left/been
kicked/banned from.
2020-05-15 20:56:23 -04:00
miruka
2d231b7af1 Properly check power levels before allowing kick 2020-05-15 20:56:23 -04:00
miruka
2a0a3765fc Add kick to room member context menu 2020-05-15 20:56:23 -04:00
miruka
bdb9a650d9 Don't color whole line for logging 2020-05-15 20:56:23 -04:00
miruka
89824326e4 Better QML logging & hide Qt 5.14 warnings 2020-05-15 20:56:23 -04:00
miruka
4f8dc98d13 Sort mentioned/unread rooms by last event date 2020-05-15 20:56:23 -04:00
miruka
74e35bd128 Fix space taken by invisible unread indicator 2020-05-15 20:56:23 -04:00
miruka
0ba8c6eecf Make all events able to increment unread/mentions 2020-05-15 20:56:23 -04:00
miruka
4f374081a7 Add indicator properties to Glass theme 2020-05-15 20:56:23 -04:00
miruka
20ff6fe02a Fix account delegate buttons spacing 2020-05-15 20:56:23 -04:00
miruka
f3aa9f0c5f Sort rooms with mentions, then unreads first 2020-05-15 20:56:23 -04:00
miruka
c787ff6f41 Dedicated theming for unread indicator
Also make default indicator background colors darker to be more readable
2020-05-15 20:56:23 -04:00
miruka
cb1a5865cc Fix unread indicator "appear" animation 2020-05-15 20:56:23 -04:00
miruka
0a1834b763 Mark rooms as read on all our accounts 2020-05-15 20:56:23 -04:00
miruka
568d4fddce Don't increment room unreads for our own events 2020-05-15 20:56:23 -04:00
miruka
e98a539433 Don't increment room unreads for past events 2020-05-15 20:56:23 -04:00
Emi Simpson
6ee20a2717 Added limited local read/unread tracking 2020-05-15 20:56:23 -04:00
miruka
b2cfc27ce2 accounts.json: support new "enabled" key
Specifying false will cause Mirage to ignore an account and not
log it in on startup.
Defaults to true when adding new accounts or if not present.
2020-05-15 20:56:23 -04:00
miruka
80ac8896d8 Pass a filesize to AsyncClient.upload()
Fixes #37
2020-05-15 20:47:33 -04:00
Mikko Rasa
9a6c4b5b30 Fix asyncio event loop init in qml_bridge.py
Depending on Python version the file may be imported in a thread and
asyncio only implicitly creates an event loop in the main thread of the
process.  Backend does things which need asyncio so we must ensure an
event loop exists before it is imported.

Fixes #15
2020-05-15 15:10:05 +03:00
miruka
4bae3cf90e Fix AttributeError with matrix-nio 0.11+ 2020-05-14 13:58:34 -04:00
miruka
8b8829af86 Use asyncio.Task.current_task for python 3.6 2020-04-26 13:49:44 -04:00
miruka
4961042bde Fix error on <a> tags without a href attribute 2020-04-07 09:57:32 -04:00
miruka
e0e33649a2 Stricter user/room/message ID mention parsing
Fixes issues like this entire string being linkified:
"! foo:example.org"
2020-04-06 08:30:47 -04:00
miruka
3e10a6d530 Don't show popup when focusing unredactable event 2020-04-03 12:58:15 -04:00
miruka
aa4cd5bd2c Bump version to v0.4.3 2020-04-03 07:56:42 -04:00
miruka
5f38788434 Focus reason field by default in RedactPopup 2020-04-03 07:53:36 -04:00
miruka
1e049a0159 Unselect before unfocusing messages with keybind 2020-04-03 07:53:36 -04:00
miruka
b48e663007 Cancel sending events when removing local echoes 2020-04-03 07:53:36 -04:00
miruka
0e04eafebd Redaction local echo for our other accounts 2020-04-03 07:53:36 -04:00
miruka
5cb013838b Be able to redact our other account's events 2020-04-03 07:53:36 -04:00
miruka
8af63a304f Redact local echo: same text as redaction event 2020-04-03 07:53:36 -04:00
miruka
d991d04a8c Fix copying event when no selection or focused 2020-04-03 07:53:36 -04:00
vSLG
af861ac13a Add redact echo before we receive RedactionEvent 2020-04-03 07:53:36 -04:00
miruka
f8fe5d812b Imrpove redacted events text 2020-04-03 07:53:36 -04:00
miruka
38cc0b1bc7 Ensure last event to delete is ours 2020-04-03 07:53:36 -04:00
miruka
6d270029ad Remove message keybind: don't bind ctrl+del
Ctrl+Del has a special function for deleting words in text, don't
override that
2020-04-03 07:53:36 -04:00
miruka
5ea339ea33 Add keybinds for message removal 2020-04-03 07:53:36 -04:00
miruka
379a7232df Add useless thing to console 2020-04-03 07:53:36 -04:00
miruka
05319af858 Redaction code adjustments + theme addition 2020-04-03 07:53:36 -04:00
vSLG
e60a7f6dac Make "Remove" option conditional in context menu
Refactor code in the backend so things can work
better
2020-04-03 07:53:36 -04:00
vSLG
fc878e7537 Fix event redaction and remove junk code 2020-04-03 07:53:36 -04:00
vSLG
db1afc980e Add RedactionEvent support on backend 2020-04-03 07:53:36 -04:00
vSLG
b3f1075507 Add redacting event via context menu 2020-04-03 07:53:36 -04:00
miruka
554f5d6013 Fix need to press Esc twice to exit popups/menus 2020-04-03 07:53:36 -04:00
miruka
e33c202376 panes toggleFocus(): more reliable focus detection 2020-04-03 07:53:36 -04:00
miruka
70f67f01ac DebugConsole: don't reset target on toggle() 2020-04-03 07:53:36 -04:00
miruka
4602366b9c debugConsole: add toggle() conveniance function 2020-04-03 07:53:36 -04:00
miruka
f838bdf96d focusRoomAtIndex binds: default to cmd+num on OSX 2020-04-03 07:53:36 -04:00
miruka
5ad042f44b Properly force default QML style
The "mysterious segfault" was caused by KDE and its components hijacking
the base QtQuick Controls.
Use a more reliable method that changing env variables to force
QML to use the fusion or default style, which has the base controls we
expect.
2020-04-03 07:53:36 -04:00
miruka
ad937573cf Rewrite HTile and adapt components using it
Rewrite HTile in a more standard way, hopefully fixing the
mysterious segfault on some systems
2020-04-03 07:53:36 -04:00
miruka
6e63569ad7 Add leaveRoom and forgetRoom keybinds 2020-04-03 07:53:36 -04:00
miruka
2a648d7f59 Add invite to room keybind 2020-04-03 07:53:36 -04:00
miruka
790229e188 Make DebugConsole keyboard-scrollable again 2020-04-03 07:53:36 -04:00
miruka
22be0bf5f0 MIRAGE_CONFIG_DIR and MIRAGE_DATA_DIR env vars
Allow overriding the default path where config files and user data are
found
2020-04-03 07:53:36 -04:00
miruka
1038678a2f Refactor global shortcuts, simplify debug consoles
- Move out all shortcuts from their central file to the component they
  actually belong to

- Get rid of DebugConsoleLoader and the multiple consoles handling mess,
  have only one global console
2020-04-03 07:53:36 -04:00
miruka
6850ef26f5 Show details when login fails with unknown error 2020-03-29 11:48:04 -04:00
miruka
eafd65d490 Fix compact mode being enabled by default 2020-03-28 11:04:43 -04:00
miruka
4185a30a6e theme_parser: translate hard tabs to spaces 2020-03-28 07:48:27 -04:00
miruka
c64179fcbd Fix "AbstractButton" problem with Qt 5.14 2020-03-27 10:36:50 -04:00
miruka
311a53f8f4 "Unselect" → "Deselect" 2020-03-27 07:06:38 -04:00
miruka
4c76ffd88b Bump version to v0.4.2 2020-03-27 05:40:23 -04:00
miruka
ff8fd01eb1 Fix copying selected non-message events 2020-03-27 05:38:29 -04:00
miruka
c03bf32a7b Theme color for eventList highlight 2020-03-27 05:09:49 -04:00
miruka
af6cdc9013 Rename HListView checking-related functions 2020-03-27 05:05:25 -04:00
miruka
3f69710813 Allow copying text from non-message events 2020-03-27 04:58:49 -04:00
miruka
936c49127d Add keyboard controls for message focus/selection 2020-03-27 04:49:01 -04:00
miruka
6ca10e1f2b Customizable unselectAllMessage keybind 2020-03-27 03:53:25 -04:00
miruka
ba86414ddf Implement shift+click/A-B message selection 2020-03-26 23:24:37 -04:00
miruka
e696c16fc8 Remove old drag-scrolling hack code 2020-03-26 22:22:07 -04:00
miruka
4a780e20f4 Make HMenu modal
Prevents accidentally triggering TapHandlers when clicking outside of
the menu to exit it.
2020-03-26 22:00:35 -04:00
miruka
43c018d0a4 Improve "Copy text" text and availability 2020-03-26 22:00:00 -04:00
miruka
18f53829d9 Make composer/eventList ctrl-c work again 2020-03-26 22:00:00 -04:00
miruka
a61f1d5d04 Make selection look better 2020-03-26 22:00:00 -04:00
miruka
2d471b70f5 Single message text selection for mouses 2020-03-26 22:00:00 -04:00
miruka
3852357614 Start implementing new message selection system 2020-03-26 22:00:00 -04:00
miruka
710dba09ec Remove message text selection hack 2020-03-26 22:00:00 -04:00
miruka
f148837fae Remove Invite/LeftBanner avatar radius 2020-03-26 21:59:33 -04:00
miruka
ca92abe689 Merge branch 'dev' 2020-03-24 16:02:23 -04:00
Rinigus
d17c6334da Add pen as an input device to the right click handler 2020-03-24 19:52:48 +02:00
miruka
379a851a62 alertOnMessageForMsec: correctly handle 0 value
If 0: don't show any alert
If -1: show alert indefinitly until user focuses the window
2020-03-24 11:31:32 -04:00
Rinigus
5058e3c13e Fix activation of right-click on touch devices 2020-03-24 16:43:31 +02:00
miruka
684ddd364c Don't ignore case when linkifying display names 2020-03-24 04:12:09 -04:00
miruka
3dc81700c1 Correct mailto: linkifying in some special cases
adresses where the host ends with a digit or where the host is only one
character
2020-03-24 04:08:00 -04:00
miruka
0e191f11d0 Member ev. processing: don't assume any key exists 2020-03-24 03:56:31 -04:00
miruka
be43f68059 Support $id:server message ID mentions 2020-03-23 17:17:15 -04:00
miruka
bed0dbf998 Add setting to ignore unknown events 2020-03-23 16:58:31 -04:00
miruka
d34e2ab2b6 Render room id/alias mentions bold by default 2020-03-23 16:53:11 -04:00
miruka
831dca3723 EventContent: avoid some false name detection 2020-03-23 16:50:12 -04:00
miruka
bd53993b90 Ignore mention links with no text 2020-03-23 16:34:51 -04:00
miruka
469992b650 Fix avatar size for one line events like m.emote 2020-03-23 16:10:13 -04:00
miruka
2e6488e6f9 Bump version to v0.4.1
Changelogs:

Added:

- `hideMembershipEvents` setting in config file, controls whether
  events such as "x joined the room" are shown in the timeline

- `hideProfileChangeEvents` setting in config file, controls whether
  display name and avatar change events are shown in the timeline

- Compact mode to make accounts, rooms, messages and room members
  take only one line as well as reducing vertical spacing between them.
  Set by the new `compactMode` setting in config file, and can also
  be toggled with the `keys.toggleCompactMode` keybind which defaults
  to Alt+Ctrl+C

- `keys.focusRoomAtIndex` in config file, a
  `{"<index>": "<keybind>"}` mapping which by default binds
  Alt+1-9 and Alt-0 to focus room 1 to 10 in the current account

- User ID, display names, room ID and room aliases are now
  automatically transformed to matrix.to links and will be rendered
  as mentions by clients.
  In Mirage, this results in user ID/names being colored with the
  same color seen when they send messages

- Track the number of times your user was mentioned in rooms.
  The visual counter is not yet displayed, since there currently is
  no way to mark messages as read and make the counter go down

Fixed:

- Python exceptions occuring in the asyncio loop not being printed
  in the terminal

- Extra newline shown after code blocks in messages

- Constant CPU usage due to button loading animations still being
  rendered while uneeded and invisible

Theme changes:

- Added `controls.avatar.compactSize` property
- Added `.mention` class styling to `chat.message.styleSheet`
2020-03-23 15:06:57 -04:00
miruka
db1cd13977 Glass.qpl: add .mention to styleSheet 2020-03-23 14:32:43 -04:00
miruka
38e57d2ff9 Color user mentions in local echoes too 2020-03-23 14:23:32 -04:00
miruka
b11bd8331b Fix constant CPU usage due to HButtonContent
Unload the animated HBusyIndicator when not needed
2020-03-23 14:04:00 -04:00
miruka
919edb52ad Fix /me messages having names on their own lines 2020-03-23 13:49:19 -04:00
miruka
4fdf531631 Fix mention-related KeyError in message callback 2020-03-23 13:43:30 -04:00
miruka
3c64b33cb7 Color user mentions 2020-03-23 13:30:40 -04:00
miruka
688f36b7f1 Event: add [(text, link)] mentions attributes 2020-03-23 15:39:14 -04:00
miruka
8e7cd7bde9 Add data-mention attributes to mention links 2020-03-23 15:23:01 -04:00
miruka
3084745522 Remove extra newline from <pre> elements 2020-03-23 15:11:29 -04:00
miruka
a20cfcffe5 Add special CSS classes to mention links 2020-03-23 15:02:31 -04:00
miruka
710668da5d Disable unread mention counter *for now*
There's currently no way to make it go down, read room markers need to
be implemented first.
2020-03-23 00:50:58 -04:00
miruka
0682990666 Fix compact mode msg names on their own lines 2020-03-23 00:48:39 -04:00
miruka
ef2504ecae Visual unread mentions counter 2020-03-22 23:55:48 -04:00
miruka
367fff8f4a Fix mentions incorrectly linked for outgoing html 2020-03-22 23:00:30 -04:00
miruka
b1144572aa Fix loop exceptions not printed in terminal 2020-03-22 20:58:24 -04:00
miruka
8d5bc45ceb Safer linkifying for user display names 2020-03-22 20:58:05 -04:00
miruka
8fd7ce4e14 Safer linkifying for user ID, room ID, room alias
Don't replace anything in already existing links or <code>.
2020-03-22 19:40:43 -04:00
miruka
2fbfac5e0d Proper user ID, name, room ID, alias linkifying 2020-03-22 17:38:28 -04:00
miruka
f858e505a6 Linkify typed usernames/id in markdown 2020-03-22 16:21:29 -04:00
miruka
9f52fa86fa Add Alt+1-0 keybinds to switch to a room at index 2020-03-22 14:08:27 -04:00
miruka
53dfd08131 Add toggleCompactMode keybind, re-rename setting 2020-03-22 13:30:03 -04:00
miruka
18c16ca486 Rename compact mode setting → compactModeByDefault 2020-03-22 13:24:38 -04:00
miruka
d29b393ad2 Less vertical spacing between msgs in compact mode 2020-03-22 13:20:16 -04:00
miruka
ce7c986e5b Compact mode for messages 2020-03-22 13:05:35 -04:00
miruka
5d513f84fa Add compact mode for sidepanes + setting 2020-03-22 12:50:51 -04:00
miruka
c6390238a9 Add settings to hide membership and profile events 2020-03-22 12:04:43 -04:00
miruka
f13327b073 Config files loaded data accessible from Python 2020-03-22 12:01:22 -04:00
miruka
f54075b7e0 Improve default device name
The number returned by platform.version() is only meaningful in a
long-time scenario on Windows. Also make the function clearer.
2020-03-21 23:39:57 -04:00
miruka
2dd275c618 Update minimum Pillow requirement to 7.0.0
- Includes fix for security issue CVE-2019-16865 before 6.2.0
- Default rescale algorithm is now bilinear, or nearest for palette
  images. No need to pass lanczos on our own.
2020-03-21 18:56:47 -04:00
miruka
5b5fda4477 Update github links 2020-03-21 15:20:57 -04:00
miruka
412d92dc25 Background: remove top left black shadow 2020-03-21 15:07:41 -04:00
miruka
73f14cac8e Fix room pane header buttons onClicked 2020-03-21 15:02:37 -04:00
miruka
373ce6b925 Make EventContent.contentText not readonly
For debugging (really)
2020-03-21 14:56:44 -04:00
miruka
ac85935236 Animate avatar placeholder colors 2020-03-21 14:56:44 -04:00
miruka
e67624020b Default background: less blur, redone screenshots 2020-03-21 14:56:36 -04:00
miruka
6662628b4e Really cancel key import when clicking "Cancel" 2020-03-21 12:43:16 -04:00
miruka
cb020ad479 Center account-room list to highlight on startup 2020-03-21 10:21:32 -04:00
miruka
d0a19852b7 generate_thumbnail: Catch+log any kind of error 2020-03-20 13:51:32 -04:00
miruka
ee6ac18671 Show pages headers to go back to pane when needed 2020-03-19 20:33:46 -04:00
miruka
27ee961c52 Remove dead debug TapHandler in AccountRoomsList 2020-03-19 19:14:47 -04:00
miruka
2511a03045 Fix event debug returning wrong event json 2020-03-19 18:49:33 -04:00
miruka
03251f019e Really fix icon-only buttons alignment 2020-03-19 11:37:05 -04:00
miruka
6ece4624ca Increase required width to show all events on left 2020-03-19 11:14:28 -04:00
miruka
b6b2e35221 Fix invite to room button alignment 2020-03-19 11:14:28 -04:00
miruka
aaf34a9312 Better example placeholder text for composer alias 2020-03-19 11:14:28 -04:00
miruka
ba955008fc Improve main pane list reactions to mouse events 2020-03-19 11:14:28 -04:00
miruka
e86c5d7163 Fix "loading past messages" busy indicator width 2020-03-19 11:14:28 -04:00
miruka
60fc2ccffc Replace console icon by reload config 2020-03-19 11:14:28 -04:00
miruka
e5c3afa219 Remove gray line at the bottom of tabs 2020-03-19 11:14:28 -04:00
miruka
2ef75faa71 Use HBusyIndicator as button loading indicator 2020-03-19 11:14:28 -04:00
miruka
effc268cac Remove text field border animation 2020-03-19 11:14:28 -04:00
miruka
743ff4df9f Upgrade Midnight theme with a real background 2020-03-19 02:35:50 -04:00
miruka
9186386369 Fix UI image hidden behind gradient 2020-03-19 00:13:38 -04:00
miruka
fe40d117b2 Fix room pane default size 2020-03-19 00:13:19 -04:00
miruka
4ab25ada43 AppImage improvements and fixes
- No need to build manually the olm python 3 bindings, pip does it
- make clean in mirage dir if possible, since having build/ files from a
  compiling that happened from another distro can make the process fail
- Save linuxdeployqt and appimagetools outside of the mirage repo
- Lint the AppDir with the script from pkg2appimage
- From python, restore LD_LIBRARY_PATH, PYTHONHOME and PYTHONUSERBASE to
  their original values. The AppRun laucher overwrites them to properly
  launch the program, but it affects external programs too launched e.g.
  when user clicks a link.
2020-03-18 19:12:38 -04:00
miruka
2f46656827 Add button in reduced room pane to go back to chat 2020-03-17 21:21:29 -04:00
miruka
3c0f6f60c6 Add button to go back to chat in reduced main pane 2020-03-17 18:38:52 -04:00
miruka
adc6fc4af5 Fix visible room header overflow in small window 2020-03-17 18:19:26 -04:00
miruka
9585465461 No background for room header pane buttons 2020-03-17 18:06:19 -04:00
miruka
9981dfd682 Add room header pane buttons tooltips 2020-03-17 18:05:51 -04:00
miruka
f52ec09d83 Midnight: make own messages color more distinct 2020-03-17 17:59:57 -04:00
miruka
6ede699fdf Fix text area/field disabled text wrapping 2020-03-17 17:41:15 -04:00
miruka
a64d0f037d Make room header font size match main pane top bar 2020-03-17 17:34:09 -04:00
miruka
e495922aee Center room settings avatar 2020-03-17 17:16:03 -04:00
miruka
cf9df8d036 Focus an item when changing view in roomPane 2020-03-17 17:14:47 -04:00
miruka
8692aa4a26 Change some default keybinds to make more sense
toggleFocusMainPane: Alt+S → Alt+F
clearRoomFilter: Alt+Shift+S → Alt+Shift+F

addNewAccount: Alt+Shift+N → Alt+Shift+A
addNewChat: Alt+N → Alt+C

sendFile: Alt+F → Alt+S
sendFileFromPathInClipboard: Alt+Shift+F → Alt+Shift+S
2020-03-17 17:11:10 -04:00
miruka
3568abb9af Rename keybind focusMainPane → toggleFocusMainPane 2020-03-17 16:55:16 -04:00
miruka
53bace3915 Add keybind to toggle room pane focus 2020-03-17 16:52:14 -04:00
miruka
b092cc11eb Add room header buttons to access sidepanes 2020-03-17 16:52:11 -04:00
miruka
5392016dab Add setting controlling when panes should collapse 2020-03-17 15:38:54 -04:00
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