diff --git a/src/timeline/TimelineItem.cc b/src/timeline/TimelineItem.cc
index 5084b978..6f126d3d 100644
--- a/src/timeline/TimelineItem.cc
+++ b/src/timeline/TimelineItem.cc
@@ -19,8 +19,10 @@
#include <QFontDatabase>
#include <QMenu>
#include <QTextEdit>
+#include <QTimer>
#include "Avatar.h"
+#include "ChatPage.h"
#include "Config.h"
#include "timeline/TimelineItem.h"
@@ -63,7 +65,7 @@ TimelineItem::init()
connect(redactMsg_, &QAction::triggered, this, [this]() {
if (!event_id_.isEmpty())
- ChatPage::instance()->redactEvent(room_id_, event_id_);
+ http::client()->redactEvent(room_id_, event_id_);
});
connect(markAsRead_, &QAction::triggered, this, [this]() { sendReadReceipt(); });
diff --git a/src/timeline/TimelineView.cc b/src/timeline/TimelineView.cc
index 5b433674..94ecb304 100644
--- a/src/timeline/TimelineView.cc
+++ b/src/timeline/TimelineView.cc
@@ -84,26 +84,21 @@ DateSeparator::paintEvent(QPaintEvent *)
}
TimelineView::TimelineView(const mtx::responses::Timeline &timeline,
- QSharedPointer<MatrixClient> client,
const QString &room_id,
QWidget *parent)
: QWidget(parent)
, room_id_{room_id}
- , client_{client}
{
init();
addEvents(timeline);
}
-TimelineView::TimelineView(QSharedPointer<MatrixClient> client,
- const QString &room_id,
- QWidget *parent)
+TimelineView::TimelineView(const QString &room_id, QWidget *parent)
: QWidget(parent)
, room_id_{room_id}
- , client_{client}
{
init();
- client_->messages(room_id_, "");
+ http::client()->messages(room_id_, "");
}
void
@@ -143,7 +138,7 @@ TimelineView::fetchHistory()
return;
isPaginationInProgress_ = true;
- client_->messages(room_id_, prev_batch_token_);
+ http::client()->messages(room_id_, prev_batch_token_);
paginationTimer_->start(5000);
return;
@@ -194,7 +189,7 @@ TimelineView::sliderMoved(int position)
// FIXME: Maybe move this to TimelineViewManager to remove the
// extra calls?
- client_->messages(room_id_, prev_batch_token_);
+ http::client()->messages(room_id_, prev_batch_token_);
}
}
@@ -430,7 +425,7 @@ TimelineView::init()
paginationTimer_ = new QTimer(this);
connect(paginationTimer_, &QTimer::timeout, this, &TimelineView::fetchHistory);
- connect(client_.data(),
+ connect(http::client(),
&MatrixClient::messagesRetrieved,
this,
&TimelineView::addBackwardsEvents);
@@ -551,7 +546,7 @@ TimelineView::addUserMessage(mtx::events::MessageType ty, const QString &body)
saveLastMessageInfo(local_user_, QDateTime::currentDateTime());
- int txn_id = client_->incrementTransactionId();
+ int txn_id = http::client()->incrementTransactionId();
PendingMessage message(ty, txn_id, body, "", "", -1, "", view_item);
handleNewUserMessage(message);
}
@@ -577,11 +572,12 @@ TimelineView::sendNextPendingMessage()
case mtx::events::MessageType::Video:
case mtx::events::MessageType::File:
// FIXME: Improve the API
- client_->sendRoomMessage(
+ http::client()->sendRoomMessage(
m.ty, m.txn_id, room_id_, m.filename, m.mime, m.media_size, m.body);
break;
default:
- client_->sendRoomMessage(m.ty, m.txn_id, room_id_, m.body, m.mime, m.media_size);
+ http::client()->sendRoomMessage(
+ m.ty, m.txn_id, room_id_, m.body, m.mime, m.media_size);
break;
}
}
@@ -675,7 +671,7 @@ TimelineView::readLastEvent() const
const auto eventId = getLastEventId();
if (!eventId.isEmpty())
- client_->readEvent(room_id_, eventId);
+ http::client()->readEvent(room_id_, eventId);
}
QString
diff --git a/src/timeline/TimelineViewManager.cc b/src/timeline/TimelineViewManager.cc
index 28f44770..b7ce53ae 100644
--- a/src/timeline/TimelineViewManager.cc
+++ b/src/timeline/TimelineViewManager.cc
@@ -31,21 +31,20 @@
#include "timeline/widgets/ImageItem.h"
#include "timeline/widgets/VideoItem.h"
-TimelineViewManager::TimelineViewManager(QSharedPointer<MatrixClient> client, QWidget *parent)
+TimelineViewManager::TimelineViewManager(QWidget *parent)
: QStackedWidget(parent)
- , client_(client)
{
setStyleSheet("border: none;");
connect(
- client_.data(), &MatrixClient::messageSent, this, &TimelineViewManager::messageSent);
+ http::client(), &MatrixClient::messageSent, this, &TimelineViewManager::messageSent);
- connect(client_.data(),
+ connect(http::client(),
&MatrixClient::messageSendFailed,
this,
&TimelineViewManager::messageSendFailed);
- connect(client_.data(),
+ connect(http::client(),
&MatrixClient::redactionCompleted,
this,
[this](const QString &room_id, const QString &event_id) {
@@ -190,7 +189,7 @@ TimelineViewManager::addRoom(const mtx::responses::JoinedRoom &room, const QStri
return;
// Create a history view with the room events.
- TimelineView *view = new TimelineView(room.timeline, client_, room_id);
+ TimelineView *view = new TimelineView(room.timeline, room_id);
views_.emplace(room_id, QSharedPointer<TimelineView>(view));
connect(view,
@@ -209,7 +208,7 @@ TimelineViewManager::addRoom(const QString &room_id)
return;
// Create a history view without any events.
- TimelineView *view = new TimelineView(client_, room_id);
+ TimelineView *view = new TimelineView(room_id);
views_.emplace(room_id, QSharedPointer<TimelineView>(view));
connect(view,
diff --git a/src/timeline/widgets/AudioItem.cc b/src/timeline/widgets/AudioItem.cc
index 79f944ff..5a2bca92 100644
--- a/src/timeline/widgets/AudioItem.cc
+++ b/src/timeline/widgets/AudioItem.cc
@@ -23,6 +23,7 @@
#include <QPainter>
#include <QPixmap>
+#include "MatrixClient.h"
#include "Utils.h"
#include "timeline/widgets/AudioItem.h"
@@ -57,7 +58,7 @@ AudioItem::init()
QString media_params = url_parts[1];
url_ = QString("%1/_matrix/media/r0/download/%2")
- .arg(client_.data()->getHomeServer().toString(), media_params);
+ .arg(http::client()->getHomeServer().toString(), media_params);
player_ = new QMediaPlayer;
player_->setMedia(QUrl(url_));
@@ -73,29 +74,21 @@ AudioItem::init()
});
}
-AudioItem::AudioItem(QSharedPointer<MatrixClient> client,
- const mtx::events::RoomEvent<mtx::events::msg::Audio> &event,
- QWidget *parent)
+AudioItem::AudioItem(const mtx::events::RoomEvent<mtx::events::msg::Audio> &event, QWidget *parent)
: QWidget(parent)
, url_{QUrl(QString::fromStdString(event.content.url))}
, text_{QString::fromStdString(event.content.body)}
, event_{event}
- , client_{client}
{
readableFileSize_ = utils::humanReadableFileSize(event.content.info.size);
init();
}
-AudioItem::AudioItem(QSharedPointer<MatrixClient> client,
- const QString &url,
- const QString &filename,
- uint64_t size,
- QWidget *parent)
+AudioItem::AudioItem(const QString &url, const QString &filename, uint64_t size, QWidget *parent)
: QWidget(parent)
, url_{url}
, text_{filename}
- , client_{client}
{
readableFileSize_ = utils::humanReadableFileSize(size);
@@ -134,7 +127,7 @@ AudioItem::mousePressEvent(QMouseEvent *event)
if (filenameToSave_.isEmpty())
return;
- auto proxy = client_->downloadFile(url_);
+ auto proxy = http::client()->downloadFile(url_);
connect(proxy.data(),
&DownloadMediaProxy::fileDownloaded,
this,
diff --git a/src/timeline/widgets/FileItem.cc b/src/timeline/widgets/FileItem.cc
index 7445eb0f..7ff60d87 100644
--- a/src/timeline/widgets/FileItem.cc
+++ b/src/timeline/widgets/FileItem.cc
@@ -23,6 +23,7 @@
#include <QPainter>
#include <QPixmap>
+#include "MatrixClient.h"
#include "Utils.h"
#include "timeline/widgets/FileItem.h"
@@ -56,32 +57,24 @@ FileItem::init()
QString media_params = url_parts[1];
url_ = QString("%1/_matrix/media/r0/download/%2")
- .arg(client_.data()->getHomeServer().toString(), media_params);
+ .arg(http::client()->getHomeServer().toString(), media_params);
}
-FileItem::FileItem(QSharedPointer<MatrixClient> client,
- const mtx::events::RoomEvent<mtx::events::msg::File> &event,
- QWidget *parent)
+FileItem::FileItem(const mtx::events::RoomEvent<mtx::events::msg::File> &event, QWidget *parent)
: QWidget(parent)
, url_{QString::fromStdString(event.content.url)}
, text_{QString::fromStdString(event.content.body)}
, event_{event}
- , client_{client}
{
readableFileSize_ = utils::humanReadableFileSize(event.content.info.size);
init();
}
-FileItem::FileItem(QSharedPointer<MatrixClient> client,
- const QString &url,
- const QString &filename,
- uint64_t size,
- QWidget *parent)
+FileItem::FileItem(const QString &url, const QString &filename, uint64_t size, QWidget *parent)
: QWidget(parent)
, url_{url}
, text_{filename}
- , client_{client}
{
readableFileSize_ = utils::humanReadableFileSize(size);
@@ -120,7 +113,7 @@ FileItem::mousePressEvent(QMouseEvent *event)
if (filenameToSave_.isEmpty())
return;
- auto proxy = client_->downloadFile(url_);
+ auto proxy = http::client()->downloadFile(url_);
connect(proxy.data(),
&DownloadMediaProxy::fileDownloaded,
this,
diff --git a/src/timeline/widgets/ImageItem.cc b/src/timeline/widgets/ImageItem.cc
index 03f9741b..66cd31ab 100644
--- a/src/timeline/widgets/ImageItem.cc
+++ b/src/timeline/widgets/ImageItem.cc
@@ -25,16 +25,14 @@
#include <QUuid>
#include "Config.h"
+#include "MatrixClient.h"
#include "Utils.h"
#include "dialogs/ImageOverlay.h"
#include "timeline/widgets/ImageItem.h"
-ImageItem::ImageItem(QSharedPointer<MatrixClient> client,
- const mtx::events::RoomEvent<mtx::events::msg::Image> &event,
- QWidget *parent)
+ImageItem::ImageItem(const mtx::events::RoomEvent<mtx::events::msg::Image> &event, QWidget *parent)
: QWidget(parent)
, event_{event}
- , client_{client}
{
setMouseTracking(true);
setCursor(Qt::PointingHandCursor);
@@ -52,9 +50,9 @@ ImageItem::ImageItem(QSharedPointer<MatrixClient> client,
QString media_params = url_parts[1];
url_ = QString("%1/_matrix/media/r0/download/%2")
- .arg(client_.data()->getHomeServer().toString(), media_params);
+ .arg(http::client()->getHomeServer().toString(), media_params);
- auto proxy = client_.data()->downloadImage(url_);
+ auto proxy = http::client()->downloadImage(url_);
connect(proxy.data(),
&DownloadMediaProxy::imageDownloaded,
@@ -65,15 +63,10 @@ ImageItem::ImageItem(QSharedPointer<MatrixClient> client,
});
}
-ImageItem::ImageItem(QSharedPointer<MatrixClient> client,
- const QString &url,
- const QString &filename,
- uint64_t size,
- QWidget *parent)
+ImageItem::ImageItem(const QString &url, const QString &filename, uint64_t size, QWidget *parent)
: QWidget(parent)
, url_{url}
, text_{filename}
- , client_{client}
{
Q_UNUSED(size);
@@ -90,9 +83,9 @@ ImageItem::ImageItem(QSharedPointer<MatrixClient> client,
QString media_params = url_parts[1];
url_ = QString("%1/_matrix/media/r0/download/%2")
- .arg(client_.data()->getHomeServer().toString(), media_params);
+ .arg(http::client()->getHomeServer().toString(), media_params);
- auto proxy = client_.data()->downloadImage(url_);
+ auto proxy = http::client()->downloadImage(url_);
connect(proxy.data(),
&DownloadMediaProxy::imageDownloaded,
@@ -238,7 +231,7 @@ ImageItem::saveAs()
if (filename.isEmpty())
return;
- auto proxy = client_->downloadFile(url_);
+ auto proxy = http::client()->downloadFile(url_);
connect(proxy.data(),
&DownloadMediaProxy::fileDownloaded,
this,
diff --git a/src/timeline/widgets/VideoItem.cc b/src/timeline/widgets/VideoItem.cc
index 788db0ed..f5bcfd6e 100644
--- a/src/timeline/widgets/VideoItem.cc
+++ b/src/timeline/widgets/VideoItem.cc
@@ -20,6 +20,7 @@
#include <QVBoxLayout>
#include "Config.h"
+#include "MatrixClient.h"
#include "Utils.h"
#include "timeline/widgets/VideoItem.h"
@@ -34,17 +35,14 @@ VideoItem::init()
QString media_params = url_parts[1];
url_ = QString("%1/_matrix/media/r0/download/%2")
- .arg(client_.data()->getHomeServer().toString(), media_params);
+ .arg(http::client()->getHomeServer().toString(), media_params);
}
-VideoItem::VideoItem(QSharedPointer<MatrixClient> client,
- const mtx::events::RoomEvent<mtx::events::msg::Video> &event,
- QWidget *parent)
+VideoItem::VideoItem(const mtx::events::RoomEvent<mtx::events::msg::Video> &event, QWidget *parent)
: QWidget(parent)
, url_{QString::fromStdString(event.content.url)}
, text_{QString::fromStdString(event.content.body)}
, event_{event}
- , client_{client}
{
readableFileSize_ = utils::humanReadableFileSize(event.content.info.size);
@@ -65,15 +63,10 @@ VideoItem::VideoItem(QSharedPointer<MatrixClient> client,
layout->addWidget(label_);
}
-VideoItem::VideoItem(QSharedPointer<MatrixClient> client,
- const QString &url,
- const QString &filename,
- uint64_t size,
- QWidget *parent)
+VideoItem::VideoItem(const QString &url, const QString &filename, uint64_t size, QWidget *parent)
: QWidget(parent)
, url_{url}
, text_{filename}
- , client_{client}
{
readableFileSize_ = utils::humanReadableFileSize(size);
|