aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-07-18Add a missing #includeAlexey Rusakov
Without this, it compiles on Linux but on macOS and Windows.
2021-07-18Introduce to_array() to fix building on macOSAlexey Rusakov
A previous incarnation, make_array, existed in basejob.cpp before. The new direction taken by C++20 is to either deduce the array (but the used Apple standard library doesn't have deduction guides yet) or to use to_array() that converts a C array to std::array. This latter option is taken here, with to_array() defined in quotient_common.h until we move over to C++20.
2021-07-18Fix building with Qt 5.12Alexey Rusakov
2021-07-18MembershipType -> Membership, also used for JoinStateAlexey Rusakov
Instead of being defined independently, JoinState now uses values from the Membership enumeration (former MemberEventContent::MembershipType) that was moved to quotient_common.h for that purpose. Both enumerations gained a Q_FLAG_NS decoration and operator<< overrides that strip "Quotient::" prefix when dumping member/join state values to the log - obviating toCString(JoinState) along the way. Quotient::MembershipType alias is deprecated from now.
2021-07-18Re-apply the previous commit and actually fix the breakageAlexey Rusakov
Ok, it was stupid to delete #include <QtCore/QMetaType> in 004ebf8d and then to expect that Qt macros would still work, given that I don't use QObject. In my defense I can only say that with Qt 6 it still compiled.
2021-07-18Revert previous commitAlexey Rusakov
Q_DECLARE_METATYPE is really unhappy about types without a public default constructor.
2021-07-18Make EventContent::TypedBase() constructor protectedAlexey Rusakov
TypedBase is an abstract class; constructing it doesn't make sense. But even if it were not abstract, it's not supposed to be instantiated.
2021-07-18Room::postFile(): adjust to the changed RoomMessageEvent APIAlexey Rusakov
9a5fa623 dropped one of RoomMessageEvent constructors for Qt 6 in order to address #483 - breaking the build with Qt 6 along the way, as Room::postFile() relied on that constructor. This commit changes Room::postFile() in turn, deprecating the current signature and adding a new one that accepts an EventContent object rather than a path to a file. In order to achieve that, FileInfo and ImageInfo classes have gained new constructors that accept QFileInfo instead of the legacy series of parameters, streamlining usage of EventContent structures.
2021-07-18CMakeLists: fixed potential linking errors around quotient_common.hAlexey Rusakov
quotient_common.h has Q_NAMESPACE but no own compilation unit, and moc was not called on it either - using metaobject data on an enumeration defined in that file leads to a linking error due to sharedMetaObject not being defined. The fix makes so that the file is detected by automoc with the respective definition being generated. Cherry-picked from a83ec900 (0.6.x branch).
2021-07-16User::rename(): don't discard the current stateAlexey Rusakov
Closes #481.
2021-07-16SyncData::parseJson(): minor optimisationAlexey Rusakov
2021-07-16Log thumbnail requests in their own categoryAlexey Rusakov
As pointed out by one of users, thumbnail requests produce quite a bit of logging traffic, so it's better to manage them separately.
2021-07-16UriResolver: fix clang-tidy warningsAlexey Rusakov
2021-07-16Officially drop Qt Multimedia with Qt 6Alexey Rusakov
Closes #483.
2021-07-11Fix Room::processAccountDataEvent() return valueAlexey Rusakov
(cherry picked from commit 7b65051e959968fe538f40c975d85757cfcc7df7) (cherry picked from commit 9edfefe9b209583d18ce92e7ffd73e8aa1f3ef1e)
2021-07-02Actually delete BaseJob::QueryAlexey Rusakov
It was a tiny wrapper around QUrlQuery to facilitate creation from an initializer list - however, Mustache templates long changed to not actually used that additional constructor.
2021-07-02Abandon BaseJob::Query - generated API filesAlexey Rusakov
2021-07-02Abandon BaseJob::Query - Mustache templateAlexey Rusakov
2021-06-30Add a commented out delimiter override exampleAlexey Rusakov
2021-06-28gtad.yaml: update for use with GTAD pre-0.8Alexey Rusakov
2021-06-23Step to Ubuntu 20.04; drop (old) E2EE code buildingAlexey Rusakov
2021-06-23Re-generate API filesAlexey Rusakov
2021-06-23*.mustache: Drop a stray leading end-of-lineAlexey Rusakov
An SPDX comment in the source code did not collapse entirely.
2021-06-23Require ClangFormat 10 or newer, if usedAlexey Rusakov
2021-06-23Update to the new matrix-doc layout and toolingAlexey Rusakov
Among things affecting Quotient, the update involved moving API files from api/ to data/api/, adding extensions to event schema files, and switching from ReStructured Text to Markdown as a lightweight markup language. This commit updates the build system and GTAD configuration to accommodate for these. The build system is also more robust now in choosing whether the update-api target should be provided. Previously the target was provided whenever GTAD_PATH and MATRIX_DOC_PATH were specified, even if they did not point to anything valid. CMake now checks that MATRIX_DOC_PATH is an actual directory and that GTAD_PATH points to an actual file. # Conflicts: # CMakeLists.txt
2021-06-13Merge pull request #480 from quotient-im/kitsune-qt6-compatAlexey Rusakov
Qt 6 support
2021-06-13CMakeLists: require explicit BUILD_WITH_QT6 for Qt 6Alexey Rusakov
It's not there, it's experimental - people should know what they are doing.
2021-06-13AppVeyor: disable E2EE building, drop older QtAlexey Rusakov
E2EE will be remade anyway so building it now makes little sense.
2021-06-13BaseJob: FollowRedirectsAttribute -> RedirectPolicyAttributeAlexey Rusakov
The latter obsoleted the former since Qt 5.9, actually.
2021-06-13CI: version Qt cacheAlexey Rusakov
2021-06-13CI: Use Qt 5.12, as required from nowAlexey Rusakov
2021-06-13Generate a moc file for quotient_common.hAlexey Rusakov
Previously Q_NAMESPACE did not require its own moc, somehow blending into others; now it does.
2021-06-13Uri: Fix ambiguity around QChar constructorsAlexey Rusakov
QChar now accepts more types for construction, and that unraveled concatenation of a Type/SecondaryType character with a QString. To fix it, give the compiler a hint by casting to the enum's underlying type (which also nicely documents that we _actually_ switch from enum to character type).
2021-06-13EncryptionEvent: fix "too perfect forwarding"Alexey Rusakov
Now that QMetaType introspects into types, it reveals hidden problems (which is very nice of it).
2021-06-13Exclude code no more needed with Qt6Alexey Rusakov
2021-06-13Disable the piece depending on Qt Multimedia for Qt 6Alexey Rusakov
Waiting for the Multimedia arrival in Qt 6.2.
2021-06-13Make RequestData compile againAlexey Rusakov
This fixes reliance on QIODevice being magically available for std::unique_ptr<> by indirect inclusion. Since Qt 6 this inclusion no more happens, time to #include <QIODevice> explicitly.
2021-06-13uri.cpp, room.*: Get rid of QStringRefsAlexey Rusakov
2021-06-12connection.cpp: erase_if -> remove_ifAlexey Rusakov
erase_if is now also provided by Qt; doing pretty much the same thing, the Qt implementation only returns the number of removed entries instead of returning a collection of them, however. Worth admitting at this point that the function in connection.cpp has never had the semantics of STL's erase_if() and doesn't quite have the semantics of remove_if() either; but at least it's closer to remove_if().
2021-06-12Adjust to new moc/QMetaType requirementsAlexey Rusakov
See https://www.qt.io/blog/whats-new-in-qmetatype-qvariant#qmetatype-knows-your-properties-and-methods-types
2021-06-12CMakeLists: require at least Qt 5.12; add Qt 6 supportAlexey Rusakov
2021-06-07Connection::joinRoom() shouldn't enforce room stateAlexey Rusakov
This is an adjustment to the earlier fix of #471: if a join is immediately followed by a leave (e.g. from another client/bot - you can't do it programmatically from libQuotient) the sync may bring the room already in the Leave state; therefore `joinRoom` should not impose the state but rather ask `provideRoom` to create a `Join` room - just as it's designed when passed an empty `joinState`.
2021-05-20Merge pull request #466 from TobiasFella/gitignoreAlexey Rusakov
Add libquotient.kdev4 to .gitignore
2021-05-19Add libquotient.kdev4 to .gitignoreTobias Fella
2021-05-09Fix joinedRoom signal not being emitted in some casesAlexey Rusakov
An alternative implementation of #463 (and thanks to Carl for spotting the original problem).
2021-04-26CI: Use GCC 9 where GCC 8 wasAlexey Rusakov
GitHub images no more have GCC 8.
2021-04-26Merge pull request #461 from quotient-im/work/force-load-user-dataAlexey Rusakov
Make it possible to load the user metadata
2021-04-26Make it possible to load the user metadataCarl Schwan
In the normal case there is always a room that is associated with an user. So it is in most of the cases, possible to load the metadata (display name and avatar url) with the help of the room. In some cases, it is not possible. For example, when opening an user matrix link pointing to an user and not to a room. In this case, we need to load the metadata independly of the room, since the user is not linked to a room.
2021-04-03Merge pull request #460 from Aksem/masterAlexey Rusakov
Fix broken links in README
2021-04-03Fix broken links in README.Vladyslav Hnatiuk