* Add keys for back and forward through history
Move through history of visited rooms without altering it.
Ctrl+H and Ctrl+Y by default.
Deviating from history while in the middle of it
causes a part of history to be discarded.
* Change default history binding to Ctrl+H and Ctrl+Shift+H
* Rename functions and settings
`earlier_page` and `later_page` is consistent naming with `last_page`
* Add option to wrap history
If you press `later_page` while at index 0 (newest), you loop to the end
of recorded history (oldest). If you press `earlier_page` while at at
the end of history (oldest), you loop back to the top (newest).
This can be disabled.
* Add showNthFromHistory
Grouped duplicated code into a new funcion.
* Minor formatting changes
* Move wrap_history setting from to General section
The Keys section is purely for keybindings; this setting should also be
able to control history navigation not done by keyboard such as extra
mouse button bindings.
* Change default bind for later_page and clear_all
Ctrl+H and Ctrl+L are a more intuitive pair than Ctrl+H and Ctrl+Shift+H.
Meanwhile, clear_all does not need the accessible binding Ctrl+L.
Co-authored-by: miruka <miruka@disroot.org>
* Add keybinding for quit
* Reorder default settings
The related keybindings are now located closer together.
quit is not commented by default, but instead has an empty list.
* No need for braces for a single instruction
When the currently shown page is the chat of a certain room,
prevent that room from moving around in the left pane due to new
messages/activity or unread/highlight counters change.
When the user switches to another page/room, the previously held lock is
released and that room completes all the moves it would have done if it
wasn't locked.
This makes navigating a room list with lots of activity easier, and
prevent annoyances like clicking on a room with unread messages and
having it immediatly fly down the list (possibly out of scroll view).
This reverts commit 39f159f0a3.
Causes problems when message delegates are reordered, with the
transition animations randomly stopping in the middle and leaving
delegates at odd positions.
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.
- 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
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
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
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.
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.
- 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
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
Downloading file messages will now show a transfer control above the
composer, similar to uploads. Measuring the progress or pausing the
operation is not possible yet.
When messages are selected in the timeline, change the chat header's
mode to show how many messages are selected and offer copy, remove and
deselect buttons.
Give reason why we can't delete all the selected messages when
selection contains a mix of own and other user messages and we don't
permission to remove them.
Toggle display of the focused message's seen counter tooltip,
which shows which user have this message as their last seen
and when did they send that information.
When this mode is active, you can move the focus
to other messages and the tooltip will update itself.
If a message doesn't have a counter, it won't have a tooltip.
python_debugger (shift+F1) will now always start pdb, and
python_remote_debugger will always start remote_pdb.
Since the new autoreload.py script doesn't break stdin like entr with
live-reload.sh did, we can now use pdb if the app is connected to a
terminal.
- Remove the default Qt dragMargin: when the right pane was
hidden/collapsed in the interface, accidentally clicking on this
invisible 10 pixel-wide zone to the right edge of the window
would interfere with any button under it, e.g. the button to
expand the pane
- Fix expand pane button failing to bring back pane (due to dragMargin)
and turning the chat page header invisible
- Disable swiping to exit panes, interferes with buttons and tiles
When hovering on stability percentages in the server browser, a tooltip
now shows the total downtime in the past 30 days, number of incidents,
their average length and the longest's duration.
- Loading a QML file in place of src/gui/UI.qml is now possible via
-l / --load-qml instead of taking the first positional argument
- New option to start application in tray without showing a window
- --help and --version