From 40548a7995147f3f99212928ae27047de7a79618 Mon Sep 17 00:00:00 2001
From: Alexey Rusakov <Kitsune-Ral@users.sf.net>
Date: Sun, 22 Aug 2021 20:10:49 +0200
Subject: Deprecate BaseJob::Data

The grand plan is to get rid of `BaseJob` and turn job invocations
to function calls returning `QFuture`. `RequestData` will stay though,
feeding data into those calls.
---
 lib/jobs/basejob.cpp | 17 ++++++++++-------
 lib/jobs/basejob.h   | 10 ++++++----
 2 files changed, 16 insertions(+), 11 deletions(-)

(limited to 'lib/jobs')

diff --git a/lib/jobs/basejob.cpp b/lib/jobs/basejob.cpp
index 400a9243..239cef28 100644
--- a/lib/jobs/basejob.cpp
+++ b/lib/jobs/basejob.cpp
@@ -71,8 +71,8 @@ public:
 
     // Using an idiom from clang-tidy:
     // http://clang.llvm.org/extra/clang-tidy/checks/modernize-pass-by-value.html
-    Private(HttpVerb v, QString endpoint, const QUrlQuery& q, Data&& data,
-            bool nt)
+    Private(HttpVerb v, QString endpoint, const QUrlQuery& q,
+            RequestData&& data, bool nt)
         : verb(v)
         , apiEndpoint(std::move(endpoint))
         , requestQuery(q)
@@ -109,7 +109,7 @@ public:
     QString apiEndpoint;
     QHash<QByteArray, QByteArray> requestHeaders;
     QUrlQuery requestQuery;
-    Data requestData;
+    RequestData requestData;
     bool needsToken;
 
     bool inBackground = false;
@@ -168,11 +168,11 @@ public:
 
 BaseJob::BaseJob(HttpVerb verb, const QString& name, const QString& endpoint,
                  bool needsToken)
-    : BaseJob(verb, name, endpoint, QUrlQuery {}, Data {}, needsToken)
+    : BaseJob(verb, name, endpoint, QUrlQuery {}, RequestData {}, needsToken)
 {}
 
 BaseJob::BaseJob(HttpVerb verb, const QString& name, const QString& endpoint,
-                 const QUrlQuery &query, Data&& data, bool needsToken)
+                 const QUrlQuery& query, RequestData&& data, bool needsToken)
     : d(new Private(verb, endpoint, query, std::move(data), needsToken))
 {
     setObjectName(name);
@@ -224,9 +224,12 @@ void BaseJob::setRequestQuery(const QUrlQuery& query)
     d->requestQuery = query;
 }
 
-const BaseJob::Data& BaseJob::requestData() const { return d->requestData; }
+const RequestData& BaseJob::requestData() const { return d->requestData; }
 
-void BaseJob::setRequestData(Data&& data) { std::swap(d->requestData, data); }
+void BaseJob::setRequestData(RequestData&& data)
+{
+    std::swap(d->requestData, data);
+}
 
 const QByteArrayList& BaseJob::expectedContentTypes() const
 {
diff --git a/lib/jobs/basejob.h b/lib/jobs/basejob.h
index 7ce4b808..7750fb8b 100644
--- a/lib/jobs/basejob.h
+++ b/lib/jobs/basejob.h
@@ -72,7 +72,8 @@ public:
     };
     Q_ENUM(StatusCode)
 
-    using Data = RequestData;
+    using Data Q_DECL_DEPRECATED_X("Use Quotient::RequestData instead") //
+        = RequestData;
 
     /*!
      * This structure stores the status of a server call job. The status
@@ -125,7 +126,8 @@ public:
     BaseJob(HttpVerb verb, const QString& name, const QString& endpoint,
             bool needsToken = true);
     BaseJob(HttpVerb verb, const QString& name, const QString& endpoint,
-            const QUrlQuery& query, Data&& data = {}, bool needsToken = true);
+            const QUrlQuery& query, RequestData&& data = {},
+            bool needsToken = true);
 
     QUrl requestUrl() const;
     bool isBackground() const;
@@ -330,8 +332,8 @@ protected:
     void setRequestHeaders(const headers_t& headers);
     const QUrlQuery& query() const;
     void setRequestQuery(const QUrlQuery& query);
-    const Data& requestData() const;
-    void setRequestData(Data&& data);
+    const RequestData& requestData() const;
+    void setRequestData(RequestData&& data);
     const QByteArrayList& expectedContentTypes() const;
     void addExpectedContentType(const QByteArray& contentType);
     void setExpectedContentTypes(const QByteArrayList& contentTypes);
-- 
cgit v1.2.3


From c50420a0f2df7a7bf291312c38ac43e2c9f58141 Mon Sep 17 00:00:00 2001
From: Alexey Rusakov <Kitsune-Ral@users.sf.net>
Date: Sun, 22 Aug 2021 20:15:04 +0200
Subject: Drop QMatrixClient namespace alias

---
 lib/avatar.h           | 2 --
 lib/jobs/requestdata.h | 2 --
 lib/logging.h          | 2 --
 3 files changed, 6 deletions(-)

(limited to 'lib/jobs')

diff --git a/lib/avatar.h b/lib/avatar.h
index 37e1eeef..d4634aea 100644
--- a/lib/avatar.h
+++ b/lib/avatar.h
@@ -42,5 +42,3 @@ private:
     std::unique_ptr<Private> d;
 };
 } // namespace Quotient
-/// \deprecated Use namespace Quotient instead
-namespace QMatrixClient = Quotient;
diff --git a/lib/jobs/requestdata.h b/lib/jobs/requestdata.h
index 21657631..4f05e5ff 100644
--- a/lib/jobs/requestdata.h
+++ b/lib/jobs/requestdata.h
@@ -35,5 +35,3 @@ private:
     std::unique_ptr<QIODevice> _source;
 };
 } // namespace Quotient
-/// \deprecated Use namespace Quotient instead
-namespace QMatrixClient = Quotient;
diff --git a/lib/logging.h b/lib/logging.h
index 264215e1..1d1394e8 100644
--- a/lib/logging.h
+++ b/lib/logging.h
@@ -67,8 +67,6 @@ inline qint64 profilerMinNsecs()
         * 1000;
 }
 } // namespace Quotient
-/// \deprecated Use namespace Quotient instead
-namespace QMatrixClient = Quotient;
 
 inline QDebug operator<<(QDebug debug_object, const QElapsedTimer& et)
 {
-- 
cgit v1.2.3


From c26015503aa0fbca37abdfc4870ac94bb7befeee Mon Sep 17 00:00:00 2001
From: Alexey Rusakov <Kitsune-Ral@users.sf.net>
Date: Sun, 22 Aug 2021 20:19:15 +0200
Subject: Drop other stuff deprecated pre- or early 0.6

BaseJob: StatusCode::JsonParseError
Connection: resolved() and reconnected() signals; roomMap(); postReceipt()
User: bridged() and rawName()
ConnectionData: setHost() and setPort()
StateEventBase: prev_content()
---
 lib/connection.cpp      | 21 ---------------------
 lib/connection.h        | 45 ---------------------------------------------
 lib/connectiondata.cpp  | 12 ------------
 lib/connectiondata.h    |  4 ----
 lib/events/stateevent.h |  4 ----
 lib/jobs/basejob.h      |  2 --
 lib/user.cpp            |  4 ----
 lib/user.h              | 18 +-----------------
 8 files changed, 1 insertion(+), 109 deletions(-)

(limited to 'lib/jobs')

diff --git a/lib/connection.cpp b/lib/connection.cpp
index 7dd04aaa..222c3b71 100644
--- a/lib/connection.cpp
+++ b/lib/connection.cpp
@@ -314,8 +314,6 @@ void Connection::resolveServer(const QString& mxid)
             setHomeserver(maybeBaseUrl);
         }
         Q_ASSERT(d->loginFlowsJob != nullptr); // Ensured by setHomeserver()
-        connect(d->loginFlowsJob, &BaseJob::success, this,
-                &Connection::resolved);
         connect(d->loginFlowsJob, &BaseJob::failure, this, [this] {
             qCWarning(MAIN) << "Homeserver base URL sanity check failed";
             emit resolveError(tr("The homeserver doesn't seem to be working"));
@@ -795,11 +793,6 @@ void Connection::stopSync()
 
 QString Connection::nextBatchToken() const { return d->data->lastEvent(); }
 
-PostReceiptJob* Connection::postReceipt(Room* room, RoomEvent* event)
-{
-    return callApi<PostReceiptJob>(room->id(), "m.read", event->id());
-}
-
 JoinRoomJob* Connection::joinRoom(const QString& roomAlias,
                                   const QStringList& serverNames)
 {
@@ -1239,20 +1232,6 @@ int Connection::millisToReconnect() const
     return d->syncJob ? d->syncJob->millisToRetry() : 0;
 }
 
-QHash<QPair<QString, bool>, Room*> Connection::roomMap() const
-{
-    // Copy-on-write-and-remove-elements is faster than copying elements one by
-    // one.
-    QHash<QPair<QString, bool>, Room*> roomMap = d->roomMap;
-    for (auto it = roomMap.begin(); it != roomMap.end();) {
-        if (it.value()->joinState() == JoinState::Leave)
-            it = roomMap.erase(it);
-        else
-            ++it;
-    }
-    return roomMap;
-}
-
 QVector<Room*> Connection::allRooms() const
 {
     QVector<Room*> result;
diff --git a/lib/connection.h b/lib/connection.h
index a7a071f3..ecbb1a19 100644
--- a/lib/connection.h
+++ b/lib/connection.h
@@ -138,15 +138,6 @@ public:
     explicit Connection(const QUrl& server, QObject* parent = nullptr);
     ~Connection() override;
 
-    /// Get all Invited and Joined rooms
-    /*!
-     * \return a hashmap from a composite key - room name and whether
-     *         it's an Invite rather than Join - to room pointers
-     * \sa allRooms, rooms, roomsWithTag
-     */
-    [[deprecated("Use allRooms(), roomsWithTag() or rooms(joinStates) instead")]]
-    QHash<QPair<QString, bool>, Room*> roomMap() const;
-
     /// Get all rooms known within this Connection
     /*!
      * This includes Invite, Join and Leave rooms, in no particular order.
@@ -524,30 +515,12 @@ public Q_SLOTS:
      */
     void assumeIdentity(const QString& mxId, const QString& accessToken,
                         const QString& deviceId);
-    /*! \deprecated Use loginWithPassword instead */
-    void connectToServer(const QString& userId, const QString& password,
-                         const QString& initialDeviceName,
-                         const QString& deviceId = {})
-    {
-        loginWithPassword(userId, password, initialDeviceName, deviceId);
-    }
-    /*! \deprecated
-     * Use assumeIdentity() if you have an access token or
-     * loginWithToken() if you have a login token.
-     */
-    void connectWithToken(const QString& userId, const QString& accessToken,
-                          const QString& deviceId)
-    {
-        assumeIdentity(userId, accessToken, deviceId);
-    }
     /// Explicitly request capabilities from the server
     void reloadCapabilities();
 
     /// Find out if capabilites are still loading from the server
     bool loadingCapabilities() const;
 
-    /** @deprecated Use stopSync() instead */
-    void disconnectFromServer() { stopSync(); }
     void logout();
 
     void sync(int timeout = -1);
@@ -662,24 +635,7 @@ public Q_SLOTS:
     /** \deprecated Do not use this directly, use Room::leaveRoom() instead */
     virtual LeaveRoomJob* leaveRoom(Room* room);
 
-    // Old API that will be abolished any time soon. DO NOT USE.
-
-    /** @deprecated Use callApi<PostReceiptJob>() or Room::postReceipt() instead
-     */
-    virtual PostReceiptJob* postReceipt(Room* room, RoomEvent* event);
-
 Q_SIGNALS:
-    /**
-     * @deprecated
-     * This was a signal resulting from a successful resolveServer().
-     * Since Connection now provides setHomeserver(), the HS URL
-     * may change even without resolveServer() invocation. Use
-     * loginFLowsChanged() instead of resolved(). You can also use
-     * loginWith*() and assumeIdentity() without the HS URL set in
-     * advance (i.e. without calling resolveServer), as they trigger
-     * server name resolution from MXID if the server URL is not valid.
-     */
-    void resolved();
     void resolveError(QString error);
 
     void homeserverChanged(QUrl baseUrl);
@@ -687,7 +643,6 @@ Q_SIGNALS:
     void capabilitiesLoaded();
 
     void connected();
-    void reconnected(); //< \deprecated Use connected() instead
     void loggedOut();
     /** Login data or state have changed
      *
diff --git a/lib/connectiondata.cpp b/lib/connectiondata.cpp
index e54d909b..87ad4577 100644
--- a/lib/connectiondata.cpp
+++ b/lib/connectiondata.cpp
@@ -118,18 +118,6 @@ void ConnectionData::setToken(QByteArray token)
     d->accessToken = std::move(token);
 }
 
-void ConnectionData::setHost(QString host)
-{
-    d->baseUrl.setHost(host);
-    qCDebug(MAIN) << "updated baseUrl to" << d->baseUrl;
-}
-
-void ConnectionData::setPort(int port)
-{
-    d->baseUrl.setPort(port);
-    qCDebug(MAIN) << "updated baseUrl to" << d->baseUrl;
-}
-
 const QString& ConnectionData::deviceId() const { return d->deviceId; }
 
 const QString& ConnectionData::userId() const { return d->userId; }
diff --git a/lib/connectiondata.h b/lib/connectiondata.h
index 7dd96f26..e16a2dac 100644
--- a/lib/connectiondata.h
+++ b/lib/connectiondata.h
@@ -31,10 +31,6 @@ public:
 
     void setBaseUrl(QUrl baseUrl);
     void setToken(QByteArray accessToken);
-    [[deprecated("Use setBaseUrl() instead")]]
-    void setHost(QString host);
-    [[deprecated("Use setBaseUrl() instead")]]
-    void setPort(int port);
     void setDeviceId(const QString& deviceId);
     void setUserId(const QString& userId);
     void setNeedsToken(const QString& requestName);
diff --git a/lib/events/stateevent.h b/lib/events/stateevent.h
index 1415f709..bc414a5f 100644
--- a/lib/events/stateevent.h
+++ b/lib/events/stateevent.h
@@ -100,10 +100,6 @@ public:
         visitor(_content);
         editJson()[ContentKeyL] = _content.toJson();
     }
-    [[deprecated("Use prevContent instead")]] const ContentT* prev_content() const
-    {
-        return prevContent();
-    }
     const ContentT* prevContent() const
     {
         return _prev ? &_prev->content : nullptr;
diff --git a/lib/jobs/basejob.h b/lib/jobs/basejob.h
index 7750fb8b..835cd822 100644
--- a/lib/jobs/basejob.h
+++ b/lib/jobs/basejob.h
@@ -52,8 +52,6 @@ public:
         IncorrectRequestError = IncorrectRequest,
         IncorrectResponse,
         IncorrectResponseError = IncorrectResponse,
-        JsonParseError //< \deprecated Use IncorrectResponse instead
-        = IncorrectResponse,
         TooManyRequests,
         TooManyRequestsError = TooManyRequests,
         RateLimited = TooManyRequests,
diff --git a/lib/user.cpp b/lib/user.cpp
index a4abed37..60920a59 100644
--- a/lib/user.cpp
+++ b/lib/user.cpp
@@ -93,8 +93,6 @@ QString User::name(const Room* room) const
     return room ? room->memberName(id()) : d->defaultName;
 }
 
-QString User::rawName(const Room* room) const { return name(room); }
-
 void User::rename(const QString& newName)
 {
     const auto actualNewName = sanitized(newName);
@@ -185,8 +183,6 @@ QString User::fullName(const Room* room) const
     return displayName.isEmpty() ? id() : (displayName % " (" % id() % ')');
 }
 
-QString User::bridged() const { return {}; }
-
 const Avatar& User::avatarObject(const Room* room) const
 {
     if (!room)
diff --git a/lib/user.h b/lib/user.h
index 4ff62951..78b72bf2 100644
--- a/lib/user.h
+++ b/lib/user.h
@@ -22,7 +22,6 @@ class User : public QObject {
     Q_PROPERTY(QString name READ name NOTIFY defaultNameChanged)
     Q_PROPERTY(QString displayName READ displayname NOTIFY defaultNameChanged STORED false)
     Q_PROPERTY(QString fullName READ fullName NOTIFY defaultNameChanged STORED false)
-    Q_PROPERTY(QString bridgeName READ bridged NOTIFY defaultNameChanged STORED false)
     Q_PROPERTY(QString avatarMediaId READ avatarMediaId NOTIFY defaultAvatarChanged STORED false)
     Q_PROPERTY(QUrl avatarUrl READ avatarUrl NOTIFY defaultAvatarChanged)
 public:
@@ -40,18 +39,10 @@ public:
      * This may be empty if the user didn't choose the name or cleared
      * it. If the user is bridged, the bridge postfix (such as '(IRC)')
      * is stripped out. No disambiguation for the room is done.
-     * \sa displayName, rawName
+     * \sa displayName
      */
     QString name(const Room* room = nullptr) const;
 
-    /** Get the user name along with the bridge postfix
-     * This function is similar to name() but appends the bridge postfix
-     * (such as '(IRC)') to the user name. No disambiguation is done.
-     * \sa name, displayName
-     */
-    [[deprecated("Bridge postfixes exist no more, use name() instead")]]
-    QString rawName(const Room* room = nullptr) const;
-
     /** Get the displayed user name
      * When \p room is null, this method returns result of name() if
      * the name is non-empty; otherwise it returns user id.
@@ -70,13 +61,6 @@ public:
      */
     QString fullName(const Room* room = nullptr) const;
 
-    /**
-     * Returns the name of bridge the user is connected from or empty.
-     */
-    [[deprecated("Bridged status is no more supported; this always returns"
-                 " an empty string")]]
-    QString bridged() const;
-
     /** Whether the user is a guest
      * As of now, the function relies on the convention used in Synapse
      * that guests and only guests have all-numeric IDs. This may or
-- 
cgit v1.2.3


From 93cee89f9a99e51275ac9cd304180499b0543eea Mon Sep 17 00:00:00 2001
From: Alexey Rusakov <Kitsune-Ral@users.sf.net>
Date: Sun, 22 Aug 2021 20:45:53 +0200
Subject: Fix building with MSVC

---
 lib/jobs/basejob.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

(limited to 'lib/jobs')

diff --git a/lib/jobs/basejob.h b/lib/jobs/basejob.h
index 835cd822..29443c53 100644
--- a/lib/jobs/basejob.h
+++ b/lib/jobs/basejob.h
@@ -70,7 +70,10 @@ public:
     };
     Q_ENUM(StatusCode)
 
-    using Data Q_DECL_DEPRECATED_X("Use Quotient::RequestData instead") //
+    using Data
+#ifndef Q_CC_MSVC
+        Q_DECL_DEPRECATED_X("Use Quotient::RequestData instead")
+#endif
         = RequestData;
 
     /*!
-- 
cgit v1.2.3