aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-02-01AppVeyor CI configurationKitsune Ral
Compared to the (very similar) Quaternion project configuration, this one adds qmake-based building with MSVC 2017 (MSVC 2015 can be added if anybody needs it).
2018-01-31Connection::createdRoom() signalKitsune Ral
2018-01-30Merge branch 'kitsune-create-room'Kitsune Ral
Closes #34.
2018-01-30User: Fixes in newly introduced methodsKitsune Ral
2018-01-30User: Fixes in newly introduced methodsKitsune Ral
2018-01-30Fix compilation with ClangKitsune Ral
Did two QChar::isDigit() overloads, one static and one member, confuse it?
2018-01-30Fix compilation with ClangKitsune Ral
Did two QChar::isDigit() overloads, one static and one member, confuse it?
2018-01-30Room: setName(), setCanonicalAlias()Kitsune Ral
2018-01-30Fix compatibility with Qt before 5.10Kitsune Ral
2018-01-30Fix compatibility with Qt before 5.10Kitsune Ral
2018-01-30Connection: expose the list of users; use an ordered mapKitsune Ral
It's still an open question whether it's better to store a separate sorted index of users, next to an unsorted one; but a sorted list of users is of much more use in GUI than an unsorted one.
2018-01-30Connection: more Q_PROPERTYs, newUser signalKitsune Ral
2018-01-30Connection::createRoom and Connection::createDirectChatKitsune Ral
2018-01-30Connection class cleanupKitsune Ral
createRoom and createUser renamed to roomFactory and userFactory (because createRoom will mean a different thing); unneeded #include moved to the cpp file.
2018-01-30CreateRoomJob: Update to the latest Spec versionKitsune Ral
2018-01-30User: fullName, isGuest, better doc commentsKitsune Ral
User::fullName() is used in Room::roomMembername now. That string construction may be further cached now if it ever becomes a bottleneck.
2018-01-30RequestData: use autoKitsune Ral
Should improve compatibility with compilers that don't like conversions between different std::unique_ptr<> types.
2018-01-30Connection::onSyncSuccess: call processEvents upon each room parsingKitsune Ral
When there are too many rooms to process, this gives at least some bandwidth for the GUI in the meantime.
2018-01-25Merge branch 'kitsune-avatar-url-properties'Kitsune Ral
2018-01-25Room, User: expose avatarMediaId(); declare User for the metatype systemKitsune Ral
To make it easy to use User objects and fetch room and user avatars from QML. Closes #155.
2018-01-25Room, User: const-tighten up the code, set QObject namesKitsune Ral
To make debugging (including QML debugging) more convenient.
2018-01-25StateEvent<>: introduce Prev structure and prevSenderId() accessorKitsune Ral
Also switch prev_content() from accidental snake case to camel case (old name still provided for compatibility).
2018-01-25Expose avatar URLs of Room and User as Q_PROPERTYKitsune Ral
This is needed for QML integration. Closes #155.
2018-01-25Merge branch 'kitsune-better-forget'Kitsune Ral
2018-01-25Merge branch 'kitsune-invite-state-caching'Kitsune Ral
2018-01-25Connection: intercept late-coming /sync response on a just forgotten roomKitsune Ral
Closes #160.
2018-01-25Connection::provideRoom: assert no empty idsKitsune Ral
Bonus: slightly more accurate comment in Connection::forgetRoom
2018-01-25Room::toJson: fix invite state cachingKitsune Ral
Causes a cache version upgrade; the old cache stores the state in an incorrect place that won't be supported. Closes #159.
2018-01-25Connection::forgetRoom: Support forgetting invites tooKitsune Ral
Closes #157.
2018-01-25BaseJob::checkReply: log job returned status more explicitlyKitsune Ral
2018-01-25Room::Private::toJson: don't save zero numbersKitsune Ral
2018-01-24Fix dangling referencesKitsune Ral
2018-01-24Typo fixes for the previous commitKitsune Ral
Requires deleting the cache :(
2018-01-24Avatar: Only allow mxc:// links for avatarsKitsune Ral
Otherwise an attempt to use a possibly insecure link goes to Connection::getThumbnail(), leading to an assertion failure in splitMediaId(). See also the discussion in QMatrixClient/Quaternion#265.
2018-01-24splitMediaId: fix typos in the assertion failure messageKitsune Ral
2018-01-22Room: emit addedMessages() before possible read marker auto-promotionKitsune Ral
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.
2018-01-22splitMediaId: better assertion failure messageKitsune Ral
2018-01-22Room::setLastReadEvent: don't update if the event is the sameKitsune Ral
2018-01-20Room: store the first displayed event as well; Room::*DisplayedMarker() methodsKitsune Ral
2018-01-20RoomMessageEvent::hasTextContent()Kitsune Ral
Similar to hasFileContent(), allows to ascertain that an event has TextContent without checking against all possible msgtypes.
2018-01-18Typo fixKitsune Ral
2018-01-18Room: add properties for shown (room/event), message and members countKitsune Ral
Closes #151.
2018-01-18Move links pretty-printing code from Quaternion to libKitsune Ral
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.
2018-01-17Fix a mistake reported by Clang static analyzerKitsune Ral
2018-01-17Fix an occasional crash introduced by the previous commitKitsune Ral
2018-01-17Room::getPreviousContent(): Don't skip if the last job just finishedKitsune Ral
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.
2018-01-17Room::downloadFile(): make sure temporary file names don't clashKitsune Ral
Particularly in case when there are two events that have an image with the same file name (image.png).
2018-01-16EventContent: inject mediaThumbnailId into content original JSONKitsune Ral
For QML to easily make URLs to thumbnails.
2018-01-15EventContent: provide mediaId in the top-level JSON, not in "info" subobjectKitsune Ral
Given that it's a sidedoor anyway, it should at least be straightforward to use.
2018-01-15DownloadFileJob: Be tolerant to request retriesKitsune Ral