summaryrefslogtreecommitdiff
path: root/plugin/src
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-22 21:48:52 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-22 21:48:52 +1000
commit1991b4176c302ac30ea3a1539d139eaee574b0a5 (patch)
treeb833c3f6f776efc0196816a1f93d4b452909ac2d /plugin/src
parentplugin/fsm: dont store comparator (diff)
downloadcaelestia-shell-1991b4176c302ac30ea3a1539d139eaee574b0a5.tar.gz
caelestia-shell-1991b4176c302ac30ea3a1539d139eaee574b0a5.tar.bz2
caelestia-shell-1991b4176c302ac30ea3a1539d139eaee574b0a5.zip
plugin: delete entries after emitting signal
Diffstat (limited to 'plugin/src')
-rw-r--r--plugin/src/Caelestia/Models/filesystemmodel.cpp7
-rw-r--r--plugin/src/Caelestia/appdb.cpp4
2 files changed, 8 insertions, 3 deletions
diff --git a/plugin/src/Caelestia/Models/filesystemmodel.cpp b/plugin/src/Caelestia/Models/filesystemmodel.cpp
index feddea4..78a6df1 100644
--- a/plugin/src/Caelestia/Models/filesystemmodel.cpp
+++ b/plugin/src/Caelestia/Models/filesystemmodel.cpp
@@ -380,6 +380,8 @@ void FileSystemModel::applyChanges(const QSet<QString>& removedPaths, const QSet
}
std::sort(removedIndices.begin(), removedIndices.end(), std::greater<int>());
+ QList<FileSystemEntry*> toDelete;
+
int start = -1;
int end = -1;
for (int idx : removedIndices) {
@@ -392,7 +394,7 @@ void FileSystemModel::applyChanges(const QSet<QString>& removedPaths, const QSet
beginRemoveRows(QModelIndex(), end, start);
for (int i = start; i >= end; --i) {
emit removed(m_entries[i]->path());
- m_entries.takeAt(i)->deleteLater();
+ toDelete << m_entries.takeAt(i);
}
endRemoveRows();
@@ -404,7 +406,7 @@ void FileSystemModel::applyChanges(const QSet<QString>& removedPaths, const QSet
beginRemoveRows(QModelIndex(), end, start);
for (int i = start; i >= end; --i) {
emit removed(m_entries[i]->path());
- m_entries.takeAt(i)->deleteLater();
+ toDelete << m_entries.takeAt(i);
}
endRemoveRows();
}
@@ -460,6 +462,7 @@ void FileSystemModel::applyChanges(const QSet<QString>& removedPaths, const QSet
}
emit entriesChanged();
+ qDeleteAll(toDelete);
}
bool FileSystemModel::compareEntries(const FileSystemEntry* a, const FileSystemEntry* b) const {
diff --git a/plugin/src/Caelestia/appdb.cpp b/plugin/src/Caelestia/appdb.cpp
index 74d1873..19db096 100644
--- a/plugin/src/Caelestia/appdb.cpp
+++ b/plugin/src/Caelestia/appdb.cpp
@@ -207,15 +207,17 @@ void AppDb::updateApps() {
newIds.insert(entry->property("id").toString());
}
+ QList<AppEntry*> toDelete;
for (auto id : m_apps.keys()) {
if (!newIds.contains(id)) {
dirty = true;
- m_apps.take(id)->deleteLater();
+ toDelete << m_apps.take(id);
}
}
if (dirty) {
emit appsChanged();
+ qDeleteAll(toDelete);
}
}