summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-12-11 23:00:37 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-12-11 23:00:37 +0200
commit544b62351212188449851b7092cf229091c6f612 (patch)
treeb4201211717b25fc90819a1291e8a16373bd7aea /include
parent3c5241ccd00b1e920386843b0a8d92ae09c6614a (diff)
Add dialog to create rooms
fixes #25
Diffstat (limited to 'include')
-rw-r--r--include/MatrixClient.h3
-rw-r--r--include/SideBarActions.h5
-rw-r--r--include/dialogs/CreateRoom.h44
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