- Take a custom container callable for ListModel __init__ (defaults to
list, must be a MutableSequence)
- Use a Deque for roomEvents, which is much faster for inserting
new items at the beginning.
Qt somehow handles scrolling on new messages on its own when the
ListView direction is bottom to top.
In normal top to bottom, manual scrolling is completly buggy.
Replace the "reloadThis" ListModel hack by an actual signal,
works when the subtitle is displayed in more than one place
(e.g. two accounts in the same room connected).
Prevent ListModel items from being deleted on the C++ side (specially
when using .get() from QML and a new ListModel is created)
by setting their parent to the ListModelMap.
- Fix roomList height again, now based on model.count().
All delegates are assumed to be the same height
- Properly update room list when a room is joined or left
- Catch exceptions happening in threads (futures), which previously
passed silently
- Show "Empty room?" as "<i>Empty Room</i>" + gray [?] avatar
To make the models update correctly in QML:
- ListModel and _QtModel merged
- Return a ListModelMap QObject from properties instead of
a DefaultDict → QVariantMap
- Started work on the matrix-nio backend, which will be used instead
of matrix-python-sdk for greater control and cleaner design
- Have an Application (QGuiApplication) class to habdle argument parsing
and setting some Qt properties like application name
- Accordion design for accounts and rooms (not finished)
- Toolbar and account/room lists reduce correctly, buttons become
hamburger menu if not enough width
- Can set status using the "Set status message" account fields
- Uniformized avatar sizes for sidePane, roomHeader and SendBox