Age | Commit message (Collapse) | Author |
|
Otherwise isJobRunning() is of no great use.
|
|
Closes #149.
|
|
|
|
With all the liberty that pimpl idiom gives it's easy to get away without proper const's; but let's be consistent :)
|
|
|
|
|
|
std::bind belongs to <functional>, don't rely on implicitly including it from other standard headers.
|
|
It is the application's responsibility to properly display the error and get confirmation from the user about it.
|
|
SSL errors)
Closes #145.
|
|
This seems to upset MSVC.
|
|
|
|
We don't really want to let the world know that we use the only instance of NAM; instead, we provide a point of customisation to whatever NAM is created in ConnectionData, in the form of a static customizeNetworkAccess() method that gets a function to run on a/the created NAM. This function can do additional configuration on NAM (such as setting a proxy factory, network configuration, or caching) and/or connect to its signals, such as sslErrors() and proxyAuthenticationRequired(). Closes #143.
|
|
|
|
is quint16 now
setupApplicationProxy(), so that clients in QML could apply changes in proxy settings without going down to C++. quint16, because this is a type actually used by QNetworkProxy.
|
|
and User
The switch is necessary because MediaThumbnailJob is supposed to return something that can be worked on in non-GUI threads (as is the case of QML image providers), and QPixmap is not supposed for usage out of the main thread.
|
|
This will hold common logic for all state events, including the newly introduced repeatsState() that returns true when prev_content repeats content. This will be used to address QMatrixClient/Quaternion#245.
|
|
|
|
No credentials, just type, host, and port.
|
|
It cannot be made in templates because property and methods names are involved.
|
|
|
|
Because the damn thing puts QMAKE_CXX_FLAGS before what's put by CONFIG, and CONFIG injects -W -Wall that cancels -Wno-unused-parameter.
|
|
|
|
|
|
qmake doesn't follow standard CC and CXX environment variables and its CONFIG produces CXX_FLAGS added after QMAKE_CXX_FLAGS. Big thank you to The Qt Company :-|
|
|
|
|
The whole thing should go without or almost without warnings with GCC and with Clang (MSVC is another story and I don't care about it much).
|
|
This will provide some backwards-compatibility to clients that are not ready to move _their_ code to C++14 (at least, it will allow them to not add C++14 requirement to their makefiles as of yet).
|
|
This prepares the backend to enable timeouts/retry intervals configurable from clients.
|
|
|
|
Old GCC was still invoked; qmake-based builds weren't switched to C++14.
|
|
Also a bit of code tightening with some C++14 (but not only) things.
|
|
Because we should practice what we preach in CONTRIBUTING.md.
|
|
|
|
|
|
|
|
|
|
|
|
Because that's what it really is.
|
|
Otherwise they stick around when deleting actual settings (e.g. at logout).
|
|
Because the respective parameter in /login result is deprecated. Closes #137.
|
|
So that clients could start using this object without waiting for the next sync.
|
|
Because a missing return in a non-void function is always an error.
|
|
Closes #135.
|
|
|
|
|
|
This fixes compilation with older compilers that try to instantiate a copy constructor (and fail because unique_ptr) but actually is more proper in general. Also: do not advertise the class as Q_MOVABLE_TYPE: this was useful for QList/QVector when SyncRoomData was copyable; now it isn't, and Qt containers can't deal with non-copyable classes at all.
|
|
|
|
|
|
|
|
This causes the following changes along the way:
- Owning<> template is decommissioned.
- event.h has been rearranged, and Event/RoomEvent::fromJson static methods have been replaced with an external makeEvent<> function template. A side effect of that is that one cannot use a factory with a type other than the one it's defined for (i.e. you cannot call makeEvent<TypingEvent>) but that feature has been out of use for long anyway.
- Room::doAddNewMessageEvents() and Room::doAddHistoricalMessageEvents() have been removed, giving place to Room::onAddNewTimelineEvents() and Room::onAddHistoricalTimelineEvents(). The most important difference is that all code that must be executed now resides in addNewMessageEvents() (it moved from Room to Room::Private) and classes inheriting from Room are not obliged to call the overridden function from the overriding function (they can do it but those functions have empty bodies in Room). This was a long overdue change, and owning pointers simply mandated it. Room::onAddNewTimelineEvents/onAddHistoricalTimelineEvents should not do anything with the passed range in terms of ownership, it's just a way to allow the derived class to update his data in due course.
- Room::Private::dropDuplicateEvents() and Room::Private::insertEvents(), notably, have been updated to work with owning pointers. insertEvents() move()s pointers to the timeline, while dropDuplicateEvents uses remove_if instead of stable_partition and doesn't explicitly delete event objects.
Also, a bugfix: Event accidentally had not virtual destructor for quite a long time. According to the standard, deleting an object through a pointer to a base class without a virtual destructor leads to UB. So the fact that libqmatrixclient clients even worked all these months is mere coincidence and compiler authors good will :-D
|