summary refs log tree commit diff
path: root/include
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-05-08 18:43:56 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-05-08 18:43:56 +0300
commit4c4ea557b344b035507652cfbc3b616904f958e9 (patch)
treee8e610bfdaebb0ffb3a472f89b699bc3f65852b8 /include
parentRemove the pseudo deb & rpm packages from releases (diff)
downloadnheko-4c4ea557b344b035507652cfbc3b616904f958e9.tar.xz
Replace shared pointers of MatrixClient with a single instance
Diffstat (limited to 'include')
-rw-r--r--include/AvatarProvider.h8
-rw-r--r--include/ChatPage.h16
-rw-r--r--include/CommunitiesList.h5
-rw-r--r--include/LoginPage.h6
-rw-r--r--include/MainWindow.h3
-rw-r--r--include/MatrixClient.h12
-rw-r--r--include/RegisterPage.h5
-rw-r--r--include/RoomList.h6
-rw-r--r--include/timeline/TimelineItem.h4
-rw-r--r--include/timeline/TimelineView.h13
-rw-r--r--include/timeline/TimelineViewManager.h4
-rw-r--r--include/timeline/widgets/AudioItem.h9
-rw-r--r--include/timeline/widgets/FileItem.h9
-rw-r--r--include/timeline/widgets/ImageItem.h17
-rw-r--r--include/timeline/widgets/VideoItem.h10
15 files changed, 36 insertions, 91 deletions
diff --git a/include/AvatarProvider.h b/include/AvatarProvider.h

index fd5f15c4..af13a577 100644 --- a/include/AvatarProvider.h +++ b/include/AvatarProvider.h
@@ -22,7 +22,6 @@ #include <QSharedPointer> #include <functional> -class MatrixClient; class TimelineItem; class Cache; @@ -31,11 +30,7 @@ class AvatarProvider : public QObject Q_OBJECT public: - static void init(QSharedPointer<MatrixClient> client, QSharedPointer<Cache> cache) - { - client_ = client; - cache_ = cache; - } + static void init(QSharedPointer<Cache> cache) { cache_ = cache; } //! The callback is called with the downloaded avatar for the given user //! or the avatar is downloaded first and then saved for re-use. static void resolve(const QString &room_id, @@ -44,6 +39,5 @@ public: std::function<void(QImage)> callback); private: - static QSharedPointer<MatrixClient> client_; static QSharedPointer<Cache> cache_; }; diff --git a/include/ChatPage.h b/include/ChatPage.h
index 6e0cf2d9..057ce698 100644 --- a/include/ChatPage.h +++ b/include/ChatPage.h
@@ -30,7 +30,6 @@ #include <mtx.hpp> -class MatrixClient; class OverlayModal; class QuickSwitcher; class RoomList; @@ -59,9 +58,7 @@ class ChatPage : public QWidget Q_OBJECT public: - ChatPage(QSharedPointer<MatrixClient> client, - QSharedPointer<UserSettings> userSettings, - QWidget *parent = 0); + ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent = 0); // Initialize all the components of the UI. void bootstrap(QString userid, QString homeserver, QString token); @@ -70,14 +67,6 @@ public: QString currentRoom() const { return current_room_; } static ChatPage *instance() { return instance_; } - void readEvent(const QString &room_id, const QString &event_id) - { - client_->readEvent(room_id, event_id); - } - void redactEvent(const QString &room_id, const QString &event_id) - { - client_->redactEvent(room_id, event_id); - } QSharedPointer<UserSettings> userSettings() { return userSettings_; } QSharedPointer<Cache> cache() { return cache_; } @@ -192,9 +181,6 @@ private: QSharedPointer<dialogs::ReadReceipts> receiptsDialog_; QSharedPointer<OverlayModal> receiptsModal_; - // Matrix Client API provider. - QSharedPointer<MatrixClient> client_; - // Global user settings. QSharedPointer<UserSettings> userSettings_; diff --git a/include/CommunitiesList.h b/include/CommunitiesList.h
index 81408f58..3299e7c4 100644 --- a/include/CommunitiesList.h +++ b/include/CommunitiesList.h
@@ -6,7 +6,6 @@ #include "CommunitiesListItem.h" #include "Community.h" -#include "MatrixClient.h" #include "ui/Theme.h" class CommunitiesList : public QWidget @@ -14,7 +13,7 @@ class CommunitiesList : public QWidget Q_OBJECT public: - CommunitiesList(QSharedPointer<MatrixClient> client, QWidget *parent = nullptr); + CommunitiesList(QWidget *parent = nullptr); void setCommunities(const std::map<QString, QSharedPointer<Community>> &communities); void clear() { communities_.clear(); } @@ -44,6 +43,4 @@ private: QScrollArea *scrollArea_; std::map<QString, QSharedPointer<CommunitiesListItem>> communities_; - - QSharedPointer<MatrixClient> client_; }; diff --git a/include/LoginPage.h b/include/LoginPage.h
index 34835229..34a08df9 100644 --- a/include/LoginPage.h +++ b/include/LoginPage.h
@@ -24,7 +24,6 @@ class FlatButton; class LoadingIndicator; -class MatrixClient; class OverlayModal; class RaisedButton; class TextField; @@ -34,7 +33,7 @@ class LoginPage : public QWidget Q_OBJECT public: - LoginPage(QSharedPointer<MatrixClient> client, QWidget *parent = 0); + LoginPage(QWidget *parent = 0); void reset(); @@ -97,7 +96,4 @@ private: TextField *matrixid_input_; TextField *password_input_; TextField *serverInput_; - - // Matrix client API provider. - QSharedPointer<MatrixClient> client_; }; diff --git a/include/MainWindow.h b/include/MainWindow.h
index 1ffbe850..0fbc7567 100644 --- a/include/MainWindow.h +++ b/include/MainWindow.h
@@ -31,7 +31,6 @@ class ChatPage; class LoadingIndicator; -class MatrixClient; class OverlayModal; class SnackBar; class TrayIcon; @@ -125,8 +124,6 @@ private: //! Used to hide undefined states between page transitions. QSharedPointer<OverlayModal> progressModal_; QSharedPointer<LoadingIndicator> spinner_; - //! Matrix Client API provider. - QSharedPointer<MatrixClient> client_; //! Tray icon that shows the unread message count. TrayIcon *trayIcon_; //! Notifications display. diff --git a/include/MatrixClient.h b/include/MatrixClient.h
index 35f05c31..6ed1c2c8 100644 --- a/include/MatrixClient.h +++ b/include/MatrixClient.h
@@ -43,7 +43,7 @@ class MatrixClient : public QNetworkAccessManager { Q_OBJECT public: - MatrixClient(QString server, QObject *parent = 0); + MatrixClient(QObject *parent = 0); // Client API. void initialSync() noexcept; @@ -211,3 +211,13 @@ private: //! Filter to be send as filter-param for (initial) /sync requests. QString filter_; }; + +namespace http { +//! Initialize the http module +void +init(QObject *parent); + +//! Retrieve the client instance. +MatrixClient * +client(); +} diff --git a/include/RegisterPage.h b/include/RegisterPage.h
index 32f2fcf2..f4d97816 100644 --- a/include/RegisterPage.h +++ b/include/RegisterPage.h
@@ -23,7 +23,6 @@ #include <memory> class FlatButton; -class MatrixClient; class RaisedButton; class TextField; @@ -36,7 +35,7 @@ class RegisterPage : public QWidget Q_OBJECT public: - RegisterPage(QSharedPointer<MatrixClient> client, QWidget *parent = 0); + RegisterPage(QWidget *parent = 0); protected: void paintEvent(QPaintEvent *event) override; @@ -75,8 +74,6 @@ private: TextField *password_confirmation_; TextField *server_input_; - // Matrix client API provider. - QSharedPointer<MatrixClient> client_; //! ReCaptcha dialog. std::shared_ptr<dialogs::ReCaptcha> captchaDialog_; }; diff --git a/include/RoomList.h b/include/RoomList.h
index bdfb7218..202e075c 100644 --- a/include/RoomList.h +++ b/include/RoomList.h
@@ -26,7 +26,6 @@ #include <mtx.hpp> class LeaveRoomDialog; -class MatrixClient; class OverlayModal; class RoomInfoListItem; class Sync; @@ -40,9 +39,7 @@ class RoomList : public QWidget Q_OBJECT public: - RoomList(QSharedPointer<MatrixClient> client, - QSharedPointer<UserSettings> userSettings, - QWidget *parent = 0); + RoomList(QSharedPointer<UserSettings> userSettings, QWidget *parent = 0); void setCache(QSharedPointer<Cache> cache) { cache_ = cache; } void initialize(const QMap<QString, RoomInfo> &info); @@ -105,7 +102,6 @@ private: //! Which rooms to include in the room list. std::vector<QString> roomFilter_; - QSharedPointer<MatrixClient> client_; QSharedPointer<Cache> cache_; QSharedPointer<UserSettings> userSettings_; diff --git a/include/timeline/TimelineItem.h b/include/timeline/TimelineItem.h
index 82ff5ca7..064dead4 100644 --- a/include/timeline/TimelineItem.h +++ b/include/timeline/TimelineItem.h
@@ -26,11 +26,11 @@ #include <QStyleOption> #include "AvatarProvider.h" -#include "ChatPage.h" #include "RoomInfoListItem.h" #include "Utils.h" #include "Cache.h" +#include "MatrixClient.h" class ImageItem; class StickerItem; @@ -121,7 +121,7 @@ public: void sendReadReceipt() const { if (!event_id_.isEmpty()) - ChatPage::instance()->readEvent(room_id_, event_id_); + http::client()->readEvent(room_id_, event_id_); } //! Add a user avatar for this event. diff --git a/include/timeline/TimelineView.h b/include/timeline/TimelineView.h
index 02e2872a..2ad00058 100644 --- a/include/timeline/TimelineView.h +++ b/include/timeline/TimelineView.h
@@ -25,6 +25,7 @@ #include <QScrollArea> #include <QStyle> #include <QStyleOption> +#include <QTimer> #include <mtx/events.hpp> #include <mtx/responses/messages.hpp> @@ -117,12 +118,9 @@ class TimelineView : public QWidget public: TimelineView(const mtx::responses::Timeline &timeline, - QSharedPointer<MatrixClient> client, - const QString &room_id, - QWidget *parent = 0); - TimelineView(QSharedPointer<MatrixClient> client, const QString &room_id, QWidget *parent = 0); + TimelineView(const QString &room_id, QWidget *parent = 0); // Add new events at the end of the timeline. void addEvents(const mtx::responses::Timeline &timeline); @@ -298,7 +296,6 @@ private: QMap<QString, TimelineItem *> eventIds_; QQueue<PendingMessage> pending_msgs_; QList<PendingMessage> pending_sent_msgs_; - QSharedPointer<MatrixClient> client_; }; template<class Widget, mtx::events::MessageType MsgType> @@ -311,7 +308,7 @@ TimelineView::addUserMessage(const QString &url, auto with_sender = (lastSender_ != local_user_) || isDateDifference(lastMsgTimestamp_); auto trimmed = QFileInfo{filename}.fileName(); // Trim file path. - auto widget = new Widget(client_, url, trimmed, size, this); + auto widget = new Widget(url, trimmed, size, this); TimelineItem *view_item = new TimelineItem(widget, local_user_, with_sender, room_id_, scroll_widget_); @@ -325,7 +322,7 @@ TimelineView::addUserMessage(const QString &url, // Keep track of the sender and the timestamp of the current message. saveLastMessageInfo(local_user_, QDateTime::currentDateTime()); - int txn_id = client_->incrementTransactionId(); + int txn_id = http::client()->incrementTransactionId(); PendingMessage message(MsgType, txn_id, url, trimmed, mime, size, "", view_item); handleNewUserMessage(message); @@ -343,7 +340,7 @@ template<class Event, class Widget> TimelineItem * TimelineView::createTimelineItem(const Event &event, bool withSender) { - auto eventWidget = new Widget(client_, event); + auto eventWidget = new Widget(event); auto item = new TimelineItem(eventWidget, event, withSender, room_id_, scroll_widget_); return item; diff --git a/include/timeline/TimelineViewManager.h b/include/timeline/TimelineViewManager.h
index 4c994098..308b83aa 100644 --- a/include/timeline/TimelineViewManager.h +++ b/include/timeline/TimelineViewManager.h
@@ -24,7 +24,6 @@ class QFile; -class MatrixClient; class RoomInfoListItem; class TimelineView; struct DescInfo; @@ -34,7 +33,7 @@ class TimelineViewManager : public QStackedWidget Q_OBJECT public: - TimelineViewManager(QSharedPointer<MatrixClient> client, QWidget *parent); + TimelineViewManager(QWidget *parent); // Initialize with timeline events. void initialize(const mtx::responses::Rooms &rooms); @@ -91,5 +90,4 @@ private: QString active_room_; std::map<QString, QSharedPointer<TimelineView>> views_; - QSharedPointer<MatrixClient> client_; }; diff --git a/include/timeline/widgets/AudioItem.h b/include/timeline/widgets/AudioItem.h
index b1d47dd5..1020c3e5 100644 --- a/include/timeline/widgets/AudioItem.h +++ b/include/timeline/widgets/AudioItem.h
@@ -24,8 +24,6 @@ #include <QSharedPointer> #include <QWidget> -#include "MatrixClient.h" - #include <mtx.hpp> class AudioItem : public QWidget @@ -42,12 +40,10 @@ class AudioItem : public QWidget durationForegroundColor) public: - AudioItem(QSharedPointer<MatrixClient> client, - const mtx::events::RoomEvent<mtx::events::msg::Audio> &event, + AudioItem(const mtx::events::RoomEvent<mtx::events::msg::Audio> &event, QWidget *parent = nullptr); - AudioItem(QSharedPointer<MatrixClient> client, - const QString &url, + AudioItem(const QString &url, const QString &filename, uint64_t size, QWidget *parent = nullptr); @@ -90,7 +86,6 @@ private: QString filenameToSave_; mtx::events::RoomEvent<mtx::events::msg::Audio> event_; - QSharedPointer<MatrixClient> client_; QMediaPlayer *player_; diff --git a/include/timeline/widgets/FileItem.h b/include/timeline/widgets/FileItem.h
index bc75913d..4f590df6 100644 --- a/include/timeline/widgets/FileItem.h +++ b/include/timeline/widgets/FileItem.h
@@ -25,8 +25,6 @@ #include <mtx.hpp> -#include "MatrixClient.h" - class FileItem : public QWidget { Q_OBJECT @@ -36,12 +34,10 @@ class FileItem : public QWidget Q_PROPERTY(QColor backgroundColor WRITE setBackgroundColor READ backgroundColor) public: - FileItem(QSharedPointer<MatrixClient> client, - const mtx::events::RoomEvent<mtx::events::msg::File> &event, + FileItem(const mtx::events::RoomEvent<mtx::events::msg::File> &event, QWidget *parent = nullptr); - FileItem(QSharedPointer<MatrixClient> client, - const QString &url, + FileItem(const QString &url, const QString &filename, uint64_t size, QWidget *parent = nullptr); @@ -71,7 +67,6 @@ private: QString filenameToSave_; mtx::events::RoomEvent<mtx::events::msg::File> event_; - QSharedPointer<MatrixClient> client_; QIcon icon_; diff --git a/include/timeline/widgets/ImageItem.h b/include/timeline/widgets/ImageItem.h
index 146aa7f6..b17b2d8b 100644 --- a/include/timeline/widgets/ImageItem.h +++ b/include/timeline/widgets/ImageItem.h
@@ -24,8 +24,6 @@ #include <mtx.hpp> -#include "MatrixClient.h" - namespace dialogs { class ImageOverlay; } @@ -34,12 +32,10 @@ class ImageItem : public QWidget { Q_OBJECT public: - ImageItem(QSharedPointer<MatrixClient> client, - const mtx::events::RoomEvent<mtx::events::msg::Image> &event, + ImageItem(const mtx::events::RoomEvent<mtx::events::msg::Image> &event, QWidget *parent = nullptr); - ImageItem(QSharedPointer<MatrixClient> client, - const QString &url, + ImageItem(const QString &url, const QString &filename, uint64_t size, QWidget *parent = nullptr); @@ -81,8 +77,6 @@ private: QRectF imageRegion_; mtx::events::RoomEvent<mtx::events::msg::Image> event_; - - QSharedPointer<MatrixClient> client_; }; class StickerItem : public ImageItem @@ -90,11 +84,8 @@ class StickerItem : public ImageItem Q_OBJECT public: - StickerItem(QSharedPointer<MatrixClient> client, - const mtx::events::Sticker &event, - QWidget *parent = nullptr) - : ImageItem{client, - QString::fromStdString(event.content.url), + StickerItem(const mtx::events::Sticker &event, QWidget *parent = nullptr) + : ImageItem{QString::fromStdString(event.content.url), QString::fromStdString(event.content.body), event.content.info.size, parent} diff --git a/include/timeline/widgets/VideoItem.h b/include/timeline/widgets/VideoItem.h
index 89732975..26fa1c35 100644 --- a/include/timeline/widgets/VideoItem.h +++ b/include/timeline/widgets/VideoItem.h
@@ -20,10 +20,9 @@ #include <QEvent> #include <QLabel> #include <QSharedPointer> +#include <QUrl> #include <QWidget> -#include "MatrixClient.h" - #include <mtx.hpp> class VideoItem : public QWidget @@ -31,12 +30,10 @@ class VideoItem : public QWidget Q_OBJECT public: - VideoItem(QSharedPointer<MatrixClient> client, - const mtx::events::RoomEvent<mtx::events::msg::Video> &event, + VideoItem(const mtx::events::RoomEvent<mtx::events::msg::Video> &event, QWidget *parent = nullptr); - VideoItem(QSharedPointer<MatrixClient> client, - const QString &url, + VideoItem(const QString &url, const QString &filename, uint64_t size, QWidget *parent = nullptr); @@ -51,5 +48,4 @@ private: QLabel *label_; mtx::events::RoomEvent<mtx::events::msg::Video> event_; - QSharedPointer<MatrixClient> client_; };