Age | Commit message (Collapse) | Author |
|
|
|
|
|
Unified *Key -> *KeyL identifiers in roommessageevent.cpp along the way.
|
|
|
|
* struct EventRelation; class ReactionEvent; Room::relatedEvents()
* Reaction events are processed in both history and sync batches
* Redacting a reaction removes it from the list of related events
* QMCTest::sendReaction()
|
|
|
|
|
|
Also: refactoring to streamline state events submission.
|
|
A few places in the library dealt with state events without any notion
of state_key inside events, including StateEvent[Base] and relevant
functions in Room. A number of workarounds have been made; e.g.,
Room::setMemberState() accepted userId as a separate parameter, ignoring
the state key inside the RoomMemberEvent already passed to it, and
Room::setLocalAliases() had a bug in the initial version where the
function still tried to pass aliases in an event with an empty state
key. This commit fixes this shortcoming: StateEventBase now gets
stateKey as one more parameter, Room::Private::getCurrentState()
respects stateKey and returns properly constructed stub events, and
Room::setMemberState() gives way to a more generic Room::setState() that
works uniformly with whatever state event you pass to it.
|
|
Closes #301.
|
|
# Conflicts:
# CMakeLists.txt
# lib/avatar.cpp
# lib/connection.cpp
# lib/connection.h
# lib/connectiondata.cpp
# lib/csapi/account-data.cpp
# lib/csapi/account-data.h
# lib/csapi/capabilities.cpp
# lib/csapi/capabilities.h
# lib/csapi/content-repo.cpp
# lib/csapi/create_room.cpp
# lib/csapi/filter.cpp
# lib/csapi/joining.cpp
# lib/csapi/keys.cpp
# lib/csapi/list_joined_rooms.cpp
# lib/csapi/notifications.cpp
# lib/csapi/openid.cpp
# lib/csapi/presence.cpp
# lib/csapi/pushrules.cpp
# lib/csapi/registration.cpp
# lib/csapi/room_upgrades.cpp
# lib/csapi/room_upgrades.h
# lib/csapi/search.cpp
# lib/csapi/users.cpp
# lib/csapi/versions.cpp
# lib/csapi/whoami.cpp
# lib/csapi/{{base}}.cpp.mustache
# lib/events/accountdataevents.h
# lib/events/eventcontent.h
# lib/events/roommemberevent.cpp
# lib/events/stateevent.cpp
# lib/jobs/basejob.cpp
# lib/jobs/basejob.h
# lib/networkaccessmanager.cpp
# lib/networksettings.cpp
# lib/room.cpp
# lib/room.h
# lib/settings.cpp
# lib/settings.h
# lib/syncdata.cpp
# lib/user.cpp
# lib/user.h
# lib/util.cpp
|
|
[ci skip]
|
|
|
|
|
|
Clients should not need to call this method explicitly.
|
|
|
|
Closes #299. Due to restrictions for the NOTIFY signal notificationCountChanged and highlightCountChanged no more carry Room* as a parameter, breaking back-compatibility.
|
|
So that it can be called from QML code
|
|
|
|
Closes #268.
|
|
postHtmlText becomes just a synonym for 2-arg postHtmlMessage (hopefully
at least this doesn't confuse QML that is generally terrible at
resolving overloads).
|
|
|
|
|
|
|
|
|
|
Closes #236.
|
|
|
|
Don't use distinct items for each type of event; only for repeated/
combinable ones.
|
|
Initial (sans power levels checking) implementation of the check that
room should be upgraded. Closes most of #236.
|
|
A signal emitted when the room receives a tombstone event from the
server.
|
|
Use RoomCreateEvent and RoomTombstoneEvent in the backend, covering most
of #235.
|
|
Mirroring Connection::loadedRoomState but for each single room (will be
used as a NOTIFY signal for one-time-set events).
|
|
|
|
|
|
|
|
Also: const'ified other methods related to file urls.
|
|
Also: use constructors instead of list-based initialisation in FileTransferPrivateInfo to enable a case of "invalid/empty" FileTransferPrivateInfo with status == None.
|
|
|
|
|
|
|
|
Commit fd52459 introduced a regression rendering the cache unusable
after a client restart (an empty state overwrites whatever state was in
the cache). This commit contains the fix, along with more room change
tracking.
|
|
|
|
|
|
|
|
This allows to batch updates into signals being emitted only once per
sync. Also supercedes emitNamesChanged flag used in a few places.
|
|
SyncData now resides in its own pair of files and is capable to load either from file or from JSON. There is also (yet untested) capability to load rooms from files if a file name stands is the value for a given room id. This allows to store the master cache file separately from cache files for each room, massively easing the problem of bulky accounts that can overflow the poor capacity of Qt's JSON engine.
|
|
|
|
Also: make moveEventsToTimeline() always put historical events from
position -1 rather than 0 so that Private::baseState could always
correspond to the before-0 position.
|
|
- registerEventType(): comment the cryptic _ variable
- Room::postEvent: document the return value
- Room::Private: upgrade comments to doc-comments - even though in Private, they still are helpful to show hints in IDEs.
- General cleanup
|
|
No-order is already modelled with the other overload, and Omittable<>
breaks interfacing with QML.
|