Commit Graph

239 Commits

Author SHA1 Message Date
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
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
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
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
f2f4643189 Remove event list scrollbar padding 2020-06-22 13:10:48 -04:00
miruka
d4350f6e86 Borders for HTextArea 2020-06-06 21:54:13 -04:00
miruka
0f679956ec Fix topic text area inside scrollview 2020-06-05 06:33:55 -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
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
6772f14c24 Use a text area instead of field for room topic 2020-06-02 21:52:16 -04:00
miruka
241c16932f Immediatly update cached profile after changing it 2020-06-02 21:09:21 -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
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
8b9681dc78 Rename HTextArea.append() → .insertAtCursor() 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
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
a48b1cedd0 Don't limit width of messages with code blocks 2020-05-20 11:08:02 -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
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
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
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
e147b87d1b Remove superfluous HTileDelegate, use HTile 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
8e0c046cdb MemberView: no need for onAdd transition hack now 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
37a9332aed Python filtered models for room members 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
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
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
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
3e10a6d530 Don't show popup when focusing unredactable event 2020-04-03 12:58:15 -04:00
miruka
1e049a0159 Unselect before unfocusing messages with keybind 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
d991d04a8c Fix copying event when no selection or focused 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
5ea339ea33 Add keybinds for message removal 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
4602366b9c debugConsole: add toggle() conveniance function 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
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
311a53f8f4 "Unselect" → "Deselect" 2020-03-27 07:06:38 -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
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
Rinigus
d17c6334da Add pen as an input device to the right click handler 2020-03-24 19:52:48 +02:00
Rinigus
5058e3c13e Fix activation of right-click on touch devices 2020-03-24 16:43:31 +02:00
miruka
831dca3723 EventContent: avoid some false name detection 2020-03-23 16:50:12 -04:00
miruka
469992b650 Fix avatar size for one line events like m.emote 2020-03-23 16:10:13 -04:00
miruka
3c64b33cb7 Color user mentions 2020-03-23 13:30:40 -04:00
miruka
0682990666 Fix compact mode msg names on their own lines 2020-03-23 00:48:39 -04:00