Add menu to invite users

This commit is contained in:
Konstantinos Sideris 2017-12-10 23:59:50 +02:00
parent 19bae2a2e6
commit ef0b0f6879
17 changed files with 360 additions and 4 deletions

27
include/InviteeItem.h Normal file
View file

@ -0,0 +1,27 @@
#pragma once
#include <QLabel>
#include <QWidget>
#include "mtx.hpp"
class FlatButton;
class InviteeItem : public QWidget
{
Q_OBJECT
public:
InviteeItem(mtx::identifiers::User user, QWidget *parent = nullptr);
QString userID() { return user_; }
signals:
void removeItem();
private:
QString user_;
QLabel *name_;
FlatButton *removeUserBtn_;
};

View file

@ -60,6 +60,7 @@ public:
void sendTypingNotification(const QString &roomid, int timeoutInMillis = 20000);
void removeTypingNotification(const QString &roomid);
void readEvent(const QString &room_id, const QString &event_id);
void inviteUser(const QString &room_id, const QString &user);
QUrl getHomeServer() { return server_; };
int transactionId() { return txn_id_; };
@ -84,6 +85,7 @@ signals:
void versionError(const QString &error);
void loggedOut();
void invitedUser(const QString &room_id, const QString &user);
void loginSuccess(const QString &userid, const QString &homeserver, const QString &token);
void registerSuccess(const QString &userid,

View file

@ -26,6 +26,7 @@
#include <QSharedPointer>
#include <QVBoxLayout>
#include "dialogs/InviteUsers.h"
#include "dialogs/LeaveRoom.h"
class Avatar;
@ -56,6 +57,7 @@ public:
signals:
void leaveRoom();
void inviteUsers(QStringList users);
protected:
void paintEvent(QPaintEvent *event) override;
@ -76,12 +78,16 @@ private:
QMenu *menu_;
QAction *toggleNotifications_;
QAction *leaveRoom_;
QAction *inviteUsers_;
FlatButton *settingsBtn_;
QSharedPointer<OverlayModal> leaveRoomModal_;
QSharedPointer<dialogs::LeaveRoom> leaveRoomDialog_;
QSharedPointer<OverlayModal> inviteUsersModal_;
QSharedPointer<dialogs::InviteUsers> inviteUsersDialog_;
Avatar *avatar_;
int buttonSize_;

View file

@ -0,0 +1,41 @@
#pragma once
#include <QFrame>
#include <QLabel>
#include <QListWidgetItem>
#include <QStringList>
class FlatButton;
class TextField;
class QListWidget;
namespace dialogs {
class InviteUsers : public QFrame
{
Q_OBJECT
public:
explicit InviteUsers(QWidget *parent = nullptr);
protected:
void paintEvent(QPaintEvent *event) override;
signals:
void closing(bool isLeaving, QStringList invitees);
private slots:
void removeInvitee(QListWidgetItem *item);
private:
void addUser();
QStringList invitedUsers() const;
FlatButton *confirmBtn_;
FlatButton *cancelBtn_;
TextField *inviteeInput_;
QLabel *errorLabel_;
QListWidget *inviteeList_;
};
} // dialogs