diff --git a/src/MemberList.cpp b/src/MemberList.cpp
index 415e3b57..0ef3b696 100644
--- a/src/MemberList.cpp
+++ b/src/MemberList.cpp
@@ -22,7 +22,7 @@
#include "timeline/TimelineViewManager.h"
#include "ui/Avatar.h"
-MemberList::MemberList(const QString &room_id, QWidget *parent)
+MemberList::MemberList(const QString &room_id, QObject *parent)
: QAbstractListModel{parent}
, room_id_{room_id}
{
diff --git a/src/MemberList.h b/src/MemberList.h
index 070666a2..9932f6a4 100644
--- a/src/MemberList.h
+++ b/src/MemberList.h
@@ -25,7 +25,7 @@ public:
DisplayName,
AvatarUrl,
};
- MemberList(const QString &room_id, QWidget *parent = nullptr);
+ MemberList(const QString &room_id, QObject *parent = nullptr);
QHash<int, QByteArray> roleNames() const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index 66d931fd..ee5564a5 100644
--- a/src/timeline/TimelineModel.cpp
+++ b/src/timeline/TimelineModel.cpp
@@ -1067,31 +1067,6 @@ TimelineModel::openUserProfile(QString userid)
}
void
-TimelineModel::openRoomMembers()
-{
- MemberList *memberList = new MemberList(roomId());
- emit openRoomMembersDialog(memberList);
-}
-
-void
-TimelineModel::openRoomSettings(QString room_id)
-{
- RoomSettings *settings = new RoomSettings(room_id == QString() ? roomId() : room_id, this);
- connect(this, &TimelineModel::roomAvatarUrlChanged, settings, &RoomSettings::avatarChanged);
- emit openRoomSettingsDialog(settings);
-}
-
-void
-TimelineModel::openInviteUsers(QString roomId)
-{
- InviteesModel *model = new InviteesModel{this};
- connect(model, &InviteesModel::accept, this, [this, model, roomId]() {
- emit manager_->inviteUsers(roomId == QString() ? room_id_ : roomId, model->mxids());
- });
- emit openInviteUsersDialog(model);
-}
-
-void
TimelineModel::replyAction(QString id)
{
setReply(id);
diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h
index 0d1eb1f9..0e2ce153 100644
--- a/src/timeline/TimelineModel.h
+++ b/src/timeline/TimelineModel.h
@@ -239,9 +239,6 @@ public:
Q_INVOKABLE void forwardMessage(QString eventId, QString roomId);
Q_INVOKABLE void viewDecryptedRawMessage(QString id) const;
Q_INVOKABLE void openUserProfile(QString userid);
- Q_INVOKABLE void openRoomMembers();
- Q_INVOKABLE void openRoomSettings(QString room_id = QString());
- Q_INVOKABLE void openInviteUsers(QString roomId = QString());
Q_INVOKABLE void editAction(QString id);
Q_INVOKABLE void replyAction(QString id);
Q_INVOKABLE void readReceiptsAction(QString id) const;
@@ -358,10 +355,6 @@ signals:
void lastMessageChanged();
void notificationsChanged();
- void openRoomMembersDialog(MemberList *members);
- void openRoomSettingsDialog(RoomSettings *settings);
- void openInviteUsersDialog(InviteesModel *invitees);
-
void newMessageToSend(mtx::events::collections::TimelineEvents event);
void addPendingMessageToStore(mtx::events::collections::TimelineEvents event);
void updateFlowEventId(std::string event_id);
diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp
index 64493e5b..b1643798 100644
--- a/src/timeline/TimelineViewManager.cpp
+++ b/src/timeline/TimelineViewManager.cpp
@@ -352,6 +352,34 @@ TimelineViewManager::TimelineViewManager(CallManager *callManager, ChatPage *par
}
void
+TimelineViewManager::openRoomMembers(QString room_id)
+{
+ MemberList *memberList = new MemberList(room_id, this);
+ emit openRoomMembersDialog(memberList);
+}
+
+void
+TimelineViewManager::openRoomSettings(QString room_id)
+{
+ RoomSettings *settings = new RoomSettings(room_id, this);
+ connect(rooms_->getRoomById(room_id).data(),
+ &TimelineModel::roomAvatarUrlChanged,
+ settings,
+ &RoomSettings::avatarChanged);
+ emit openRoomSettingsDialog(settings);
+}
+
+void
+TimelineViewManager::openInviteUsers(QString roomId)
+{
+ InviteesModel *model = new InviteesModel{this};
+ connect(model, &InviteesModel::accept, this, [this, model, roomId]() {
+ emit inviteUsers(roomId, model->mxids());
+ });
+ emit openInviteUsersDialog(model);
+}
+
+void
TimelineViewManager::setVideoCallItem()
{
WebRTCSession::instance().setVideoItem(
diff --git a/src/timeline/TimelineViewManager.h b/src/timeline/TimelineViewManager.h
index 945ba2d5..374685e3 100644
--- a/src/timeline/TimelineViewManager.h
+++ b/src/timeline/TimelineViewManager.h
@@ -64,6 +64,10 @@ public:
Q_INVOKABLE QString userPresence(QString id) const;
Q_INVOKABLE QString userStatus(QString id) const;
+ Q_INVOKABLE void openRoomMembers(QString room_id);
+ Q_INVOKABLE void openRoomSettings(QString room_id);
+ Q_INVOKABLE void openInviteUsers(QString roomId);
+
Q_INVOKABLE void focusMessageInput();
Q_INVOKABLE void openLeaveRoomDialog(QString roomid) const;
Q_INVOKABLE void removeVerificationFlow(DeviceVerificationFlow *flow);
@@ -85,6 +89,9 @@ signals:
void focusChanged();
void focusInput();
void openImageOverlayInternalCb(QString eventId, QImage img);
+ void openRoomMembersDialog(MemberList *members);
+ void openRoomSettingsDialog(RoomSettings *settings);
+ void openInviteUsersDialog(InviteesModel *invitees);
void openProfile(UserProfile *profile);
public slots:
|