summary refs log tree commit diff
path: root/src/TimelineViewManager.cc
diff options
context:
space:
mode:
authorJani Mustonen <janijohannes@kapsi.fi>2017-11-15 18:38:50 +0200
committermujx <mujx@users.noreply.github.com>2017-11-15 18:38:50 +0200
commit4e1c8dd6639c2debe1e14c94e564237fb76ef48a (patch)
treeca25b85fbc2d1b87d5bbb41390e2edce5b166932 /src/TimelineViewManager.cc
parentUpdate travis to qt5.9.2 (diff)
downloadnheko-4e1c8dd6639c2debe1e14c94e564237fb76ef48a.tar.xz
Implement a per-room send queue. (#118)
[ci skip]
Diffstat (limited to 'src/TimelineViewManager.cc')
-rw-r--r--src/TimelineViewManager.cc28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/TimelineViewManager.cc b/src/TimelineViewManager.cc

index 37feabbe..35c2a560 100644 --- a/src/TimelineViewManager.cc +++ b/src/TimelineViewManager.cc
@@ -35,6 +35,10 @@ TimelineViewManager::TimelineViewManager(QSharedPointer<MatrixClient> client, QW connect( client_.data(), &MatrixClient::messageSent, this, &TimelineViewManager::messageSent); + + connect( + client_.data(), &MatrixClient::messageSendFailed, + this, &TimelineViewManager::messageSendFailed); } TimelineViewManager::~TimelineViewManager() {} @@ -51,28 +55,32 @@ TimelineViewManager::messageSent(const QString &event_id, const QString &roomid, } void -TimelineViewManager::sendTextMessage(const QString &msg) +TimelineViewManager::messageSendFailed(const QString &roomid, int txn_id) +{ + auto view = views_[roomid]; + view->handleFailedMessage(txn_id); +} + +void +TimelineViewManager::queueTextMessage(const QString &msg) { auto room_id = active_room_; auto view = views_[room_id]; - view->addUserMessage(matrix::events::MessageEventType::Text, msg, client_->transactionId()); - client_->sendRoomMessage(matrix::events::MessageEventType::Text, room_id, msg); + view->addUserMessage(matrix::events::MessageEventType::Text, msg); } void -TimelineViewManager::sendEmoteMessage(const QString &msg) +TimelineViewManager::queueEmoteMessage(const QString &msg) { auto room_id = active_room_; auto view = views_[room_id]; - view->addUserMessage( - matrix::events::MessageEventType::Emote, msg, client_->transactionId()); - client_->sendRoomMessage(matrix::events::MessageEventType::Emote, room_id, msg); + view->addUserMessage(matrix::events::MessageEventType::Emote, msg); } void -TimelineViewManager::sendImageMessage(const QString &roomid, +TimelineViewManager::queueImageMessage(const QString &roomid, const QString &filename, const QString &url) { @@ -83,9 +91,7 @@ TimelineViewManager::sendImageMessage(const QString &roomid, auto view = views_[roomid]; - view->addUserMessage(url, filename, client_->transactionId()); - client_->sendRoomMessage( - matrix::events::MessageEventType::Image, roomid, QFileInfo(filename).fileName(), url); + view->addUserMessage(url, filename); } void