diff options
author | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2017-12-11 23:00:37 +0200 |
---|---|---|
committer | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2017-12-11 23:00:37 +0200 |
commit | 544b62351212188449851b7092cf229091c6f612 (patch) | |
tree | b4201211717b25fc90819a1291e8a16373bd7aea /include | |
parent | 3c5241ccd00b1e920386843b0a8d92ae09c6614a (diff) |
Add dialog to create rooms
fixes #25
Diffstat (limited to 'include')
-rw-r--r-- | include/MatrixClient.h | 3 | ||||
-rw-r--r-- | include/SideBarActions.h | 5 | ||||
-rw-r--r-- | include/dialogs/CreateRoom.h | 44 |
3 files changed, 52 insertions, 0 deletions
diff --git a/include/MatrixClient.h b/include/MatrixClient.h index ee493da6..2e76061f 100644 --- a/include/MatrixClient.h +++ b/include/MatrixClient.h @@ -61,6 +61,7 @@ public: void removeTypingNotification(const QString &roomid); void readEvent(const QString &room_id, const QString &event_id); void inviteUser(const QString &room_id, const QString &user); + void createRoom(const mtx::requests::CreateRoom &request); QUrl getHomeServer() { return server_; }; int transactionId() { return txn_id_; }; @@ -86,6 +87,7 @@ signals: void loggedOut(); void invitedUser(const QString &room_id, const QString &user); + void roomCreated(const QString &room_id); void loginSuccess(const QString &userid, const QString &homeserver, const QString &token); void registerSuccess(const QString &userid, @@ -115,6 +117,7 @@ signals: void messagesRetrieved(const QString &room_id, const mtx::responses::Messages &msgs); void joinedRoom(const QString &room_id); void leftRoom(const QString &room_id); + void roomCreationFailed(const QString &msg); private: QNetworkReply *makeUploadRequest(const QString &filename); diff --git a/include/SideBarActions.h b/include/SideBarActions.h index 7fbb7e67..f9b9bb1c 100644 --- a/include/SideBarActions.h +++ b/include/SideBarActions.h @@ -8,6 +8,7 @@ #include "FlatButton.h" #include "Menu.h" +#include "dialogs/CreateRoom.h" #include "dialogs/JoinRoom.h" class OverlayModal; @@ -23,6 +24,7 @@ public: signals: void showSettings(); void joinRoom(const QString &room); + void createRoom(const mtx::requests::CreateRoom &request); protected: void resizeEvent(QResizeEvent *event) override; @@ -37,6 +39,9 @@ private: QSharedPointer<OverlayModal> joinRoomModal_; QSharedPointer<dialogs::JoinRoom> joinRoomDialog_; + QSharedPointer<OverlayModal> createRoomModal_; + QSharedPointer<dialogs::CreateRoom> createRoomDialog_; + FlatButton *settingsBtn_; FlatButton *createRoomBtn_; FlatButton *joinRoomBtn_; diff --git a/include/dialogs/CreateRoom.h b/include/dialogs/CreateRoom.h new file mode 100644 index 00000000..96095187 --- /dev/null +++ b/include/dialogs/CreateRoom.h @@ -0,0 +1,44 @@ +#pragma once + +#include <QFrame> + +#include <mtx.hpp> + +class FlatButton; +class TextField; +class QComboBox; +class Toggle; + +namespace dialogs { + +class CreateRoom : public QFrame +{ + Q_OBJECT +public: + CreateRoom(QWidget *parent = nullptr); + +signals: + void closing(bool isCreating, const mtx::requests::CreateRoom &request); + +protected: + void paintEvent(QPaintEvent *event) override; + +private: + void clearFields(); + + QComboBox *visibilityCombo_; + QComboBox *presetCombo_; + + Toggle *directToggle_; + + FlatButton *confirmBtn_; + FlatButton *cancelBtn_; + + TextField *nameInput_; + TextField *topicInput_; + TextField *aliasInput_; + + mtx::requests::CreateRoom request_; +}; + +} // dialogs |