miruka
f8fe5d812b
Imrpove redacted events text
2020-04-03 07:53:36 -04:00
miruka
6d270029ad
Remove message keybind: don't bind ctrl+del
...
Ctrl+Del has a special function for deleting words in text, don't
override that
2020-04-03 07:53:36 -04:00
miruka
5ea339ea33
Add keybinds for message removal
2020-04-03 07:53:36 -04:00
miruka
05319af858
Redaction code adjustments + theme addition
2020-04-03 07:53:36 -04:00
vSLG
e60a7f6dac
Make "Remove" option conditional in context menu
...
Refactor code in the backend so things can work
better
2020-04-03 07:53:36 -04:00
vSLG
fc878e7537
Fix event redaction and remove junk code
2020-04-03 07:53:36 -04:00
vSLG
db1afc980e
Add RedactionEvent support on backend
2020-04-03 07:53:36 -04:00
vSLG
b3f1075507
Add redacting event via context menu
2020-04-03 07:53:36 -04:00
miruka
f838bdf96d
focusRoomAtIndex binds: default to cmd+num on OSX
2020-04-03 07:53:36 -04:00
miruka
6e63569ad7
Add leaveRoom and forgetRoom keybinds
2020-04-03 07:53:36 -04:00
miruka
2a648d7f59
Add invite to room keybind
2020-04-03 07:53:36 -04:00
miruka
22be0bf5f0
MIRAGE_CONFIG_DIR and MIRAGE_DATA_DIR env vars
...
Allow overriding the default path where config files and user data are
found
2020-04-03 07:53:36 -04:00
miruka
eafd65d490
Fix compact mode being enabled by default
2020-03-28 11:04:43 -04:00
miruka
4185a30a6e
theme_parser: translate hard tabs to spaces
2020-03-28 07:48:27 -04:00
miruka
311a53f8f4
"Unselect" → "Deselect"
2020-03-27 07:06:38 -04:00
miruka
4c76ffd88b
Bump version to v0.4.2
2020-03-27 05:40:23 -04:00
miruka
936c49127d
Add keyboard controls for message focus/selection
2020-03-27 04:49:01 -04:00
miruka
6ca10e1f2b
Customizable unselectAllMessage keybind
2020-03-27 03:53:25 -04:00
miruka
684ddd364c
Don't ignore case when linkifying display names
2020-03-24 04:12:09 -04:00
miruka
3dc81700c1
Correct mailto: linkifying in some special cases
...
adresses where the host ends with a digit or where the host is only one
character
2020-03-24 04:08:00 -04:00
miruka
0e191f11d0
Member ev. processing: don't assume any key exists
2020-03-24 03:56:31 -04:00
miruka
be43f68059
Support $id:server message ID mentions
2020-03-23 17:17:15 -04:00
miruka
bed0dbf998
Add setting to ignore unknown events
2020-03-23 16:58:31 -04:00
miruka
bd53993b90
Ignore mention links with no text
2020-03-23 16:34:51 -04:00
miruka
2e6488e6f9
Bump version to v0.4.1
...
Changelogs:
Added:
- `hideMembershipEvents` setting in config file, controls whether
events such as "x joined the room" are shown in the timeline
- `hideProfileChangeEvents` setting in config file, controls whether
display name and avatar change events are shown in the timeline
- Compact mode to make accounts, rooms, messages and room members
take only one line as well as reducing vertical spacing between them.
Set by the new `compactMode` setting in config file, and can also
be toggled with the `keys.toggleCompactMode` keybind which defaults
to Alt+Ctrl+C
- `keys.focusRoomAtIndex` in config file, a
`{"<index>": "<keybind>"}` mapping which by default binds
Alt+1-9 and Alt-0 to focus room 1 to 10 in the current account
- User ID, display names, room ID and room aliases are now
automatically transformed to matrix.to links and will be rendered
as mentions by clients.
In Mirage, this results in user ID/names being colored with the
same color seen when they send messages
- Track the number of times your user was mentioned in rooms.
The visual counter is not yet displayed, since there currently is
no way to mark messages as read and make the counter go down
Fixed:
- Python exceptions occuring in the asyncio loop not being printed
in the terminal
- Extra newline shown after code blocks in messages
- Constant CPU usage due to button loading animations still being
rendered while uneeded and invisible
Theme changes:
- Added `controls.avatar.compactSize` property
- Added `.mention` class styling to `chat.message.styleSheet`
2020-03-23 15:06:57 -04:00
miruka
38e57d2ff9
Color user mentions in local echoes too
2020-03-23 14:23:32 -04:00
miruka
4fdf531631
Fix mention-related KeyError in message callback
2020-03-23 13:43:30 -04:00
miruka
688f36b7f1
Event: add [(text, link)] mentions attributes
2020-03-23 15:39:14 -04:00
miruka
8e7cd7bde9
Add data-mention attributes to mention links
2020-03-23 15:23:01 -04:00
miruka
3084745522
Remove extra newline from <pre> elements
2020-03-23 15:11:29 -04:00
miruka
a20cfcffe5
Add special CSS classes to mention links
2020-03-23 15:02:31 -04:00
miruka
ef2504ecae
Visual unread mentions counter
2020-03-22 23:55:48 -04:00
miruka
367fff8f4a
Fix mentions incorrectly linked for outgoing html
2020-03-22 23:00:30 -04:00
miruka
8d5bc45ceb
Safer linkifying for user display names
2020-03-22 20:58:05 -04:00
miruka
8fd7ce4e14
Safer linkifying for user ID, room ID, room alias
...
Don't replace anything in already existing links or <code>.
2020-03-22 19:40:43 -04:00
miruka
2fbfac5e0d
Proper user ID, name, room ID, alias linkifying
2020-03-22 17:38:28 -04:00
miruka
f858e505a6
Linkify typed usernames/id in markdown
2020-03-22 16:21:29 -04:00
miruka
9f52fa86fa
Add Alt+1-0 keybinds to switch to a room at index
2020-03-22 14:08:27 -04:00
miruka
53dfd08131
Add toggleCompactMode keybind, re-rename setting
2020-03-22 13:30:03 -04:00
miruka
18c16ca486
Rename compact mode setting → compactModeByDefault
2020-03-22 13:24:38 -04:00
miruka
5d513f84fa
Add compact mode for sidepanes + setting
2020-03-22 12:50:51 -04:00
miruka
c6390238a9
Add settings to hide membership and profile events
2020-03-22 12:04:43 -04:00
miruka
f13327b073
Config files loaded data accessible from Python
2020-03-22 12:01:22 -04:00
miruka
f54075b7e0
Improve default device name
...
The number returned by platform.version() is only meaningful in a
long-time scenario on Windows. Also make the function clearer.
2020-03-21 23:39:57 -04:00
miruka
2dd275c618
Update minimum Pillow requirement to 7.0.0
...
- Includes fix for security issue CVE-2019-16865 before 6.2.0
- Default rescale algorithm is now bilinear, or nearest for palette
images. No need to pass lanczos on our own.
2020-03-21 18:56:47 -04:00
miruka
d0a19852b7
generate_thumbnail: Catch+log any kind of error
2020-03-20 13:51:32 -04:00
miruka
4ab25ada43
AppImage improvements and fixes
...
- No need to build manually the olm python 3 bindings, pip does it
- make clean in mirage dir if possible, since having build/ files from a
compiling that happened from another distro can make the process fail
- Save linuxdeployqt and appimagetools outside of the mirage repo
- Lint the AppDir with the script from pkg2appimage
- From python, restore LD_LIBRARY_PATH, PYTHONHOME and PYTHONUSERBASE to
their original values. The AppRun laucher overwrites them to properly
launch the program, but it affects external programs too launched e.g.
when user clicks a link.
2020-03-18 19:12:38 -04:00
miruka
8692aa4a26
Change some default keybinds to make more sense
...
toggleFocusMainPane: Alt+S → Alt+F
clearRoomFilter: Alt+Shift+S → Alt+Shift+F
addNewAccount: Alt+Shift+N → Alt+Shift+A
addNewChat: Alt+N → Alt+C
sendFile: Alt+F → Alt+S
sendFileFromPathInClipboard: Alt+Shift+F → Alt+Shift+S
2020-03-17 17:11:10 -04:00
miruka
3568abb9af
Rename keybind focusMainPane → toggleFocusMainPane
2020-03-17 16:55:16 -04:00
miruka
53bace3915
Add keybind to toggle room pane focus
2020-03-17 16:52:14 -04:00
miruka
b092cc11eb
Add room header buttons to access sidepanes
2020-03-17 16:52:11 -04:00
miruka
5392016dab
Add setting controlling when panes should collapse
2020-03-17 15:38:54 -04:00
miruka
e4d47b9b9c
Ensure we don't atomically write an empty file
2020-03-17 12:09:08 -04:00
miruka
c969a98f30
Clear the last event date when clearing room msgs
2020-03-16 12:36:39 -04:00
miruka
992719554f
Log the involved user id in sync failures
2020-03-16 00:31:31 -04:00
miruka
cada86a05f
Log server sync errors as warnings instead
2020-03-15 19:08:12 -04:00
miruka
faaa5933d4
Fix local echo
2020-03-15 19:08:12 -04:00
miruka
8a99ccd976
Make retry_decrypt_events() work for good
2020-03-15 19:08:12 -04:00
miruka
adbe2d88ee
Fix dict changing size problem in retry_decrypt_..
...
Also add a copy() method to models, and make them able
to not have a sync_id (in which case they won't send pyotherside
events).
2020-03-15 19:08:12 -04:00
miruka
73d54b5788
Don't show CancelledError when logging out early
2020-03-15 19:08:12 -04:00
miruka
25101578cc
Fix retry_decrypting_events()
2020-03-15 19:08:12 -04:00
miruka
4d2345f4b9
Fix JsonDataFile default file loading
2020-03-15 10:26:53 -04:00
miruka
f507523af6
Fix default theme retrieval mess
2020-03-14 22:20:41 -04:00
miruka
cc3bb3c4fd
Fix utils.py import for Python 3.6
2020-03-14 17:32:05 -04:00
miruka
190eb58187
Write user files and media atomically
2020-03-13 04:36:22 -04:00
miruka
9d3e2dbfc4
Fix quotes in room subtitles
2020-03-13 03:55:04 -04:00
miruka
7e5896f52b
Fix MediaCache asyncio Semaphore early import bug
2020-03-13 02:46:21 -04:00
miruka
ca53e18e24
Add main pane top bar, improve readability
2020-03-12 22:16:33 -04:00
miruka
a6315f7829
Fix default theme path with QRC
2020-03-12 16:46:44 -04:00
miruka
77d877047b
Update docstrings
2020-03-12 14:41:00 -04:00
miruka
9bad0132d6
Make upload cancelling instant without visual hack
2020-03-12 13:28:30 -04:00
miruka
e8d4823227
Unset parent_model when deleting item in model
2020-03-12 13:28:30 -04:00
miruka
59296dd22c
Change name and bump version
2020-03-10 10:41:27 -04:00
miruka
298ab30672
Read theme in app dir if doesn't exist in user dir
2020-03-10 09:51:51 -04:00
miruka
264c2ab16b
Rename themes
2020-03-10 09:48:51 -04:00
miruka
49966e06ad
Fix Transfer.time_left that could be None
2020-03-09 17:36:47 -04:00
miruka
f9f558cd34
Fix Thumbnail.from_bytes()
2020-03-09 17:33:07 -04:00
miruka
24180fc346
GUI-report important errors that occur during sync
...
Important = "isn't a server 5xx error"
2020-03-09 13:08:09 -04:00
miruka
46f3f15694
Fix cached thumbnails extensions
2020-03-09 12:10:04 -04:00
miruka
7ee83c5fe4
Downloaded files: include title + ext in filename
2020-03-09 11:46:08 -04:00
miruka
048c1ddabf
Reject files too large before attempting to upload
2020-03-09 10:23:08 -04:00
miruka
382235875c
Upload thumbnails with the correct extension
2020-03-09 10:10:21 -04:00
miruka
2307d5f1b2
Fix thumbnail uploading for SVG files
2020-03-09 10:03:22 -04:00
miruka
61cc87cf18
Show max file size on upload button tooltip
2020-03-09 09:57:53 -04:00
miruka
0fa16400df
Error msg for bad invites in non-federated room
2020-03-09 07:59:23 -04:00
miruka
c618fb8ba3
Don't upload thumbnail if heavier than original
2020-03-08 08:10:27 -04:00
miruka
e1b26d1ec7
Show thumbnail uploading progress when uploading
2020-03-08 08:05:41 -04:00
miruka
d1e42a72a0
Fix upload pause/cancel
2020-03-08 07:34:38 -04:00
miruka
5709b5b756
Fix local echoed message replaced only for one acc
2020-03-07 12:35:12 -04:00
miruka
ff72983bb4
Don't copy the default theme to userdata dir
2020-02-14 12:21:24 -04:00
miruka
ce0a868579
Refix Event.source, JSONify dicts for ListModel
2020-02-12 14:14:09 -04:00
miruka
9a0969adf5
Fix Event.source for messages we send
2020-02-12 08:10:59 -04:00
miruka
f922204644
Optimize Model insertions (blist + bisect)
2020-02-12 07:43:03 -04:00
miruka
7020706ff1
items.py: rebase fix
2020-02-12 06:27:21 -04:00
miruka
e982de1c61
Make Event.inline_content & links pure attrs
2020-02-12 06:21:43 -04:00
miruka
8a29143b60
Working Event.event_type & source fields
2020-02-12 06:19:49 -04:00
miruka
b992db9bfe
Use typing.TYPE_CHECKING to avoid inner imports
2020-02-12 05:56:18 -04:00
miruka
a653a6160a
Get SortProxyFilterModel stuff working?
...
Came back from a break and forgot what I was fixing
2020-02-12 05:56:18 -04:00
miruka
9990fecc74
Begin yet another model refactor
...
Use native ListModel which require a lot of changes, but should be
much faster than the old way which exponentially slowed down to a crawl.
Also fix some popup bugs (leave/forget).
Not working yet: side pane keyboard controls, proper highlight,
room & member filtering, local echo replacement
2020-01-06 03:41:14 -04:00
miruka
2ce5e20efa
Fix chat creation client methods
2019-12-29 14:30:15 -04:00
miruka
5f3ecef408
Merge branch 'style' into 0.3
2019-12-27 16:35:56 -04:00
miruka
ce733c6641
Catch signal exception when imported from thread
2019-12-27 09:28:46 -04:00
miruka
e7caa0b8ef
Use a C++ implementation of hsluv
2019-12-27 08:23:32 -04:00
miruka
f977d9acf2
GUI popup for uncaught asyncio loop exceptions
2019-12-26 10:17:54 -04:00
miruka
eff64fabd6
Catch any nio.ErrorResponse to raise MatrixErrors
2019-12-26 08:16:04 -04:00
miruka
44e5de02f8
font color → span mx color for outgoing HTML
...
Also remove HTML_PROCESSOR `filter_inline` and `from_markdown_inline`
methods. `filter` and `from_markdown` now take an `inline` argument.
2019-12-22 09:35:21 -04:00
miruka
335d931b0a
Turn markdown color names into hex codes
...
Not all clients may know the same color names or even support them, hex
codes are unambiguous.
2019-12-22 09:35:15 -04:00
miruka
b0d77d74a9
Add custom markdown syntax for coloring text
...
<color>(text to color) where color can be a SVG color name,
3 characters hex or 6 characters hex code.
Can be used to send colored message from the composer. Other clients
that follow the matrix spec should be able to display them (e.g. riot,
even if it can't send them)
2019-12-20 14:44:31 -04:00
miruka
d9b7118f45
load_past_events: raise instead of logging errors
2019-12-20 09:30:57 -04:00
miruka
aaa8411cb9
Room.last_event: be an Event instead of dict
2019-12-19 16:52:21 -04:00
miruka
cdd119405e
backend.py: remove some unused imports
2019-12-19 16:31:01 -04:00
miruka
fb1f9c62e5
Add SPDX ID LGPL v3+ license headers
2019-12-19 07:46:16 -04:00
miruka
a1f89ca9c4
Fix utils.guess_mime / uploading with 0 byte files
2019-12-18 16:52:39 -04:00
miruka
e6541cd767
Document model.py
2019-12-18 16:41:51 -04:00
miruka
1f41e2ffaa
Document Backend attrs, adapt to new ModelStore
2019-12-18 16:24:43 -04:00
miruka
6fa2d91b69
Simplify and document ModelStore
2019-12-18 16:24:25 -04:00
miruka
5f1044e96a
Document model items
2019-12-18 15:00:34 -04:00
miruka
934d6a79a2
Document nio_callbacks.py, small code improvements
2019-12-18 14:24:55 -04:00
miruka
d9b27eff9f
Document media_cache.py
2019-12-18 13:43:31 -04:00
miruka
c6938903b8
Document matrix_client.py
2019-12-18 13:16:15 -04:00
miruka
05a331382e
Improve pyotherside_events.py doc
2019-12-18 10:39:38 -04:00
miruka
d89c83af5b
Document theme_parser.py
2019-12-18 09:50:53 -04:00
miruka
845fa40ed8
Improve docs for utils.py
2019-12-18 09:42:56 -04:00
miruka
d7045644f1
Rename and document html filtering stuff
2019-12-18 09:33:22 -04:00
miruka
cfcc190473
Rename QmlBridge to QMLBridge
2019-12-18 08:49:03 -04:00
miruka
ab46ac15e7
Document errors module
2019-12-18 08:46:36 -04:00
miruka
61cd3b2f55
Rename config_files module → user_files + document
2019-12-18 08:41:02 -04:00
miruka
23be12fb60
Document backend & qml_bridge + minor code changes
2019-12-18 08:14:35 -04:00
miruka
87b262ebee
Move backend.__about__ stuff into __init__
2019-12-18 06:55:05 -04:00
miruka
9e372d01d5
Python backend "App" becomes QmlBridge
...
Is now strictly about setting up asyncio/uvloop and providing the
functions for QML to interact with it and call backend coroutines.
The appdirs attribute is moved to Backend.
2019-12-18 06:44:18 -04:00
miruka
717c5078c7
Move QML Python stuff to its own subfolder
2019-12-18 05:00:27 -04:00
miruka
2bdf21d528
Rename some filers and folder for clarity
2019-12-18 04:45:09 -04:00