Commit Graph

2549 Commits

Author SHA1 Message Date
miruka
be3d3692ef Add Qt Multimedia as dependency for sound playback 2021-03-03 17:14:56 -04:00
miruka
99325fde86 Add support for notification sound effects 2021-03-03 17:14:56 -04:00
miruka
1b0bec3470 Add options to disable HTML in notifications 2021-03-03 17:14:56 -04:00
miruka
fe92ce6730 Fix avatar/display name missing from notifications
This happened when we got a message from an account-room pair
where the full member list hadn't been loaded yet, i.e. the user had
never focused the room since starting the client
2021-03-03 17:14:56 -04:00
miruka
26a68acefd Rename Notification... components for consistency 2021-03-03 17:14:56 -04:00
miruka
e5e78dcefa Rename notification bell icons for consistency 2021-03-03 17:14:56 -04:00
miruka
80c7b07d10 Add bell icons back to global notification menu 2021-03-03 17:14:56 -04:00
miruka
0f2023b924 Customize check mark for checkable menu items 2021-03-03 17:14:56 -04:00
miruka
7604b0f96a Customize submenu arrow for HMenuItem 2021-03-03 17:14:56 -04:00
miruka
6fc0b6725c Remove unused combo-box-menu icon 2021-03-03 17:14:56 -04:00
miruka
d7fbe8c222 Add keybinds to control global notifications
Alt+M: toggle "mute all notifications except highlights"
Alt+Shift+M: toggle "mute all notifications"

The Keys.Rooms.(previous/next)_highlight keybinds, previously bound to
Alt+(Shift+)M (stood for "mention") now defaults to Alt+(Shift+)H.

The NotificationLevel enum and notificationLevel property had to be
moved from Window to UI due to QML having a global "Window" object that
causes conflicts when trying to access the enum as
"Window.NotificationLevel" from UI.qml.
2021-03-03 17:14:56 -04:00
miruka
93ced92cda Add Notifications.start_level setting 2021-03-03 17:14:56 -04:00
miruka
9c56e78164 PushRuleSettingsPopup: highlight action precision 2021-03-03 17:14:56 -04:00
miruka
027454c6e0 Improve global notifications menu
- More descriptive menu entries
- Indicate the current setting in the menu with a checkmark
- Remove menu button tooltip that gets in the way
- Remove unused icon
2021-03-03 17:14:56 -04:00
miruka
0017a1562c Room context menu: notification setting checkmark
Indicate which notification override setting is currently active
2021-03-03 17:14:56 -04:00
miruka
af321d8eae Add notification options to room context menu 2021-03-03 17:14:56 -04:00
miruka
716b480550 Add "Sending message..." tooltip on hourglass
Previously, hovering the hourglass shown for locally echoed messages
would show an empty tooltip.
2021-03-03 17:14:56 -04:00
miruka
8a6f7c262f Change room bookmark terminology to pin/unpin
Pin/unpin is more representative of what the function actually does
for rooms in the left pane. Also change the corresponding icons and
renames the config file section: RoomList.Bookmarks → RoomList.Pinned
2021-03-03 17:14:56 -04:00
miruka
13558fd61c Popups: make key words colored instead of italic
The room name in room forget/leave/invite popups, the exception type in
the unexpected exception popup
2021-03-03 17:14:56 -04:00
miruka
bd91b4ca26 Terminology fix: "invite members" → "invite users"
What we're inviting to a room is users that aren't members yet
2021-03-03 17:14:56 -04:00
miruka
41bce03b92 Push rule popup: respect custom sound action SFX 2021-03-03 17:14:56 -04:00
miruka
84567f1ffd Auto-save push rule tab action changes 2021-03-03 17:14:56 -04:00
miruka
4306098692 Add actions to push rule settings popup 2021-03-03 17:14:56 -04:00
miruka
f466fe9f08 Implement adding new custom push rules 2021-03-03 17:14:56 -04:00
miruka
5b296ed6be Implement adding/removing general rule conditions 2021-03-03 17:14:56 -04:00
miruka
64b8ee03e3 Add some missing copyright/license headers 2021-03-03 17:14:56 -04:00
miruka
e8b8509d22 Open settings popup on pushrule delegate click 2021-03-03 17:14:56 -04:00
miruka
8c4e5deb66 Implement removing push rules 2021-03-03 17:14:56 -04:00
miruka
765ce46aeb Add popup to edit push rules 2021-03-03 17:14:56 -04:00
miruka
71cd509a9d Fix text wrapping for HRadioButton 2021-03-03 17:14:56 -04:00
miruka
44051f706d Prevent horizontal flick in HFlickableColumnPage
These pages and popups using them were always horizontally scrollable,
even though their inner content didn't exceed the page width. Qt bug?
2021-03-03 17:14:56 -04:00
miruka
977be541aa Require notify button on for other push actions
In the notification push rules UI:

- When the notify button for a rule (blue +1) is toggled off, show
  all other action buttons as toggled off too

- When clicking on another action while notify is off, enable notify and
  that action
2021-03-03 17:14:56 -04:00
miruka
a06ce3352e Make local unread markers optional, off by default
Add RoomList.local_unread_markers option to settings.py,
which is False by default.
Before, this way always enabled and conflicts with push rules by marking
anything as unread without any logic.
2021-03-03 17:14:56 -04:00
miruka
4f4bc90faa Don't focus 1st room when clicking on account bar
When clicking on an account in the top account bar or using the
Keys.Account.(previous/next) keybinds, go to the corresponding
account settings instead of trying to focus the first room of that
account if there is one: user might not want to clear the read marker of
any random room that is out of view and happens to be the first in the
list.
2021-03-03 17:14:56 -04:00
miruka
a33902e382 Rename Keys.Room.(previous/next)_urgent setting
to (previous/next)_highlight, to match the new terminology used from the
previous notification settings commit.
2021-03-03 17:14:56 -04:00
miruka
1017d02a83 Change window alert setting names and defaults
- Notifications.alert_time → Notifications.flash_time,
  more evocative of what these "alerts" actually do

- Change default for the above from 0 to 5, since now push rules already
  control precisely what to enable or disable these alerts for

- Notifications.urgent_alert_time → Notifications.highlight_flash_time,
  "highlight" is the term used in the matrix doc
2021-03-03 17:14:56 -04:00
miruka
0ca8d46eae Fix and rename "Sessions" keybinds
Fix refresh and sign out keybinds that were broken, and rename
these in settings.py:

- Keys.Sessions.refresh → Keys.Security.refresh
- Keys.Sessions.sign_out_checked_or_all → Keys.Security.sign_out
2021-03-03 17:14:56 -04:00
miruka
c7d4f719b6 Security.qml: fix first DeviceSection padding 2021-03-03 17:14:56 -04:00
miruka
df979ec5fa Show spinner while push rule list is loading 2021-03-03 17:14:56 -04:00
miruka
6aec20b4d8 Account settings: rename Account tab to General 2021-03-03 17:14:56 -04:00
miruka
8d1d6be701 Notifications.qml: improve paddings consistency 2021-03-03 17:14:56 -04:00
miruka
de34e25f4f Urgency hint enabled by default depending on sound
Make the urgency hint tweak for push rules actions enabled by default if
the rule also has the sound tweak enabled, instead of highlight tweak.
2021-03-03 17:14:56 -04:00
miruka
3dd12691b8 Make desktop notifications follow push rules 2021-03-03 17:14:56 -04:00
miruka
2ef1edb3dc Remove pointless local_highlights
An event can only be considered a highlight if a push rule make it so,
thus an event can never be locally highlighted only.
2021-03-03 17:14:56 -04:00
miruka
35a8c0aec4 Use nio.PushRuleKind instead of own enum 2021-03-03 17:14:56 -04:00
miruka
8748c6445f Push rules sound: be a string, not just on/off 2021-03-03 17:14:56 -04:00
miruka
d2fc003617 Ignore changes for now deleted push rules on save 2021-03-03 17:14:56 -04:00
miruka
9473e97c61 Don't reset model on account data pushrules event 2021-03-03 17:14:56 -04:00
miruka
99c5346dba Store pushrules in model with (kind, rule_id) keys
Two rules of different kinds can have the same rule ID
2021-03-03 17:14:56 -04:00
miruka
d5bcaca874 Add saving of pushrules action changes 2021-03-03 17:14:55 -04:00