miruka
3dd12691b8
Make desktop notifications follow push rules
2021-03-03 17:14:56 -04:00
miruka
86f0a8a6a0
Add warning popup when old settings.json detected
2021-03-03 17:14:55 -04:00
miruka
50d4aae188
Remove unused ExitRequested pyotherside event
2021-03-03 17:14:55 -04:00
miruka
42f04b013e
Add PCN theme system
...
Coexist with the old theme system for now. QML components have to be
updated to use the new system.
2021-03-03 17:14:55 -04:00
miruka
eed2cc4818
Remove double blank lines from QML files
2021-03-03 17:14:55 -04:00
miruka
db12036372
Use new PCN format for settings config file
2021-03-03 17:12:09 -04:00
miruka
75fbf23b21
Refactor user_files module & add live reloading
...
- Cleaner design for the backend user_files classes and simplified
interaction with QML
- Config and theme files will now automatically reload when changed on
disk
- Removed manual reload keybind and button
2021-03-03 17:12:09 -04:00
miruka
da75568428
Fix segfault on coroutine cancelling from QML
...
Since 87fcb0a773f4855cdae7212fa9448a05de57be56, it was possible to call
a Python coroutine, but cancel it (due to parent component destruction)
before Python even has time to start it.
The registred QML callbacks for this coro would then be called,
potentially causing a segfault if that callback tried to access the
parent component or its properties.
2021-03-03 17:12:09 -04:00
miruka
f682e0e261
Fix onLoopException calling showError incorrectly
2021-03-03 17:12:09 -04:00
miruka
ee1091b4dc
Don't pass Python Future objects to QML
...
Returning a Future doesn't work on Windows for some reason
(https://github.com/thp/pyotherside/issues/116 ).
Instead of using these objects from QML to cancel running coroutines,
call a Python QMLBridge function that takes a coroutine UUID and will
take care of the cancelling.
2021-03-03 17:12:08 -04:00
miruka
1df7cb8014
Add copyright header to source code files
...
Copyright notice as per
https://reuse.software/spec/#format-of-copyright-notices
Fixes #134
2021-03-03 17:12:08 -04:00
miruka
54234399f5
Fix "Mentions & keywords" notification level
...
Make it work in cases where multiple accounts are present in the room
and one of them is highlighted.
2021-03-03 17:12:08 -04:00
miruka
e8d8f7fe0b
Add global notification control icon in top bar
...
The "Mentions & keywords only" option doesn't work yet in multi-account
cases: when notifications arrive for a room that multiple accounts are
part of, the first notification to arrive is let through, and the
duplicate later ones are ignored. The first notification to arrive may
not be from the account that gets highlighted, thus it is ignored under
the "Mentions & keywords" setting.
2021-03-03 17:12:08 -04:00
miruka
94a623f677
Print coro infos on get_client not found error
2021-03-03 17:12:08 -04:00
miruka
dcc3473ecf
Don't show notification if window is focused
2021-03-03 17:12:08 -04:00
miruka
7b6478f514
Correctly handle account with invalid access token
...
Show a popup saying the session was signed out and cleanup
the models data, instead of spamming the users with
never-ending errors.
2020-09-04 11:25:29 -04:00
miruka
3c9895b0b2
Fix EventHandlers.onModelCleared callback
2020-09-04 10:58:04 -04:00
miruka
f5cb3ecaa0
Keep a {id: item} cache for ModelStore models
...
Accelerates the ModelStore ListView find() function,
which now just has to get an object key instead of looping through the
whole model.
2020-09-02 13:38:11 -04:00
miruka
cc7c0ad336
Add theme property to Utils
...
Gets set to the window.theme when a theme is loaded, done to avoid
having to refer to the window object from utils.
2020-08-03 01:29:37 -04:00
miruka
a389238024
Add window.makePopup(), utils.makePopup() wrapper
2020-08-03 01:26:35 -04:00
miruka
c813e92ac7
Move hideErrorTypes & showError() to PythonBridge
2020-08-03 01:19:08 -04:00
miruka
3c7b78d4ca
Reorder QML files to follow coding conventions
...
https://doc.qt.io/qt-5/qml-codingconventions.html#qml-object-declarations
2020-07-12 01:27:44 -04:00
miruka
963b022f3d
Reload member device list when they change
2020-07-10 13:14:17 -04:00
miruka
8771ae2aae
Ignore EventHandlers members not starting by "on"
2020-07-10 13:14:17 -04:00
miruka
76f0c5626f
Separate window urgency hint setting for mentions
2020-06-02 21:42:16 -04:00
miruka
5ae71cb7ce
Work around ModelStore binding loop
2020-05-21 01:26:12 -04:00
miruka
084133af49
Make py.pendingCoroutines accessible for debugging
2020-05-15 20:56:23 -04:00
miruka
8c8a58fb07
Remove superfluous private PythonBridge stuff
2020-05-15 20:56:23 -04:00
miruka
7aa0e7fad6
Remove 429 workaround (fixed in nio #138 )
2020-05-15 20:56:23 -04:00
miruka
f4dca1c2c9
Fix SyncId type hint & remove debug prints
2020-05-15 20:56:23 -04:00
miruka
c502aa4245
Add model batch removal optimization for filtering
2020-05-15 20:56:23 -04:00
miruka
2bb13bf7f7
HStringFilterModel: Refilter when field changes
2020-05-15 20:56:23 -04:00
miruka
01adcff77e
Reduce the number of room delegate errors
2020-05-15 20:56:23 -04:00
miruka
fd8cf4ad8d
Optimize model field replacements
2020-05-15 20:56:23 -04:00
miruka
2cbedaa892
HLoader as room delegates test
2020-05-15 20:56:23 -04:00
miruka
1adbddc063
Enable member lazy-loading for /sync and /messages
2020-05-15 20:56:23 -04:00
miruka
379a851a62
alertOnMessageForMsec: correctly handle 0 value
...
If 0: don't show any alert
If -1: show alert indefinitly until user focuses the window
2020-03-24 11:31:32 -04:00
miruka
b1144572aa
Fix loop exceptions not printed in terminal
2020-03-22 20:58:24 -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
7fd41f3eb4
QML Utils.showError() function
2020-03-15 19:08:12 -04:00
miruka
630e011cfd
HMxcImage: cancel media retrieval on destruction
2020-03-13 02:52:38 -04:00
miruka
49966e06ad
Fix Transfer.time_left that could be None
2020-03-09 17:36:47 -04:00
miruka
2a2b3df845
Utils.urlExtension: don't lowercase returned ext
2020-03-09 11:00:48 -04:00
miruka
cdb79d11aa
Use const instead of let when possible
2020-03-08 04:46:20 -04:00
miruka
606e8a25df
PythonBridge: minor code improvements
2020-03-08 04:27:43 -04:00
miruka
5709b5b756
Fix local echoed message replaced only for one acc
2020-03-07 12:35:12 -04:00
miruka
ae780345e8
Make "Filter members" work again
2020-02-12 08:15:54 -04:00
miruka
9a0969adf5
Fix Event.source for messages we send
2020-02-12 08:10:59 -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