Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-12-08 | function_traits: more tests, fix function objects/lambdas not working with ↵ | Kitsune Ral | |
some compilers A member function reference is not the same as a member function pointer. | |||
2018-12-08 | Omittable: better editability; drop implicit cast to bool | Kitsune Ral | |
2018-12-08 | Omittable: make operator-> and operator* return an empty object if omitted ↵ | Kitsune Ral | |
== true That is, instead of Q_ASSERTing in debug builds (release builds already work that way). The idea is that since the value is default-initialised anyway it can be used as a "blank canvas" to access specific fields inside the value's structure. The next commit will use that. | |||
2018-12-08 | StateEvent<>: make data members private | Kitsune Ral | |
Keeping them protected extends API surface with no reasonable use from it (and for now derived classes don't access StateEvent<> data members directly, anyway). | |||
2018-12-08 | RoomMemberEvent: cleanup | Kitsune Ral | |
Don't make JSON for event content only to parse it again; drop extraneous constructs. | |||
2018-12-08 | Special-case FALLTHROUGH for Clang | Kitsune Ral | |
2018-12-08 | function_traits<>: support any arity; add compile-time tests | Kitsune Ral | |
2018-12-08 | Connection: Avoid Omittable<>::operator bool | Kitsune Ral | |
It was accidentally (and incorrectly) used in tags sorting code; will be dropped from Omittable<> in a later commit. | |||
2018-11-23 | Update CS API | Kitsune Ral | |
2018-11-23 | Room::setLastReadEvent: save room state when updating own read marker | Kitsune Ral | |
2018-11-23 | Room: track more Changes | Kitsune Ral | |
2018-11-23 | Room/Connection: don't save the just loaded room cache | Kitsune Ral | |
2018-11-23 | Connection::saveState: use null instead of an empty object for a room | Kitsune Ral | |
placeholder Otherwise placeholder objects are confused with normal room JSON objects when loading from the cache. Closes #257 (again). | |||
2018-11-22 | Connection: Log when a room state cache is written | Kitsune Ral | |
2018-11-22 | Fix QString initialisation from QStringBuilder | Kitsune Ral | |
You can't assign a QStringBuilder to auto. | |||
2018-11-22 | Save state cache per-room | Kitsune Ral | |
Closes #257. | |||
2018-11-22 | Room: Change enum, Changes flag set, and changed() signal | Kitsune Ral | |
This allows to batch updates into signals being emitted only once per sync. Also supercedes emitNamesChanged flag used in a few places. | |||
2018-11-22 | Generalise and expose cacheLocation() | Kitsune Ral | |
2018-11-20 | SyncJob::parseJson: fix a validation mistake | Kitsune Ral | |
2018-11-20 | eventloader.h: drop unneeded #include | Kitsune Ral | |
2018-11-20 | Make SyncData more self-contained and prepare for cache splitting | Kitsune Ral | |
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. | |||
2018-11-19 | Don't cache empty events; prepare for lazy-loading | Kitsune Ral | |
These two are intermingled in Room::addHistoricalMessageEvents because processing empty events found in a historical batch is no different from discovering (not lazy-loaded) members. | |||
2018-11-19 | Room: process new state events after applying redactions | Kitsune Ral | |
This was one more cause of #257 - the case when a redaction on a state event arrives in the same batch as the redacted event. | |||
2018-11-19 | Room: expose eventsHistoryJob as a Q_PROPERTY | Kitsune Ral | |
2018-11-19 | Room: profile addHistoricalMessageEvents (+cleanup) | Kitsune Ral | |
2018-11-19 | BaseJob::rawDataSample() | Kitsune Ral | |
A new recommended (and localisable) way of getting a piece of raw response to display next to error messages as "details". BaseJob::rawData() returns exactly the trimmed piece of data, no "truncated" suffix there anymore. | |||
2018-11-17 | Room: cleanup | Kitsune Ral | |
2018-11-17 | Room::processStateEvent: process banning correctly | Kitsune Ral | |
Closes #258. | |||
2018-11-17 | StateEventBase::replacedState() | Kitsune Ral | |
Brings event id of the state event that was in effect before this one arrived. This key is not specced but it's used in the wild since forever. | |||
2018-11-17 | User::isIgnored() | Kitsune Ral | |
2018-11-14 | Room: fix incorrect handling of state event redactions | Kitsune Ral | |
Also: use Matrix type instead of internal type id in StateEventKey (Because internal type id maps to the library type system which will not discern between Unknown events and therefore will mix together events of different types in Room::Private::baseState/currentState. The Room code is updated accordingly (bonus: more asserts there).) Closes #255. | |||
2018-11-14 | DEFINE_SIMPLE_STATE_EVENT: Add default constructor | Kitsune Ral | |
...that creates an "empty" event, i.e. an event with content initialised by a default constructor (not all content types support this but those for simple events do). | |||
2018-11-14 | Room: historyEdge(), syncEdge, Private::timelineBase() | Kitsune Ral | |
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. | |||
2018-11-14 | Improvements in comments | Kitsune Ral | |
- 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 | |||
2018-11-14 | Room: ensure proper error signalling on event sending failures | Kitsune Ral | |
2018-11-05 | isEchoEvent: check the pending event for ids, not the synced one | Kitsune Ral | |
Synced events always have their event ids, so checking those for event id renders most of the function useless (and returns an incorrect result). Closes #248. | |||
2018-11-04 | profilerMinNsecs(): Fix a misnomer - it's PROFILER_LOG_USECS now - and ↵ | Kitsune Ral | |
document it | |||
2018-11-04 | Profiler logging fixes and improvements | Kitsune Ral | |
2018-11-04 | Room: store state events in a unified way | Kitsune Ral | |
Closes #194. | |||
2018-11-04 | StateEventKey and std::hash<StateEventKey> to arrange state events in hashmaps | Kitsune Ral | |
2018-11-04 | StateEvent::dumpTo: add state_key to the logline | Kitsune Ral | |
2018-11-04 | Support dumping Events to QDebug | Kitsune Ral | |
2018-11-04 | DEFINE_SIMPLE_STATE_EVENT: fix construction from an rvalue QJsonObject | Kitsune Ral | |
2018-11-04 | DEFINE_SIMPLE_STATE_EVENT: fix value_type mistakenly dubbed as content_type | Kitsune Ral | |
2018-11-03 | MediaThumbnailJob: minor code polishing | Kitsune Ral | |
2018-11-03 | User::displayname(): avoid calling nameForRoom twice | Kitsune Ral | |
nameForRoom() is O(n) in this context (n - number of names of a given user). | |||
2018-10-29 | Connection::joinRoom: allow to specify intermediate servers | Kitsune Ral | |
Closes #127. | |||
2018-10-26 | Use tr() for plurals | Kitsune Ral | |
2018-10-12 | Room::addTag: use float instead of Omittable<float> | Kitsune Ral | |
No-order is already modelled with the other overload, and Omittable<> breaks interfacing with QML. | |||
2018-10-10 | add http2 and pipelining for all Jobs | Krombel | |