From 7aadb8987a6e044c7922817ce797332c4f037476 Mon Sep 17 00:00:00 2001 From: Louie S Date: Sun, 10 Mar 2024 15:10:53 -0400 Subject: Implement cleanHidden --- src/backend/db_sqlite.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/backend') diff --git a/src/backend/db_sqlite.cpp b/src/backend/db_sqlite.cpp index 91bb3e5..763fba5 100644 --- a/src/backend/db_sqlite.cpp +++ b/src/backend/db_sqlite.cpp @@ -245,6 +245,26 @@ int BackendDB::removeGroup(const Group &group) { return output; } +// permanently delete removed/hidden groups and entries +void BackendDB::cleanHidden() { + { + QSqlDatabase database(this->openDB()); + QSqlQuery query; + + // remove rules associated with hidden entries + query.exec("DELETE FROM rules WHERE id IN (" + "SELECT rules.id FROM rules" + "INNER JOIN entries ON rules.entry_id = entries.id" + "WHERE entries.hidden = 1)"); + // remove hidden entries + query.exec("DELETE FROM entries WHERE hidden = 1"); + // remove hidden groups + query.exec("DELETE FROM groups WHERE hidden = 1"); + } + + QSqlDatabase::removeDatabase("qt_sql_default_connection"); +} + QString BackendDB::getDBPath() { QSettings settings; settings.beginGroup("paths"); -- cgit