Commit Graph

76 Commits

Author SHA1 Message Date
miruka
63af4be1e2 Defer fetching user profiles for events
Previously, events for which the sender, target (state_key) or remover
was missing from the room members would have their profile fetched
from network when registering the event into models.

This could cause very slow past events loading times for rooms, since
the event registering function (which contained the profile retrieval
directives) is run sequentially event-by-event.

Missing profiles are now lazy-loaded when events come into the
user's view in the QML timeline.
2020-05-20 03:42:40 -04:00
miruka
9b5b3a9f06 Support a order key for accounts in config 2020-05-15 20:56:23 -04:00
miruka
eff203032c Python implementation of account collapsing 2020-05-15 20:56:23 -04:00
miruka
97fdc214dd No need for special model attributes in Backend 2020-05-15 20:56:23 -04:00
miruka
37a9332aed Python filtered models for room members 2020-05-15 20:56:23 -04:00
miruka
200f25d23e Python filter for AccountsBar 2020-05-15 20:56:23 -04:00
miruka
5432958121 Working python proxy/filter for room list 2020-05-15 20:56:23 -04:00
miruka
9f7d30f248 Add account total unread/mentions indicator 2020-05-15 20:56:23 -04:00
miruka
0a1834b763 Mark rooms as read on all our accounts 2020-05-15 20:56:23 -04:00
miruka
b2cfc27ce2 accounts.json: support new "enabled" key
Specifying false will cause Mirage to ignore an account and not
log it in on startup.
Defaults to true when adding new accounts or if not present.
2020-05-15 20:56:23 -04:00
miruka
ca53e18e24 Add main pane top bar, improve readability 2020-03-12 22:16:33 -04:00
miruka
77d877047b Update docstrings 2020-03-12 14:41:00 -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
b992db9bfe Use typing.TYPE_CHECKING to avoid inner imports 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
e7caa0b8ef Use a C++ implementation of hsluv 2019-12-27 08:23:32 -04:00
miruka
eff64fabd6 Catch any nio.ErrorResponse to raise MatrixErrors 2019-12-26 08:16:04 -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
1f41e2ffaa Document Backend attrs, adapt to new ModelStore 2019-12-18 16:24:43 -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
2bdf21d528 Rename some filers and folder for clarity 2019-12-18 04:45:09 -04:00