Add menu to invite users
This commit is contained in:
parent
19bae2a2e6
commit
ef0b0f6879
17 changed files with 360 additions and 4 deletions
27
include/InviteeItem.h
Normal file
27
include/InviteeItem.h
Normal 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_;
|
||||
};
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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_;
|
||||
|
|
|
|||
41
include/dialogs/InviteUsers.h
Normal file
41
include/dialogs/InviteUsers.h
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue