aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2019-03-31Room: track invited users; polish the room naming algorithmKitsune Ral
It's no more entirely along the spec lines but gives better results with or without lazy-loading, across a wide range of cases. Closes #310.
2019-03-31Room::updateData(): recalculate room name only when state changes occurKitsune Ral
2019-03-31Room::refreshDisplayName() - for debugging purposes onlyKitsune Ral
Clients should not need to call this method explicitly.
2019-03-31User::nameForRoom(): null hint is not a hintKitsune Ral
This caused the library to erroneously believe that users with no representation in other rooms have no display name even if that display name is provided for the given room.
2019-03-30Connection: make sure to mark rooms supposed to be direct chats as suchKitsune Ral
Closes #305. Relies on correct tracking of Invite membership from the previous commit.
2019-03-30Room::processStateEvent, User: take the previous membership state from ↵Kitsune Ral
oldStateEvent memberJoinState() just happens to return the not-yet-updated state, making its use around state changes very sensitive to moving things around. The event's own prevContent is unsigned, therefore untrusted.
2019-03-30Room::processRedaction(): avoid accidental creation of entries in ↵Kitsune Ral
currentState; cleanup
2019-03-27Connection::domain()Kitsune Ral
2019-03-26Room::switchVersion(): refuse to switch a version if a tombstone is already ↵Kitsune Ral
there Closes #306.
2019-03-26Room::canSwitchVersions(): return false on tombstoned roomsKitsune Ral
A softer take on #306.
2019-03-24Expose linkifyUrls() into library API for future useKitsune Ral
2019-03-24User: strip RLO/LRO markers on renaming as wellKitsune Ral
Continuation of work on #545.
2019-03-24RoomMemberEvent: sanitize user display namesKitsune Ral
MemberEventContent::displayName() will strip away Unicode text direction override characters. Direct access to JSON can still provide "raw" data.
2019-03-24linkifyUrls(): fix linkification of emails containing "www."Kitsune Ral
Closes #303.
2019-03-23Room::downloadFile(): Tighten URL validationsKitsune Ral
Check the URL before passing over to Connection::downloadFile(), not only the file name.
2019-03-23Update to the latest CS API definitionsKitsune Ral
No breaking changes; GetAccountDataJob/GetAccountDataPerRoomJob added.
2019-03-21Room::displayName: fix NOTIFY signal for Q_PROPERTYKitsune Ral
2019-03-14Fix read receipts and redactions on v3 roomsKitsune Ral
Previously slashes in eventIds (that come plenty in v3 due to base64 encoding) were not properly encoded - they are now.
2019-03-13Room: make notificationCount, highlightCount Q_PROPERTYsKitsune Ral
Closes #299. Due to restrictions for the NOTIFY signal notificationCountChanged and highlightCountChanged no more carry Room* as a parameter, breaking back-compatibility.
2019-03-12Make Room::prettyPrint Q_INVOKABLEKitsune Ral
So that it can be called from QML code
2019-03-10Room::checkVersion(): be tolerant to already upgraded roomsKitsune Ral
2019-03-02style: apply .clang-format to all .cpp and .h filesMarc Deop
2019-02-27Connection::stopSync: undo the sync loopKitsune Ral
2019-02-27BaseJob::abandon() fixesKitsune Ral
1. It should work with non-started jobs now (Closes #289). 2. It should allow clients to still handle `finished()` instead of cutting them off right before emitting the signal.
2019-02-26Room::avatarObjectKitsune Ral
Closes #268.
2019-02-26Linkify Matrix identifiersKitsune Ral
This is a crude interim implementation until we get new fancy Matrix URIs.
2019-02-26prettyPrint(): only linkify http(s), ftp, mailto, magnet linksKitsune Ral
Closes #278.
2019-02-26Room: avoid dangling pointers, even if not dereferencedKitsune Ral
Closes #288; fixes one more case similar to #286. Also: disconnect file transfer signals correctly in Room::postFile.
2019-02-26Merge pull request #287 from a-andreyev/aa13q-fix-5.6-build-qhashKitsune Ral
Fix Qt<5.7 build for std::hash<StateEventKey>
2019-02-26Room::addNewMessageEvents: fix possible use of an invalid iteratorKitsune Ral
Closes #286.
2019-02-25Have a build-wide macro for compilers that don't handle init-lists rightKitsune Ral
WORKAROUND_EXTENDED_INITIALIZER_LIST -> BROKEN_INITIALIZER_LISTS is available from util.h now.
2019-02-25RoomMessageEvent: support m.in_reply_to (not spec-compliant yet); optimise ↵Kitsune Ral
away TextContent when not needed 1. The spec says "if you support rich replies you MUST support fallbacks" - this commit only adds dealing with event JSON but not with textual fallbacks. 2. TextContent is only created if there's something on top of plain body (an HTML body or a reply).
2019-02-25Room::postHtmlMessage: default message type to m.textKitsune Ral
postHtmlText becomes just a synonym for 2-arg postHtmlMessage (hopefully at least this doesn't confuse QML that is generally terrible at resolving overloads).
2019-02-25makeRedacted: update the list of preserved partsKitsune Ral
Closes #256.
2019-02-24Fix Qt<5.7 build for std::hash<StateEventKey>Alexey Andreyev
2019-02-24Merge branch 'kitsune-aliases-map'Kitsune Ral
2019-02-23Remove the 'pretty' SupportedRoomVersion vector debug operatorAlexander Akulich
This way we conform with Qt standard debug output and do not rely on a Qt private API. This also fixes compilation for Qt < 5.7.
2019-02-22Room::setAliases, Connection: roomByAlias, updateRoomAliasesKitsune Ral
2019-02-22Merge remote-tracking branch 'remotes/origin/kitsune-simpler-simple-content'Kitsune Ral
2019-02-20BaseJob: M_UNSUPPORTED_ROOM_VERSION & M_INCOMPATIBLE_ROOM_VERSIONKitsune Ral
2019-02-19Room::downloadFile: construct the temporary filename more carefullyKitsune Ral
Closes #279.
2019-02-18Room: fix building with MSVCKitsune Ral
2019-02-17Room: add isUnstable(); unstableVersion() -> stabilityUpdated()Kitsune Ral
2019-02-17Room: emit room, not id in upgraded(); add upgradeFailed()Kitsune Ral
2019-02-17Connection: loadingCapabilities(); sort availableRoomVersionsKitsune Ral
2019-02-16Room::version(): Fallback an empty version to "1"Kitsune Ral
2019-02-16Room::canSwitchVersions()Kitsune Ral
2019-02-16Room::checkVersion(): check power levelsKitsune Ral
This is a flimsy implementation without proper RoomPowerLevelEvent definition, just to enable upgrades without causing noise to each and every user of a room on an unstable version.
2019-02-16Room::switchVersion()Kitsune Ral
Closes #236.
2019-02-15Fix FTBFSKitsune Ral