Commit Graph

2169 Commits

Author SHA1 Message Date
miruka
e601a378d8 Workaround Qt's lack of support for HTML <hr>
When processing message HTML for the client from python, turn <hr>
tags into <p>──────...</p> em dash lines
2021-07-26 04:39:57 -04:00
miruka
bcb9ffcf9d Room settings: add room ID text area + copy button
The only way to see a room's ID previously was to right click a room in
the left pane, copy option, and paste it somewhere.
2021-07-26 04:39:57 -04:00
miruka
1d29e47818 Fix warning when quitting before config is loaded 2021-07-26 04:39:57 -04:00
miruka
e36fa4eeda Fix config writing failing if parent dir not exist
Problem introduced in ba3e93e658eb8c536a0dd803c8cb5fabbb68fb8f
2021-07-26 04:39:57 -04:00
miruka
59ef2004e1 Fix reply starting with a >quote not being colored
For a message that was a reply to another, and that that started with
a "> ..." quote, the quote wasn't getting highlighted due to regex not
accounting for cases where one is preceded by a </mx-reply> closing tag.
2021-07-26 04:39:57 -04:00
miruka
c4eef71a83 Fix inline >quote regex for quotes after a <tag>
Example, if a room list item subtitle was ">a \n >b", only ">a" was
wrapped with the "quote" class and colored appropriatly due to <a> being
wrapped in a <span> and the regex failing on that
2021-07-26 04:39:57 -04:00
miruka
57a7b567ca Keys.Account.AtIndex binds: don't focus 1st room
Go to the corresponding account settings instead of trying to focus the
first room of the target account if there is one.

This makes the behavior consistent across expanded and collapsed
accounts, and with the Keys.Account.(previous/next) keybinds that
were changed to work in this way in commit
4f4bc90faa.
2021-07-26 04:39:57 -04:00
miruka
806983db93 Use Instantiator for RoomList AtIndex keybinds
Instantiator is better suited to the task: Repeater is specially
made to load visual components, and that forced us to wrap the
HShortcuts inside empty Items.
2021-07-26 04:39:57 -04:00
miruka
66169e641e Fix history navigation when <2 items in history
On startup, there will be one page in the history, not zero.
Disable history navigation in such cases where the current page will
just get selected again.
2021-07-26 04:39:57 -04:00
miruka
58b4667c31 Navigate page history with mouse back/forward 2021-07-26 04:39:57 -04:00
miruka
b9ea61e133 Utils.qml: fix indentation of an if 2021-07-26 04:39:57 -04:00
Maze
c140d69138 Add visited pages history back/forward keys (#204)
* 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>
2021-07-26 04:39:57 -04:00
MRAAGH
f88ab45b94 Add keybinding for quit (#203)
* 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
2021-07-26 04:39:57 -04:00
miruka
5828c378be Turn matrix.to links into shorter forms
e.g. if someone posts a message containing
"https://matrix.to/#/@foo:example.org", that link will be turned into a
properly colored "@foo:example.org".
2021-07-26 04:39:57 -04:00
miruka
c8bf607fc2 Fix parsing links with some special characters
Add these characters to the regex allowed list for URL /paths:
non-latin word characters, : ! $ * + ^ @

This also fixes the parsing of matrix.to URLs in messages.
2021-07-26 04:39:57 -04:00
miruka
9fa2816d4b Require a space after # for markdown titles
Lets us types stuff like #room-aliases without having to escape the # or
get a bad surprise
2021-07-26 04:39:57 -04:00
miruka
c948c75d36 Fix ~/qrc: folder created on start in release mode 2021-07-26 04:39:57 -04:00
miruka
2b91fc048c Update mypy dev requirement to 0.812+
Noticable improvement: no longer throws errors when using
aiofiles 0.6+ functions.
2021-07-26 04:39:57 -04:00
miruka
688fdec9d7 Remove callback for nio.UnknownBadEvent
Should this type of event appear, our function to register events won't
find the attributes required to process it that are present on normal
events.
2021-07-26 04:39:57 -04:00
miruka
03349ae33f Add "Add another account" entry to settings menu
To do: replace the bottom-left "add account" button by something else,
move the corresponding keybind code away
2021-07-26 04:39:57 -04:00
miruka
b07dfa1c01 Update changelog and version for 0.7.1 2021-03-04 22:20:05 -04:00
miruka
7848a2014a Fix custom theme not found when compiled with QRC
If the application was compiled with QRC (i.e. CONFIG+=dev), a theme
setting that wasn't one of the default theme would fail to be read.

Originally commit cf463f24786566c5ec04a6823e9917975ba2b265,
accidentally thrown out before release
2021-03-04 16:41:48 -04:00
miruka
3daeae324b Fix homeserver list for aiohttp <3.7.0 2021-03-04 13:42:00 -04:00
miruka
a4f94b6de0 settings.py: comment typo fixes and improvements 2021-03-04 11:24:22 -04:00
miruka
35442389c7 settings.py: fix Notifications.flash_time comment 2021-03-04 11:01:31 -04:00
miruka
6febaeeb1b Support the http_proxy environment variable
Overrides General.proxy setting if set
2021-03-03 17:14:57 -04:00
miruka
f6f0a0c1ee Add General.proxy setting, supports HTTP & SOCKS5 2021-03-03 17:14:57 -04:00
miruka
b0d31af3c0 fetch_homeservers: use nio to make aiohttp session
Use a throwaway nio client to make ourself an aiohttp session with proxy
support, that way we don't have to depend on aiohttp and aiohttp-socks
libraries
2021-03-03 17:14:57 -04:00
miruka
bbe6415336 Have radius only on text fields/areas with borders
Fixes the appearance of the filter room/members fields
2021-03-03 17:14:57 -04:00
miruka
d828312a24 Fix focus problems for submenues in context menues 2021-03-03 17:14:57 -04:00
miruka
902f13ab68 Lock position of the room that's focused in GUI
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).
2021-03-03 17:14:57 -04:00
miruka
3f88a2204e errors.py: remove duplicate MatrixBadGateway class 2021-03-03 17:14:56 -04:00
miruka
4bff58c828 model.py: remove leftover debugger call 2021-03-03 17:14:56 -04:00
miruka
a3206501de Fix mypy complaint in MatrixClient.edit_pushrule 2021-03-03 17:14:56 -04:00
miruka
5476cf1e6d Don't pass ModelItem fields starting with _ to QML 2021-03-03 17:14:56 -04:00
miruka
045bce5f9c Remove model item __lt__ docstrings
Duplicate efforts and get outdated when the code better explains
how items are sorted
2021-03-03 17:14:56 -04:00
miruka
d31ee9cd67 Shorten lexical vs by activity room sorting code 2021-03-03 17:14:56 -04:00
miruka
81c460cbaf Revert "Fix the one-line events combining"
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.
2021-03-03 17:14:56 -04:00
miruka
f0d7757f0c Catch simpleaudio playback errors
Because of course sound isn't just gonna work on linux and
especially flatpak. Make sure to not spawn an error popup every time
we try to play a notification. Maybe use mpv in the future for
SFX playback (when we'll have a media player implemented),
since it has support for all these backends out of the box.
2021-03-03 17:14:56 -04:00
miruka
cfce4e1ddc Pre070SettingsDetectedPopup: point to master docs 2021-03-03 17:14:56 -04:00
miruka
c420360602 settings.py: support ~ expansion for sound path 2021-03-03 17:14:56 -04:00
miruka
92c49140e7 Play sound from python/ALSA instead QtMultimedia
GStreamer sucks
2021-03-03 17:14:56 -04:00
miruka
31f6e5320a Improve default notification sound
Quieter by default, shorter and without the annoying clicky noise
2021-03-03 17:14:56 -04:00
miruka
ffcccd38d2 Add documentation link to settings menu
And make mirage x.y.z label no longer open the github page
2021-03-03 17:14:56 -04:00
miruka
f49282ff36 Bump version strings to v0.7.0 2021-03-03 17:14:56 -04:00
miruka
1db8c66759 Hide image event name/time bubbles when kb-focused 2021-03-03 17:14:56 -04:00
miruka
376364afad PushRuleSettingsPopup: add some missing padding 2021-03-03 17:14:56 -04:00
miruka
9de4252924 PushRuleSettingsPopup: remove unused action + btn 2021-03-03 17:14:56 -04:00
miruka
c46e1eb897 PushRuleSettingsPopup: add custom sound field 2021-03-03 17:14:56 -04:00
miruka
8b53b4ae11 When replacing disabled rule, disable new rule too 2021-03-03 17:14:56 -04:00