Commit Graph

2637 Commits

Author SHA1 Message Date
miruka
3683d7db20 Chat InviteBanner: make decline button spawn popup
Rather than leaving the room as soon as the button is clicked.
This offers the option of also forgetting that room, and will allow
checking a future "ignore inviter" too.
2021-07-26 04:39:57 -04:00
miruka
70ae16a7c1 Merge the Leave and Forget room popups 2021-07-26 04:39:57 -04:00
miruka
b40c43ef2f DirectChat: fix warning from half-leftover line 2021-07-26 04:39:57 -04:00
miruka
fb84ea41c5 Fix forgetting already left room 2021-07-26 04:39:57 -04:00
miruka
7db0e07281 Fix lock_room_position error when forgetting room 2021-07-26 04:39:57 -04:00
miruka
96a1e57f47 LeaveRoomPopup: new text for declining invites 2021-07-26 04:39:57 -04:00
miruka
334065895f Open links keybinds: ignore message mentions
When using the open_links_files(_externally) keybinds on a message,
ignore the URLs that mentions (user ID, username, room ID, room alias)
point to.
2021-07-26 04:39:57 -04:00
miruka
208e08ed2a Shorten reply text for room list last messages
For rooms in the room list, when the last message displayed under the
room name is a reply, change the
"In reply to @foo:example.org: original message... ⏎" text shown
before the actual reply content to just "↩ foo: ".

This lets the user preview the actual interesting part of the message,
instead of a long "In reply to" that takes all the available width.
2021-07-26 04:39:57 -04:00
miruka
20e8a19017 Unify cancel button & escape keybind for pages
AddChat and AccountSettings:

- When clicking the cancel button, if there's no previous back to go
  back to, focus the main pane instead of doing nothing

AccountSettings:

- Always enable the cancel button, not just when the form has been
  modified

AddChat, AccountSettings, ServerBrowser:

- Pressing escape will do the same thing as clicking the cancel button
2021-07-26 04:39:57 -04:00
miruka
01e7a1ac13 Add back button to all pages in thin window mode
In "mobile mode" where main pane is hidden due to application's width:

- Show a back button in the tab bar of the AccountSettings and
  AddChat pages

- Show a back button in the address field (opposite to the "next
  button") of the ServerBrowser, unless there are no accounts added yet
  (application first run) and the main pane would be empty
2021-07-26 04:39:57 -04:00
miruka
46e058f2de Add conveniance HDrawer.normalOrForceCollapse prop 2021-07-26 04:39:57 -04:00
miruka
4925b5a134 Back/FW UI buttons tooltips: shorter & consistency 2021-07-26 04:39:57 -04:00
miruka
fb1de364a6 Change style of "go to ..." arrow icons
Use more pronounced "→" style arrows rather than ">"
2021-07-26 04:39:57 -04:00
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
Matthew Nakama
0a044d1e4f Fix .gitmodules pointing to non-existent repo
It's pointing at a repository that no longer exists, which causes
fetching submodules to fail. This is a simple 2-character fix.
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
a1feb2c046 Update AppImage script to use Python 3.9 packages 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
Maze
4cf3a69a92 Fix broken link in README.md 2021-07-11 13:19:31 -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
ebd15a0152 README.md: update implemented features list 2021-03-03 17:14:57 -04:00
miruka
1a5b40970f Add 0.7.0 known flatpak issues to changelog 2021-03-03 17:14:57 -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