Commit Graph

256 Commits

Author SHA1 Message Date
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
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
3daa60510a DeviceVerification: slightly improve bottom text 2020-07-11 16:20:19 -04:00
miruka
cf7786e6c6 DeviceVerification: focus info area by default 2020-07-11 16:10:55 -04:00
miruka
10f47f71ac Fix Chat userInfo errors 2020-07-11 00:43:31 -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
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
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
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
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
a1e5a1981d Fix presence not being updated after loaded once 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
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
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
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
92cbc4b006 Add keyboard controls for members list & profile 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
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
789e9c7da8 Close verif. page when verifying/blacklisting 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
0dbc9ce659 Fix mention CSS for display names containing < > 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
0a2d274824 Add verified devices indicator to room header 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
33d09c320b Fix unhandled enter on sign in and add chat pages 2020-06-26 09:28:58 -04:00
miruka
1a93190ee2 Improve account settings avatar font size 2020-06-26 07:24:37 -04:00