Reduce includes of MatrixClient.h, as it is the most expensive header
3 files changed, 20 insertions, 8 deletions
diff --git a/src/ChatPage.h b/src/ChatPage.h
index 6337f800..a7fb31a8 100644
--- a/src/ChatPage.h
+++ b/src/ChatPage.h
@@ -23,6 +23,7 @@
#include <mtx/common.hpp>
#include <mtx/responses.hpp>
+#include <mtxclient/http/errors.hpp>
#include <QFrame>
#include <QHBoxLayout>
@@ -34,7 +35,6 @@
#include "CacheStructs.h"
#include "CommunitiesList.h"
-#include "MatrixClient.h"
#include "Utils.h"
#include "notifications/Manager.h"
#include "popups/UserMentions.h"
@@ -56,6 +56,10 @@ constexpr int CONSENSUS_TIMEOUT = 1000;
constexpr int SHOW_CONTENT_TIMEOUT = 3000;
constexpr int TYPING_REFRESH_TIMEOUT = 10000;
+namespace mtx::http {
+using RequestErr = const std::optional<mtx::http::ClientError> &;
+}
+
class ChatPage : public QWidget
{
Q_OBJECT
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index d3d1ad34..ce238d94 100644
--- a/src/timeline/TimelineModel.cpp
+++ b/src/timeline/TimelineModel.cpp
@@ -11,6 +11,7 @@
#include "ChatPage.h"
#include "Logging.h"
#include "MainWindow.h"
+#include "MatrixClient.h"
#include "MxcImageProvider.h"
#include "Olm.h"
#include "TimelineViewManager.h"
@@ -1400,6 +1401,15 @@ TimelineModel::processOnePendingMessage()
void
TimelineModel::addPendingMessage(mtx::events::collections::TimelineEvents event)
{
+ std::visit(
+ [](auto &msg) {
+ msg.type = mtx::events::EventType::RoomMessage;
+ msg.event_id = http::client()->generate_txn_id();
+ msg.sender = http::client()->user_id().to_string();
+ msg.origin_server_ts = QDateTime::currentMSecsSinceEpoch();
+ },
+ event);
+
internalAddEvents({event});
QString txn_id_qstr =
diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h
index 5391c7c1..7ff80c45 100644
--- a/src/timeline/TimelineModel.h
+++ b/src/timeline/TimelineModel.h
@@ -8,10 +8,14 @@
#include <mtx/common.hpp>
#include <mtx/responses.hpp>
+#include <mtxclient/http/errors.hpp>
#include "CacheCryptoStructs.h"
#include "Logging.h"
-#include "MatrixClient.h"
+
+namespace mtx::http {
+using RequestErr = const std::optional<mtx::http::ClientError> &;
+}
namespace qml_mtx_events {
Q_NAMESPACE
@@ -232,13 +236,7 @@ template<class T>
void
TimelineModel::sendMessage(const T &msg)
{
- auto txn_id = http::client()->generate_txn_id();
mtx::events::RoomEvent<T> msgCopy = {};
msgCopy.content = msg;
- msgCopy.type = mtx::events::EventType::RoomMessage;
- msgCopy.event_id = txn_id;
- msgCopy.sender = http::client()->user_id().to_string();
- msgCopy.origin_server_ts = QDateTime::currentMSecsSinceEpoch();
-
emit newMessageToSend(msgCopy);
}
|