summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2019-12-15 03:19:33 +0100
committerNicolas Werner <nicolas.werner@hotmail.de>2019-12-15 03:19:33 +0100
commit37fbcaf07b205cc0bb89690a415cd06a2814d1a4 (patch)
tree5db18d392838ec785e8867e9b761919e4f79a353 /src
parentReduce overhead of Cache.h (diff)
downloadnheko-37fbcaf07b205cc0bb89690a415cd06a2814d1a4.tar.xz
Reduce includes of MatrixClient.h, as it is the most expensive header
Diffstat (limited to 'src')
-rw-r--r--src/ChatPage.h6
-rw-r--r--src/timeline/TimelineModel.cpp10
-rw-r--r--src/timeline/TimelineModel.h12
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); }