[network/ruqola] src/widgets: Assign room

Laurent Montel <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 8247bed2062cdd57187c455fcfa7a58973fd0483 by Laurent Montel.
Committed on 20/07/2026 at 05:19.
Pushed by mlaurent into branch 'master'.

Assign room

M  +6    -0    src/widgets/dialogs/directchannelinfodialog.cpp
M  +2    -0    src/widgets/dialogs/directchannelinfodialog.h
M  +11   -1    src/widgets/dialogs/directchannelinfowidget.cpp
M  +4    -1    src/widgets/dialogs/directchannelinfowidget.h
M  +1    -0    src/widgets/room/messagelistview.cpp
M  +1    -0    src/widgets/room/roomwidget.cpp
M  +1    -0    src/widgets/room/usersinroommenu.cpp

https://invent.kde.org/network/ruqola/-/commit/8247bed2062cdd57187c455fcfa7a58973fd0483

diff --git a/src/widgets/dialogs/directchannelinfodialog.cpp b/src/widgets/dialogs/directchannelinfodialog.cpp
index 3d8de5044c..15a70b5ee4 100644
--- a/src/widgets/dialogs/directchannelinfodialog.cpp
+++ b/src/widgets/dialogs/directchannelinfodialog.cpp
@@ -7,6 +7,7 @@
 #include "directchannelinfodialog.h"
 
 #include "directchannelinfowidget.h"
+#include "room.h"
 #include <KLocalizedString>
 #include <KSharedConfig>
 #include <QDialogButtonBox>
@@ -42,4 +43,9 @@ void DirectChannelInfoDialog::setRoles(const QList<RoleInfo> &newRoles)
     mDirectChannelInfoWidget->setRoles(newRoles);
 }
 
+void DirectChannelInfoDialog::setRoom(Room *room)
+{
+    mDirectChannelInfoWidget->setRoom(room);
+}
+
 #include "moc_directchannelinfodialog.cpp"
diff --git a/src/widgets/dialogs/directchannelinfodialog.h b/src/widgets/dialogs/directchannelinfodialog.h
index 6d0d5f754f..3085992fe9 100644
--- a/src/widgets/dialogs/directchannelinfodialog.h
+++ b/src/widgets/dialogs/directchannelinfodialog.h
@@ -13,6 +13,7 @@ class DirectChannelInfoWidget;
 class User;
 class RocketChatAccount;
 class RoleInfo;
+class Room;
 class LIBRUQOLAWIDGETS_TESTS_EXPORT DirectChannelInfoDialog : public QDialog
 {
     Q_OBJECT
@@ -21,6 +22,7 @@ public:
     ~DirectChannelInfoDialog() override;
     void setUserName(const QString &userName);
     void setRoles(const QList<RoleInfo> &newRoles);
+    void setRoom(Room *room);
 
 private:
     DirectChannelInfoWidget *const mDirectChannelInfoWidget;
diff --git a/src/widgets/dialogs/directchannelinfowidget.cpp b/src/widgets/dialogs/directchannelinfowidget.cpp
index 065bff97af..bf86dc5aab 100644
--- a/src/widgets/dialogs/directchannelinfowidget.cpp
+++ b/src/widgets/dialogs/directchannelinfowidget.cpp
@@ -228,6 +228,11 @@ void DirectChannelInfoWidget::setUser(const User &user)
     mDirectChannelActionWidget->setUser(user);
 }
 
+void DirectChannelInfoWidget::setRoom(Room *room)
+{
+    mDirectChannelActionWidget->setRoom(room);
+}
+
 DirectChannelActionWidget::DirectChannelActionWidget(RocketChatAccount *account, QWidget *parent)
     : QWidget(parent)
     , mToolButton(new QToolButton(this))
@@ -259,8 +264,13 @@ void DirectChannelActionWidget::setUser(const User &user)
     menu->setParentWidget(this);
     menu->setUserId(user.userId());
     menu->setUserName(user.userName());
-    // TODO add room
+    menu->setRoom(mRoom);
     mToolButton->setMenu(menu->createMenu());
 }
 
+void DirectChannelActionWidget::setRoom(Room *room)
+{
+    mRoom = room;
+}
+
 #include "moc_directchannelinfowidget.cpp"
diff --git a/src/widgets/dialogs/directchannelinfowidget.h b/src/widgets/dialogs/directchannelinfowidget.h
index f56981949e..616477d52f 100644
--- a/src/widgets/dialogs/directchannelinfowidget.h
+++ b/src/widgets/dialogs/directchannelinfowidget.h
@@ -16,6 +16,7 @@ class QFormLayout;
 class RocketChatAccount;
 class ResizablePixmapLabel;
 class QToolButton;
+class Room;
 class LIBRUQOLAWIDGETS_TESTS_EXPORT DirectChannelActionWidget : public QWidget
 {
     Q_OBJECT
@@ -23,7 +24,7 @@ public:
     explicit DirectChannelActionWidget(RocketChatAccount *account, QWidget *parent = nullptr);
     ~DirectChannelActionWidget() override;
     void setUser(const User &user);
-
+    void setRoom(Room *room);
 Q_SIGNALS:
     void ignoreUser();
     void reportUser();
@@ -31,6 +32,7 @@ Q_SIGNALS:
 private:
     QToolButton *const mToolButton;
     RocketChatAccount *const mRocketChatAccount;
+    Room *mRoom = nullptr;
 };
 
 class LIBRUQOLAWIDGETS_TESTS_EXPORT DirectChannelInfoWidget : public QWidget
@@ -43,6 +45,7 @@ public:
     void setUserName(const QString &userName);
 
     void setRoles(const QList<RoleInfo> &newRoles);
+    void setRoom(Room *room);
 
 private:
     LIBRUQOLAWIDGETS_NO_EXPORT void slotIgnoreUser();
diff --git a/src/widgets/room/messagelistview.cpp b/src/widgets/room/messagelistview.cpp
index 9e14a0ca04..eeb43223b9 100644
--- a/src/widgets/room/messagelistview.cpp
+++ b/src/widgets/room/messagelistview.cpp
@@ -1182,6 +1182,7 @@ void MessageListView::slotShowUserInfo(const QString &userName)
     DirectChannelInfoDialog dlg(mCurrentRocketChatAccount, this);
     dlg.setUserName(userName);
     dlg.setRoles(mCurrentRocketChatAccount->roleInfo());
+    dlg.setRoom(mRoom);
     dlg.exec();
 }
 
diff --git a/src/widgets/room/roomwidget.cpp b/src/widgets/room/roomwidget.cpp
index 5125940fd6..867145c87b 100644
--- a/src/widgets/room/roomwidget.cpp
+++ b/src/widgets/room/roomwidget.cpp
@@ -300,6 +300,7 @@ void RoomWidget::slotChannelInfoRequested()
     if (mRoomType == Room::RoomType::Direct) {
         DirectChannelInfoDialog dlg(mCurrentRocketChatAccount, this);
         dlg.setUserName(mRoom->name());
+        dlg.setRoom(mRoom);
         dlg.exec();
     } else {
         QPointer<ChannelInfoDialog> dlg = new ChannelInfoDialog(mRoom, mCurrentRocketChatAccount, this);
diff --git a/src/widgets/room/usersinroommenu.cpp b/src/widgets/room/usersinroommenu.cpp
index b257336b8e..ba74b36922 100644
--- a/src/widgets/room/usersinroommenu.cpp
+++ b/src/widgets/room/usersinroommenu.cpp
@@ -253,6 +253,7 @@ void UsersInRoomMenu::slotUserInfo()
     DirectChannelInfoDialog dlg(mRocketChatAccount, mParentWidget);
     dlg.setUserName(mUserName);
     dlg.setRoles(mRocketChatAccount->roleInfo());
+    dlg.setRoom(mRoom);
     dlg.exec();
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.