summary refs log tree commit diff
path: root/include
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-04-11 17:45:47 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-04-11 17:45:47 +0300
commit6468faa39eda494d83310bec4a557d29bf037f8a (patch)
treec4a2632730c99500871fbc3a8f5d746585507089 /include
parentMake the timer single shot (diff)
downloadnheko-6468faa39eda494d83310bec4a557d29bf037f8a.tar.xz
Use only a MatrixClient as a shared pointer
Diffstat (limited to 'include')
-rw-r--r--include/ChatPage.h17
-rw-r--r--include/LoginPage.h18
-rw-r--r--include/MainWindow.h10
-rw-r--r--include/MatrixClient.h9
-rw-r--r--include/RegisterPage.h18
-rw-r--r--include/RoomList.h9
6 files changed, 42 insertions, 39 deletions
diff --git a/include/ChatPage.h b/include/ChatPage.h

index 4ee7441b..e5d6ee7f 100644 --- a/include/ChatPage.h +++ b/include/ChatPage.h
@@ -42,7 +42,7 @@ class ChatPage : public QWidget Q_OBJECT public: - explicit ChatPage(QWidget *parent = 0); + ChatPage(QSharedPointer<MatrixClient> client, QWidget *parent = 0); ~ChatPage(); // Initialize all the components of the UI. @@ -51,10 +51,10 @@ public: signals: void close(); -public slots: - // Updates the user info box. +private slots: + void updateTopBarAvatar(const QString &roomid, const QPixmap &img); void updateOwnProfileInfo(const QUrl &avatar_url, const QString &display_name); - void fetchRoomAvatar(const QString &roomid, const QUrl &avatar_url); + void setOwnAvatar(const QPixmap &img); void initialSyncCompleted(const SyncResponse &response); void syncCompleted(const SyncResponse &response); void syncFailed(const QString &msg); @@ -67,8 +67,6 @@ public slots: private: Ui::ChatPage *ui; - void setOwnAvatar(const QByteArray &img); - RoomList *room_list_; HistoryViewManager *view_manager_; @@ -83,11 +81,8 @@ private: UserInfoWidget *user_info_widget_; - // Matrix client - MatrixClient *matrix_client_; - - // Used for one off media requests. - QNetworkAccessManager *content_downloader_; + // Matrix Client API provider. + QSharedPointer<MatrixClient> client_; }; #endif // CHATPAGE_H diff --git a/include/LoginPage.h b/include/LoginPage.h
index a431a41e..8ed54def 100644 --- a/include/LoginPage.h +++ b/include/LoginPage.h
@@ -20,11 +20,13 @@ #include <QHBoxLayout> #include <QLabel> +#include <QSharedPointer> #include <QVBoxLayout> #include <QWidget> #include "FlatButton.h" #include "InputValidator.h" +#include "MatrixClient.h" #include "RaisedButton.h" #include "TextField.h" @@ -33,7 +35,7 @@ class LoginPage : public QWidget Q_OBJECT public: - explicit LoginPage(QWidget *parent = 0); + LoginPage(QSharedPointer<MatrixClient> client, QWidget *parent = 0); ~LoginPage(); void reset(); @@ -41,14 +43,6 @@ public: signals: void backButtonClicked(); - // Emitted after the matrix ID validation. The handler should be - // responsible for performing the actual login with a remote server. - void userLogin(const QString &username, const QString &password, const QString home_server); - -public slots: - // Displays errors produced during the login. - void loginError(QString error_message); - private slots: // Callback for the back button. void onBackButtonClicked(); @@ -56,6 +50,9 @@ private slots: // Callback for the login button. void onLoginButtonClicked(); + // Displays errors produced during the login. + void loginError(QString error_message); + private: QVBoxLayout *top_layout_; @@ -77,6 +74,9 @@ private: TextField *password_input_; InputValidator *matrix_id_validator_; + + // Matrix client API provider. + QSharedPointer<MatrixClient> client_; }; #endif // LOGINPAGE_H diff --git a/include/MainWindow.h b/include/MainWindow.h
index dbbda3f2..89d1df45 100644 --- a/include/MainWindow.h +++ b/include/MainWindow.h
@@ -19,6 +19,7 @@ #define MAINWINDOW_H #include <QMainWindow> +#include <QSharedPointer> #include "ChatPage.h" #include "LoginPage.h" @@ -53,12 +54,6 @@ public slots: // Show the chat page and start communicating with the given access token. void showChatPage(QString user_id, QString home_server, QString token); - // Performs the actual login. - void matrixLogin(const QString &username, const QString &password, const QString &home_server); - - // Performs the actual registration. - void matrixRegister(const QString &username, const QString &password, const QString &server); - private: // The UI component of the main window. Ui::MainWindow *ui_; @@ -78,7 +73,8 @@ private: // The main chat area. ChatPage *chat_page_; - MatrixClient *matrix_client_; + // Matrix Client API provider. + QSharedPointer<MatrixClient> client_; }; #endif // MAINWINDOW_H diff --git a/include/MatrixClient.h b/include/MatrixClient.h
index decd14ff..021a2594 100644 --- a/include/MatrixClient.h +++ b/include/MatrixClient.h
@@ -40,6 +40,8 @@ public: void login(const QString &username, const QString &password) noexcept; void registerUser(const QString &username, const QString &password, const QString &server) noexcept; void versions() noexcept; + void fetchRoomAvatar(const QString &roomid, const QUrl &avatar_url); + void fetchOwnAvatar(const QUrl &avatar_url); inline QString getHomeServer(); inline void incrementTransactionId(); @@ -63,6 +65,9 @@ signals: void loginSuccess(const QString &userid, const QString &homeserver, const QString &token); void registerSuccess(const QString &userid, const QString &homeserver, const QString &token); + void roomAvatarRetrieved(const QString &roomid, const QPixmap &img); + void ownAvatarRetrieved(const QPixmap &img); + // Returned profile data for the user's account. void getOwnProfileResponse(const QUrl &avatar_url, const QString &display_name); void initialSyncCompleted(const SyncResponse &response); @@ -76,11 +81,13 @@ private slots: private: enum Endpoint { GetOwnProfile, + GetOwnAvatar, GetProfile, InitialSync, Login, Logout, Register, + RoomAvatar, SendTextMessage, Sync, Versions, @@ -92,9 +99,11 @@ private: void onRegisterResponse(QNetworkReply *reply); void onVersionsResponse(QNetworkReply *reply); void onGetOwnProfileResponse(QNetworkReply *reply); + void onGetOwnAvatarResponse(QNetworkReply *reply); void onSendTextMessageResponse(QNetworkReply *reply); void onInitialSyncResponse(QNetworkReply *reply); void onSyncResponse(QNetworkReply *reply); + void onRoomAvatarResponse(QNetworkReply *reply); // Client API prefix. QString api_url_; diff --git a/include/RegisterPage.h b/include/RegisterPage.h
index 421cbd87..3e35959f 100644 --- a/include/RegisterPage.h +++ b/include/RegisterPage.h
@@ -20,11 +20,13 @@ #include <QHBoxLayout> #include <QLabel> +#include <QSharedPointer> #include <QVBoxLayout> #include <QWidget> #include "FlatButton.h" #include "InputValidator.h" +#include "MatrixClient.h" #include "RaisedButton.h" #include "TextField.h" @@ -33,24 +35,19 @@ class RegisterPage : public QWidget Q_OBJECT public: - explicit RegisterPage(QWidget *parent = 0); + RegisterPage(QSharedPointer<MatrixClient> client, QWidget *parent = 0); ~RegisterPage(); signals: void backButtonClicked(); - // Emitted after successful input validation. The handler should be - // responsible for the actual registering on the remote Matrix server. - void registerUser(const QString &username, const QString &password, const QString &server); - -public slots: - // Display registration specific errors to the user. - void registerError(const QString &msg); - private slots: void onBackButtonClicked(); void onRegisterButtonClicked(); + // Display registration specific errors to the user. + void registerError(const QString &msg); + private: QVBoxLayout *top_layout_; @@ -74,6 +71,9 @@ private: TextField *server_input_; InputValidator *validator_; + + // Matrix client API provider. + QSharedPointer<MatrixClient> client_; }; #endif // REGISTERPAGE_H diff --git a/include/RoomList.h b/include/RoomList.h
index 313fab9e..42ded171 100644 --- a/include/RoomList.h +++ b/include/RoomList.h
@@ -19,9 +19,11 @@ #define ROOMLIST_H #include <QImage> +#include <QSharedPointer> #include <QUrl> #include <QWidget> +#include "MatrixClient.h" #include "RoomInfo.h" #include "RoomInfoListItem.h" #include "Sync.h" @@ -36,26 +38,27 @@ class RoomList : public QWidget Q_OBJECT public: - explicit RoomList(QWidget *parent = 0); + RoomList(QSharedPointer<MatrixClient> client, QWidget *parent = 0); ~RoomList(); void setInitialRooms(const Rooms &rooms); - void updateRoomAvatar(const QString &roomid, const QImage &avatar_image); void clear(); RoomInfo extractRoomInfo(const State &room_state); signals: void roomChanged(const RoomInfo &info); - void fetchRoomAvatar(const QString &roomid, const QUrl &avatar_url); public slots: + void updateRoomAvatar(const QString &roomid, const QPixmap &img); void highlightSelectedRoom(const RoomInfo &info); private: Ui::RoomList *ui; QMap<QString, RoomInfoListItem *> rooms_; + + QSharedPointer<MatrixClient> client_; }; #endif // ROOMLIST_H