Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-02-01 | AppVeyor CI configuration | Kitsune 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-31 | Connection::createdRoom() signal | Kitsune Ral | |
2018-01-30 | Merge branch 'kitsune-create-room' | Kitsune Ral | |
Closes #34. | |||
2018-01-30 | User: Fixes in newly introduced methods | Kitsune Ral | |
2018-01-30 | User: Fixes in newly introduced methods | Kitsune Ral | |
2018-01-30 | Fix compilation with Clang | Kitsune Ral | |
Did two QChar::isDigit() overloads, one static and one member, confuse it? | |||
2018-01-30 | Fix compilation with Clang | Kitsune Ral | |
Did two QChar::isDigit() overloads, one static and one member, confuse it? | |||
2018-01-30 | Room: setName(), setCanonicalAlias() | Kitsune Ral | |
2018-01-30 | Fix compatibility with Qt before 5.10 | Kitsune Ral | |
2018-01-30 | Fix compatibility with Qt before 5.10 | Kitsune Ral | |
2018-01-30 | Connection: expose the list of users; use an ordered map | Kitsune 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-30 | Connection: more Q_PROPERTYs, newUser signal | Kitsune Ral | |
2018-01-30 | Connection::createRoom and Connection::createDirectChat | Kitsune Ral | |
2018-01-30 | Connection class cleanup | Kitsune 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-30 | CreateRoomJob: Update to the latest Spec version | Kitsune Ral | |
2018-01-30 | User: fullName, isGuest, better doc comments | Kitsune 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-30 | RequestData: use auto | Kitsune Ral | |
Should improve compatibility with compilers that don't like conversions between different std::unique_ptr<> types. | |||
2018-01-30 | Connection::onSyncSuccess: call processEvents upon each room parsing | Kitsune Ral | |
When there are too many rooms to process, this gives at least some bandwidth for the GUI in the meantime. | |||
2018-01-25 | Merge branch 'kitsune-avatar-url-properties' | Kitsune Ral | |
2018-01-25 | Room, User: expose avatarMediaId(); declare User for the metatype system | Kitsune Ral | |
To make it easy to use User objects and fetch room and user avatars from QML. Closes #155. | |||
2018-01-25 | Room, User: const-tighten up the code, set QObject names | Kitsune Ral | |
To make debugging (including QML debugging) more convenient. | |||
2018-01-25 | StateEvent<>: introduce Prev structure and prevSenderId() accessor | Kitsune Ral | |
Also switch prev_content() from accidental snake case to camel case (old name still provided for compatibility). | |||
2018-01-25 | Expose avatar URLs of Room and User as Q_PROPERTY | Kitsune Ral | |
This is needed for QML integration. Closes #155. | |||
2018-01-25 | Merge branch 'kitsune-better-forget' | Kitsune Ral | |
2018-01-25 | Merge branch 'kitsune-invite-state-caching' | Kitsune Ral | |
2018-01-25 | Connection: intercept late-coming /sync response on a just forgotten room | Kitsune Ral | |
Closes #160. | |||
2018-01-25 | Connection::provideRoom: assert no empty ids | Kitsune Ral | |
Bonus: slightly more accurate comment in Connection::forgetRoom | |||
2018-01-25 | Room::toJson: fix invite state caching | Kitsune 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-25 | Connection::forgetRoom: Support forgetting invites too | Kitsune Ral | |
Closes #157. | |||
2018-01-25 | BaseJob::checkReply: log job returned status more explicitly | Kitsune Ral | |
2018-01-25 | Room::Private::toJson: don't save zero numbers | Kitsune Ral | |
2018-01-24 | Fix dangling references | Kitsune Ral | |
2018-01-24 | Typo fixes for the previous commit | Kitsune Ral | |
Requires deleting the cache :( | |||
2018-01-24 | Avatar: Only allow mxc:// links for avatars | Kitsune 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-24 | splitMediaId: fix typos in the assertion failure message | Kitsune Ral | |
2018-01-22 | Room: emit addedMessages() before possible read marker auto-promotion | Kitsune 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-22 | splitMediaId: better assertion failure message | Kitsune Ral | |
2018-01-22 | Room::setLastReadEvent: don't update if the event is the same | Kitsune Ral | |
2018-01-20 | Room: store the first displayed event as well; Room::*DisplayedMarker() methods | Kitsune Ral | |
2018-01-20 | RoomMessageEvent::hasTextContent() | Kitsune Ral | |
Similar to hasFileContent(), allows to ascertain that an event has TextContent without checking against all possible msgtypes. | |||
2018-01-18 | Typo fix | Kitsune Ral | |
2018-01-18 | Room: add properties for shown (room/event), message and members count | Kitsune Ral | |
Closes #151. | |||
2018-01-18 | Move links pretty-printing code from Quaternion to lib | Kitsune 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-17 | Fix a mistake reported by Clang static analyzer | Kitsune Ral | |
2018-01-17 | Fix an occasional crash introduced by the previous commit | Kitsune Ral | |
2018-01-17 | Room::getPreviousContent(): Don't skip if the last job just finished | Kitsune 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-17 | Room::downloadFile(): make sure temporary file names don't clash | Kitsune Ral | |
Particularly in case when there are two events that have an image with the same file name (image.png). | |||
2018-01-16 | EventContent: inject mediaThumbnailId into content original JSON | Kitsune Ral | |
For QML to easily make URLs to thumbnails. | |||
2018-01-15 | EventContent: provide mediaId in the top-level JSON, not in "info" subobject | Kitsune Ral | |
Given that it's a sidedoor anyway, it should at least be straightforward to use. | |||
2018-01-15 | DownloadFileJob: Be tolerant to request retries | Kitsune Ral | |