Age | Commit message (Collapse) | Author |
|
The previous one didn't cover all the cases; the current one seems to do. Closes #192. Accompanied by the developer's notes at: https://github.com/QMatrixClient/libqmatrixclient/wiki/unread_count
|
|
|
|
...where deque<>::difference_type is long rather than int.
|
|
|
|
isDirectChat() has been declared previously but not implemented, hence a
bit of strangeness in the commit.
|
|
Receiving and caching m.direct (and other non-room account data along the way); Connection::addToDirectChats/removeFromDirectChats (might get siblings in Room eventually but not now), Connection/User::requestDirectChat. Closes #163.
|
|
|
|
QHash doesn't overwrite an entry if it already exists; this might lead to the target file name from the previous transfer kept in the table of file transfers. The commit fixes that.
|
|
|
|
Closes #191.
|
|
Closes #184.
|
|
|
|
Closes #183. There's also the m.read part but it can be done sometime later, as it's pure optimisation.
|
|
|
|
Slightly changed TagRecord constructors to match.
|
|
|
|
tagevent.h -> accountdataevents.h now has a macro to define more
simplistic events along the lines of simplestateevents.h but inheriting
from Event instead. TagEvent and ReadMarkerEvent(m.fully_read) are
defined using this macro. ReadMarkerEvent is also wired through event.*
(but not further yet).
|
|
Closes #152. Saving of specific event types should be added separately.
|
|
Now that we're on Qt 5.6 we can afford brace-initialization of those objects.
|
|
QtCreator
|
|
Closes #134.
|
|
Closes #177.
|
|
|
|
Closes #134.
|
|
Previously it was just an "Empty room" name, now it's "Invitation from
%1".
|
|
Enables to address QMatrixClient/Quaternion#284. Also fixes a gibberish condition in Room::Private::renameMember() that led to improper warnings and a too early return.
|
|
User::Private stores two new maps (for display names and avatars respectively) and is able to retrieve and store names/avatars on a per-room basis. The "most used" trait is stored separately and room lists are not kept for it (because most people have a single name and a single avatar across all or most rooms).
TODO: The avatar container should be replaced with something less clumsy; the current code doesn't even compile with MSVC. A "handle" copyable structure that would hold the Avatar is one of options.
Closes #141.
|
|
Room::user() came instead of Room::Private::member() and memberJoinState() came instead of Private::hasMember.
|
|
Although the setting part of the work is class(User or Room)-specific, the uploading part is common, so Avatar provides it now.
Also: there's no need to store Connection, as it's only used in get() and upload() - just pass it as the parameter to the methods.
|
|
Closes #168.
|
|
Closes #287.
|
|
|
|
Works (at least, should work) with both Qt Widgets and QML.
|
|
Closes #161. Doesn't make GCC 4.9.2 officially supported but libqmatrixclient can be compiled with it as of now.
|
|
|
|
User::fullName() is used in Room::roomMembername now. That string
construction may be further cached now if it ever becomes a bottleneck.
|
|
To make it easy to use User objects and fetch room and user avatars from QML. Closes #155.
|
|
To make debugging (including QML debugging) more convenient.
|
|
This is needed for QML integration. Closes #155.
|
|
Causes a cache version upgrade; the old cache stores the state in an
incorrect place that won't be supported. Closes #159.
|
|
|
|
Read marker auto-promotion may be bound to a dataChanged() signal in the
client model, while a routine connection for addedMessages() is
endInsertRows(). Emitting endInsertRows() after dataChanged() over the
same rows has unpredictable consequences for representation of data in
those rows - hence the fix.
|
|
|
|
|
|
|
|
Closes #151.
|
|
This code is useful for all clients, and extensions to pretty-printing
can be later added either via making prettyPrint() virtual or even by
providing a registry of additional "text transformers" or even "event
content renderers" applied to visualise the event.
|
|
|
|
|
|
working
The sequence is: RoomMessagesJob::success -> addHistoricalMessageEvents
-> MessageEventModel notification -> QML notification about model reset
-> MessageEventModel completes updating -> QML updates from the model
but by then scrolling has already stopped at the oldest (just loaded)
event -> since there's no momentum, next batch is not fetched. In order
to address this, two things are done: in QML, the current position is
checked in modelReset() handler; in Room (this commit), prev_batch is
updated before historical messages are added (and the model gets
notified, respectively), to prevent firing another job with the old
prev_batch.
|