The width of the images weren't taken into consideration to calculate
the message xOffset, resulting in these messages being pushed way past
what they should be and looking very thin
Replace broken old utils.debug(...) (since the utils.js → Utils.qml
transition) with a declarative approach:
a console can now be opened with by placing a `DebugConsoleLoader {}`
anywhere.
mainUI has a default console opened by F1/alt-shit-c when no other
console is loaded.
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.
When a .js module is used, every single file that imports it creates
its own duplicated environment in memory for that module.
Instead, use a simple QtObject with all the functions, and declare it in
Window.qml so that it is available to all children everywhere in the
app.
- Fix the ListView not auto-scrolling like it should when message
delegates changed height, such as when images were loaded
- Fix messed up delegate positions overlapping each others when
movements happen
- Fix previous/nextItem binding broken due to imperative modification
- Fix "messageBodyWidth" binding loop
When a message image is clicked in an encrypted room, the full file will
be download (no GUI indication for now, just a print in terminal) and
opened when ready.
Before downloading, copying the image address via right click will put
the full image mxc:// URL in clipboard. After downloading, it will be
the local downloaded image path instead.
- Messages should now always be in the order they were sent in when
sending from multiple accounts to a same slow room
- Fixed dead lock that occured when sending a message
from account A, then from account B, then from account A, in a
room slow enough so that all of them would be in local echo transition
at the same time.
When selecting a random client for get_profile(), thumbnail(), or
download() requests, ignore those that aren't currently syncing.
Also warn if we still can't find a healthy client after 30s.