summaryrefslogtreecommitdiffstats
path: root/logic/InstanceList.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'logic/InstanceList.cpp')
-rw-r--r--logic/InstanceList.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/logic/InstanceList.cpp b/logic/InstanceList.cpp
index 8197fe24..741b8611 100644
--- a/logic/InstanceList.cpp
+++ b/logic/InstanceList.cpp
@@ -133,8 +133,43 @@ QStringList InstanceList::getGroups()
return m_groups.toList();
}
+void InstanceList::suspendGroupSaving()
+{
+ suspendedGroupSave = true;
+}
+
+void InstanceList::resumeGroupSaving()
+{
+ if(suspendedGroupSave)
+ {
+ suspendedGroupSave = false;
+ if(queuedGroupSave)
+ {
+ saveGroupList();
+ }
+ }
+}
+
+void InstanceList::deleteGroup(const QString& name)
+{
+ for(auto & instance: m_instances)
+ {
+ auto instGroupName = instance->group();
+ if(instGroupName == name)
+ {
+ instance->setGroupPost(QString());
+ }
+ }
+}
+
void InstanceList::saveGroupList()
{
+ if(suspendedGroupSave)
+ {
+ queuedGroupSave = true;
+ return;
+ }
+
QString groupFileName = m_instDir + "/instgroups.json";
QMap<QString, QSet<QString>> groupMap;
for (auto instance : m_instances)