[network/ruqola] src/widgets: Add exploredatabasee2eroomsstoragewidget

Laurent Montel <[email protected]> Wed, 5 Aug 2026 05:29:20 +0000 (UTC)
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit d389cc14a1a3507f6bba7015beef790dfa8e8c9e by Laurent Montel.
Committed on 05/08/2026 at 05:19.
Pushed by mlaurent into branch 'master'.

Add exploredatabasee2eroomsstoragewidget

M  +2    -0    src/widgets/CMakeLists.txt
M  +4    -0    src/widgets/databasedialog/autotests/exploredatabasedialogtest.cpp
M  +5    -0    src/widgets/databasedialog/exploredatabasedialog.cpp
M  +2    -0    src/widgets/databasedialog/exploredatabasedialog.h
A  +36   -0    src/widgets/databasedialog/exploredatabasee2eroomsstoragewidget.cpp     [License: LGPL(v2.0+)]
A  +21   -0    src/widgets/databasedialog/exploredatabasee2eroomsstoragewidget.h     [License: LGPL(v2.0+)]

https://invent.kde.org/network/ruqola/-/commit/d389cc14a1a3507f6bba7015beef790dfa8e8c9e

diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt
index 39775cbc60..596a9ce9e0 100644
--- a/src/widgets/CMakeLists.txt
+++ b/src/widgets/CMakeLists.txt
@@ -888,6 +888,8 @@ target_sources(
         databasedialog/exploredatabaseroomspendingtypedinfostoragewidget.h
         databasedialog/exploredatabaseroomsubscriptionswidget.h
         databasedialog/exploredatabaseroomsubscriptionswidget.cpp
+        databasedialog/exploredatabasee2eroomsstoragewidget.cpp
+        databasedialog/exploredatabasee2eroomsstoragewidget.h
         explorepermissionsdialog/explorepermissionsdialog.h
         explorepermissionsdialog/explorepermissionsdialog.cpp
         explorepermissionsdialog/explorepermissionswidget.h
diff --git a/src/widgets/databasedialog/autotests/exploredatabasedialogtest.cpp b/src/widgets/databasedialog/autotests/exploredatabasedialogtest.cpp
index a6802be72a..ec61e93d76 100644
--- a/src/widgets/databasedialog/autotests/exploredatabasedialogtest.cpp
+++ b/src/widgets/databasedialog/autotests/exploredatabasedialogtest.cpp
@@ -8,6 +8,7 @@
 
 #include "databasedialog/exploredatabaseaccountstoragewidget.h"
 #include "databasedialog/exploredatabasedialog.h"
+#include "databasedialog/exploredatabasee2eroomsstoragewidget.h"
 #include "databasedialog/exploredatabasee2estoragewidget.h"
 #include "databasedialog/exploredatabaseglobalstoragewidget.h"
 #include "databasedialog/exploredatabasejsonwidget.h"
@@ -69,6 +70,9 @@ void ExploreDatabaseDialogTest::shouldHaveDefaultValues()
     auto mExploreDatabaseRoomSubscriptionsWidget = d.findChild<ExploreDatabaseRoomSubscriptionsWidget *>(u"mExploreDatabaseRoomSubscriptionsWidget"_s);
     QVERIFY(mExploreDatabaseRoomSubscriptionsWidget);
 
+    auto mExploreDatabaseE2ERoomsStorageWidget = d.findChild<ExploreDatabaseE2ERoomsStorageWidget *>(u"mExploreDatabaseE2ERoomsStorageWidget"_s);
+    QVERIFY(mExploreDatabaseE2ERoomsStorageWidget);
+
     auto button = d.findChild<QDialogButtonBox *>(u"button"_s);
     QVERIFY(button);
 }
diff --git a/src/widgets/databasedialog/exploredatabasedialog.cpp b/src/widgets/databasedialog/exploredatabasedialog.cpp
index 814e20df3c..451430c820 100644
--- a/src/widgets/databasedialog/exploredatabasedialog.cpp
+++ b/src/widgets/databasedialog/exploredatabasedialog.cpp
@@ -5,6 +5,7 @@
 */
 
 #include "exploredatabasedialog.h"
+#include "databasedialog/exploredatabasee2eroomsstoragewidget.h"
 #include "databasedialog/exploredatabaseroomspendingtypedinfostoragewidget.h"
 #include "databasedialog/exploredatabaseroomsubscriptionswidget.h"
 #include "exploredatabaseaccountstoragewidget.h"
@@ -38,6 +39,7 @@ ExploreDatabaseDialog::ExploreDatabaseDialog(RocketChatAccount *account, QWidget
     , mExploreDatabaseAccountStorageWidget(new ExploreDatabaseAccountStorageWidget(account, this))
     , mExploreDatabaseRoomsStorageWidget(new ExploreDatabaseRoomsStorageWidget(account, this))
     , mExploreDatabaseGlobalStorageWidget(new ExploreDatabaseGlobalStorageWidget(account, this))
+    , mExploreDatabaseE2ERoomsStorageWidget(new ExploreDatabaseE2ERoomsStorageWidget(account, this))
     , mExploreDatabaseE2EStorageWidget(new ExploreDatabaseE2EStorageWidget(account, this))
     , mExploreDatabaseRoomsPendingTypedInfoStorageWidget(new ExploreDatabaseRoomsPendingTypedInfoStorageWidget(account, this))
     , mExploreDatabaseRoomSubscriptionsWidget(new ExploreDatabaseRoomSubscriptionsWidget(account, this))
@@ -71,6 +73,9 @@ ExploreDatabaseDialog::ExploreDatabaseDialog(RocketChatAccount *account, QWidget
     mExploreDatabaseE2EStorageWidget->setObjectName(u"mExploreDatabaseE2EStorageWidget"_s);
     tabWidget->addTab(mExploreDatabaseE2EStorageWidget, i18n("DataBase E2E"));
 
+    mExploreDatabaseE2ERoomsStorageWidget->setObjectName(u"mExploreDatabaseE2ERoomsStorageWidget"_s);
+    tabWidget->addTab(mExploreDatabaseE2ERoomsStorageWidget, i18n("DataBase E2E Rooms"));
+
     mExploreDatabaseRoomsPendingTypedInfoStorageWidget->setObjectName(u"mExploreDatabaseRoomsPendingTypedInfoStorageWidget"_s);
     tabWidget->addTab(mExploreDatabaseRoomsPendingTypedInfoStorageWidget, i18n("DataBase Room Pending Typed Info"));
 
diff --git a/src/widgets/databasedialog/exploredatabasedialog.h b/src/widgets/databasedialog/exploredatabasedialog.h
index 7f79f04db3..a7b528fdd6 100644
--- a/src/widgets/databasedialog/exploredatabasedialog.h
+++ b/src/widgets/databasedialog/exploredatabasedialog.h
@@ -18,6 +18,7 @@ class ExploreDatabaseGlobalStorageWidget;
 class ExploreDatabaseE2EStorageWidget;
 class ExploreDatabaseRoomSubscriptionsWidget;
 class ExploreDatabaseRoomsPendingTypedInfoStorageWidget;
+class ExploreDatabaseE2ERoomsStorageWidget;
 class LIBRUQOLAWIDGETS_TESTS_EXPORT ExploreDatabaseDialog : public QDialog
 {
     Q_OBJECT
@@ -34,6 +35,7 @@ private:
     ExploreDatabaseAccountStorageWidget *const mExploreDatabaseAccountStorageWidget;
     ExploreDatabaseRoomsStorageWidget *const mExploreDatabaseRoomsStorageWidget;
     ExploreDatabaseGlobalStorageWidget *const mExploreDatabaseGlobalStorageWidget;
+    ExploreDatabaseE2ERoomsStorageWidget *const mExploreDatabaseE2ERoomsStorageWidget;
     ExploreDatabaseE2EStorageWidget *const mExploreDatabaseE2EStorageWidget;
     ExploreDatabaseRoomsPendingTypedInfoStorageWidget *const mExploreDatabaseRoomsPendingTypedInfoStorageWidget;
     ExploreDatabaseRoomSubscriptionsWidget *const mExploreDatabaseRoomSubscriptionsWidget;
diff --git a/src/widgets/databasedialog/exploredatabasee2eroomsstoragewidget.cpp b/src/widgets/databasedialog/exploredatabasee2eroomsstoragewidget.cpp
new file mode 100644
index 0000000000..1d10908ad4
--- /dev/null
+++ b/src/widgets/databasedialog/exploredatabasee2eroomsstoragewidget.cpp
@@ -0,0 +1,36 @@
+/*
+   SPDX-FileCopyrightText: 2025-2026 Laurent Montel <[email protected]>
+
+   SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+
+#include "exploredatabasee2eroomsstoragewidget.h"
+#include "databasedialog/exploredatabasetooltipdelegate.h"
+#include "localdatabase/localdatabasemanager.h"
+#include "rocketchataccount.h"
+#include "ruqola_database_widget_debug.h"
+#include <QTableView>
+using namespace Qt::Literals::StringLiterals;
+ExploreDatabaseE2ERoomsStorageWidget::ExploreDatabaseE2ERoomsStorageWidget(RocketChatAccount *account, QWidget *parent)
+    : ExploreDatabaseBaseStorageWidget{account, parent}
+    , mLocalE2ERoomsDatabase(account ? account->localDatabaseManager()->e2ERoomsDataBase() : nullptr)
+{
+    if (account) {
+        slotLoadModelFromDataBase(account->accountName());
+    }
+    mTableView->setItemDelegateForColumn(1, new ExploreDatabaseTooltipDelegate(this));
+}
+
+ExploreDatabaseE2ERoomsStorageWidget::~ExploreDatabaseE2ERoomsStorageWidget() = default;
+
+void ExploreDatabaseE2ERoomsStorageWidget::slotLoadModelFromDataBase(const QString &accountName)
+{
+    mModel = mLocalE2ERoomsDatabase->createE2eRoomsModel(accountName);
+    if (mModel) {
+        setModel(mModel.get());
+    } else {
+        qCDebug(RUQOLA_DATABASE_WIDGETS_LOG) << "e2e rooms model is nullptr" << accountName;
+    }
+}
+
+#include "moc_exploredatabasee2eroomsstoragewidget.cpp"
diff --git a/src/widgets/databasedialog/exploredatabasee2eroomsstoragewidget.h b/src/widgets/databasedialog/exploredatabasee2eroomsstoragewidget.h
new file mode 100644
index 0000000000..1e63452bf0
--- /dev/null
+++ b/src/widgets/databasedialog/exploredatabasee2eroomsstoragewidget.h
@@ -0,0 +1,21 @@
+/*
+   SPDX-FileCopyrightText: 2025-2026 Laurent Montel <[email protected]>
+
+   SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+#pragma once
+
+#include "exploredatabasebasestoragewidget.h"
+#include "localdatabase/e2eroomsdatabase.h"
+class RocketChatAccount;
+class LIBRUQOLAWIDGETS_TESTS_EXPORT ExploreDatabaseE2ERoomsStorageWidget : public ExploreDatabaseBaseStorageWidget
+{
+    Q_OBJECT
+public:
+    explicit ExploreDatabaseE2ERoomsStorageWidget(RocketChatAccount *account, QWidget *parent = nullptr);
+    ~ExploreDatabaseE2ERoomsStorageWidget() override;
+    void slotLoadModelFromDataBase(const QString &accountName);
+
+private:
+    E2ERoomsDataBase *const mLocalE2ERoomsDatabase;
+};