[network/ruqola] src/core/localdatabase: Remove all files

Laurent Montel <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit d3447dd79d90a943a9cd9177f7049d2b9399db62 by Laurent Montel.
Committed on 16/08/2026 at 13:36.
Pushed by mlaurent into branch 'master'.

Remove all files

M  +11   -0    src/core/localdatabase/localdatabasebase.cpp
M  +2    -0    src/core/localdatabase/localdatabasebase.h
M  +10   -8    src/core/localdatabase/localmessagesdatabase.cpp

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

diff --git a/src/core/localdatabase/localdatabasebase.cpp b/src/core/localdatabase/localdatabasebase.cpp
index 7d49aff197..564fadcb7b 100644
--- a/src/core/localdatabase/localdatabasebase.cpp
+++ b/src/core/localdatabase/localdatabasebase.cpp
@@ -35,6 +35,17 @@ QString LocalDatabaseBase::dbFileName(const QString &accountName, const QByteArr
     return dbFileName(accountName, QString::fromLatin1(roomId));
 }
 
+QStringList LocalDatabaseBase::allDatabaseFiles(const QString &accountName, const QByteArray &roomId) const
+{
+    const QString dirPath = mBasePath + accountName;
+    const QDir dir(dirPath);
+    if (!dir.exists()) {
+        return {};
+    }
+    const QString baseName = dbFileName(accountName, roomId);
+    return {baseName, baseName + u"-wal"_s, baseName + u"-shm"_s};
+}
+
 QString LocalDatabaseBase::dbFileName(const QString &accountName) const
 {
     const QString dirPath = mBasePath + accountName;
diff --git a/src/core/localdatabase/localdatabasebase.h b/src/core/localdatabase/localdatabasebase.h
index d6c19ce1f7..893714a390 100644
--- a/src/core/localdatabase/localdatabasebase.h
+++ b/src/core/localdatabase/localdatabasebase.h
@@ -39,6 +39,8 @@ public:
     // database type. Must be called before the account files are deleted from disk.
     static void removeDataBaseConnections(const QString &accountName);
 
+    [[nodiscard]] QStringList allDatabaseFiles(const QString &accountName, const QByteArray &roomId) const;
+
 protected:
     [[nodiscard]] virtual QString schemaDataBase() const;
     [[nodiscard]] bool initializeDataBase(const QString &accountName, const QByteArray &roomId, QSqlDatabase &db);
diff --git a/src/core/localdatabase/localmessagesdatabase.cpp b/src/core/localdatabase/localmessagesdatabase.cpp
index a96c78bba3..5334dd96dc 100644
--- a/src/core/localdatabase/localmessagesdatabase.cpp
+++ b/src/core/localdatabase/localmessagesdatabase.cpp
@@ -37,15 +37,17 @@ void LocalMessagesDatabase::deleteDatabaseFromRoomId(const QString &accountName,
 {
     const QString dbName = databaseName(accountName + u'-' + QString::fromLatin1(roomId));
     QSqlDatabase::removeDatabase(dbName);
-    const QString fileName = dbFileName(accountName, roomId);
-    if (!QFileInfo::exists(fileName)) {
-        qCWarning(RUQOLA_DATABASE_LOG) << "Filename doesn't exist: " << fileName;
-        return;
-    } else {
-        if (!QFile(fileName).remove()) {
-            qCWarning(RUQOLA_DATABASE_LOG) << "Impossible to remove: " << fileName;
+    const QStringList listFiles = allDatabaseFiles(accountName, roomId);
+    for (const auto &fileName : listFiles) {
+        if (!QFileInfo::exists(fileName)) {
+            qCWarning(RUQOLA_DATABASE_LOG) << "Filename doesn't exist: " << fileName;
+            continue;
         } else {
-            qCDebug(RUQOLA_DATABASE_LOG) << fileName << " was removed";
+            if (!QFile(fileName).remove()) {
+                qCWarning(RUQOLA_DATABASE_LOG) << "Impossible to remove: " << fileName;
+            } else {
+                qCDebug(RUQOLA_DATABASE_LOG) << fileName << " was removed";
+            }
         }
     }
 }
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.