[network/ruqola] src/core/localdatabase: Add E2ERoomsDataBase

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

Add E2ERoomsDataBase

M  +1    -1    src/core/localdatabase/e2eroomsdatabase.cpp
M  +1    -1    src/core/localdatabase/e2eroomsdatabase.h
M  +9    -0    src/core/localdatabase/localdatabasemanager.cpp
M  +4    -0    src/core/localdatabase/localdatabasemanager.h

https://invent.kde.org/network/ruqola/-/commit/5f64ec4a84460b884730bb90b3e151c9a3d8a77e

diff --git a/src/core/localdatabase/e2eroomsdatabase.cpp b/src/core/localdatabase/e2eroomsdatabase.cpp
index 0cadc5e606..618f1bd1ae 100644
--- a/src/core/localdatabase/e2eroomsdatabase.cpp
+++ b/src/core/localdatabase/e2eroomsdatabase.cpp
@@ -95,7 +95,7 @@ bool E2ERoomsDataBase::hasKey(const QString &accountName, const QString &userId)
     return query.exec() && query.first();
 }
 
-std::unique_ptr<QSqlTableModel> E2ERoomsDataBase::createE2eModel(const QString &accountName) const
+std::unique_ptr<QSqlTableModel> E2ERoomsDataBase::createE2eRoomsModel(const QString &accountName) const
 {
     const QString dbName = databaseName(accountName);
     QSqlDatabase db = QSqlDatabase::database(dbName);
diff --git a/src/core/localdatabase/e2eroomsdatabase.h b/src/core/localdatabase/e2eroomsdatabase.h
index 025b2c82da..e40e6dd873 100644
--- a/src/core/localdatabase/e2eroomsdatabase.h
+++ b/src/core/localdatabase/e2eroomsdatabase.h
@@ -21,7 +21,7 @@ public:
     [[nodiscard]] bool deleteKey(const QString &accountName, const QString &userId);
     [[nodiscard]] bool hasKey(const QString &accountName, const QString &userId);
 
-    [[nodiscard]] std::unique_ptr<QSqlTableModel> createE2eModel(const QString &accountName) const;
+    [[nodiscard]] std::unique_ptr<QSqlTableModel> createE2eRoomsModel(const QString &accountName) const;
 
 protected:
     [[nodiscard]] QString schemaDataBase() const override;
diff --git a/src/core/localdatabase/localdatabasemanager.cpp b/src/core/localdatabase/localdatabasemanager.cpp
index d0a5f74c7e..8cda578590 100644
--- a/src/core/localdatabase/localdatabasemanager.cpp
+++ b/src/core/localdatabase/localdatabasemanager.cpp
@@ -7,6 +7,7 @@
 #include "localdatabasemanager.h"
 #include "e2edatabase.h"
 #include "localaccountsdatabase.h"
+#include "localdatabase/e2eroomsdatabase.h"
 #include "localdatabaseutils.h"
 #include "localmessagelogger.h"
 #include "localmessagesdatabase.h"
@@ -26,6 +27,7 @@ LocalDatabaseManager::LocalDatabaseManager()
     , mAccountDatabase(std::make_unique<LocalAccountsDatabase>())
     , mGlobalDatabase(std::make_unique<GlobalDatabase>())
     , mE2EDatabase(std::make_unique<E2EDataBase>())
+    , mE2ERoomsDataBase(std::make_unique<E2ERoomsDataBase>())
     , mRoomPendingTypedInfoDatabase(std::make_unique<LocalRoomPendingTypedInfoDatabase>())
     , mRoomSubscriptionsDatabase(std::make_unique<LocalRoomSubscriptionsDatabase>())
 {
@@ -120,6 +122,7 @@ void LocalDatabaseManager::setDatabaseLogger(RocketChatRestApi::AbstractLogger *
     mE2EDatabase->setDatabaseLogger(logger);
     mRoomPendingTypedInfoDatabase->setDatabaseLogger(logger);
     mRoomSubscriptionsDatabase->setDatabaseLogger(logger);
+    mE2ERoomsDataBase->setDatabaseLogger(logger);
 }
 
 LocalMessagesDatabase *LocalDatabaseManager::messagesDatabase() const
@@ -161,6 +164,11 @@ QByteArray LocalDatabaseManager::roomId(const QString &accountName, const QByteA
     return mRoomSubscriptionsDatabase->roomId(accountName, subscriptionId);
 }
 
+E2ERoomsDataBase *LocalDatabaseManager::e2ERoomsDataBase() const
+{
+    return mE2ERoomsDataBase.get();
+}
+
 void LocalDatabaseManager::deleteRoom(const QString &accountName, const QByteArray &roomId)
 {
     if (RuqolaGlobalConfig::self()->storeMessageInDataBase()) {
@@ -168,6 +176,7 @@ void LocalDatabaseManager::deleteRoom(const QString &accountName, const QByteArr
         mMessagesDatabase->deleteDatabaseFromRoomId(accountName, roomId);
         mGlobalDatabase->removeTimeStamp(accountName, roomId, GlobalDatabase::TimeStampType::RoomTimeStamp);
         mGlobalDatabase->removeTimeStamp(accountName, roomId, GlobalDatabase::TimeStampType::MessageTimeStamp);
+        // TODO remove rooms from mE2ERoomsDataBase
     }
 }
 
diff --git a/src/core/localdatabase/localdatabasemanager.h b/src/core/localdatabase/localdatabasemanager.h
index 1503f325de..931c7db9f1 100644
--- a/src/core/localdatabase/localdatabasemanager.h
+++ b/src/core/localdatabase/localdatabasemanager.h
@@ -23,6 +23,7 @@ class LocalRoomSubscriptionsDatabase;
 class Message;
 class Room;
 class LocalRoomPendingTypedInfoDatabase;
+class E2ERoomsDataBase;
 namespace RocketChatRestApi
 {
 class AbstractLogger;
@@ -61,6 +62,8 @@ public:
 
     [[nodiscard]] E2EDataBase *e2EDatabase() const;
 
+    [[nodiscard]] E2ERoomsDataBase *e2ERoomsDataBase() const;
+
     [[nodiscard]] LocalRoomPendingTypedInfoDatabase *roomPendingTypedInfoDatabase() const;
 
     [[nodiscard]] LocalRoomSubscriptionsDatabase *roomSubscriptionsDatabase() const;
@@ -84,6 +87,7 @@ private:
     std::unique_ptr<LocalAccountsDatabase> mAccountDatabase;
     std::unique_ptr<GlobalDatabase> mGlobalDatabase;
     std::unique_ptr<E2EDataBase> mE2EDatabase;
+    std::unique_ptr<E2ERoomsDataBase> mE2ERoomsDataBase;
     std::unique_ptr<LocalRoomPendingTypedInfoDatabase> mRoomPendingTypedInfoDatabase;
     std::unique_ptr<LocalRoomSubscriptionsDatabase> mRoomSubscriptionsDatabase;
 };