summaryrefslogtreecommitdiffstats
path: root/api/logic/minecraft/ComponentList.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2017-12-03 18:36:28 +0100
committerPetr Mrázek <peterix@gmail.com>2017-12-03 18:36:28 +0100
commit95e6f37d3942d4ab681e2f2484f17bbf8489c332 (patch)
tree98cc9231f0d1f2c5c935108aa075c7f0a0b65e7a /api/logic/minecraft/ComponentList.cpp
parente0bea1e46a8086b098248ec506b71e5f4512c70f (diff)
downloadMultiMC-95e6f37d3942d4ab681e2f2484f17bbf8489c332.tar
MultiMC-95e6f37d3942d4ab681e2f2484f17bbf8489c332.tar.gz
MultiMC-95e6f37d3942d4ab681e2f2484f17bbf8489c332.tar.lz
MultiMC-95e6f37d3942d4ab681e2f2484f17bbf8489c332.tar.xz
MultiMC-95e6f37d3942d4ab681e2f2484f17bbf8489c332.zip
NOISSUE force saving of any outstanding instance component state on exit
Diffstat (limited to 'api/logic/minecraft/ComponentList.cpp')
-rw-r--r--api/logic/minecraft/ComponentList.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/api/logic/minecraft/ComponentList.cpp b/api/logic/minecraft/ComponentList.cpp
index 93deef39..6547a851 100644
--- a/api/logic/minecraft/ComponentList.cpp
+++ b/api/logic/minecraft/ComponentList.cpp
@@ -43,16 +43,12 @@ ComponentList::ComponentList(MinecraftInstance * instance)
d->m_instance = instance;
d->m_saveTimer.setSingleShot(true);
d->m_saveTimer.setInterval(5000);
- connect(&d->m_saveTimer, &QTimer::timeout, this, &ComponentList::save);
+ connect(&d->m_saveTimer, &QTimer::timeout, this, &ComponentList::save_internal);
}
ComponentList::~ComponentList()
{
- if(saveIsScheduled())
- {
- d->m_saveTimer.stop();
- save();
- }
+ saveNow();
}
// BEGIN: component file format
@@ -212,6 +208,15 @@ static bool loadComponentList(ComponentList * parent, const QString & filename,
// BEGIN: save/load logic
+void ComponentList::saveNow()
+{
+ if(saveIsScheduled())
+ {
+ d->m_saveTimer.stop();
+ save_internal();
+ }
+}
+
bool ComponentList::saveIsScheduled() const
{
return d->dirty;
@@ -253,7 +258,7 @@ QString ComponentList::patchFilePathForUid(const QString& uid) const
return patchesPattern().arg(uid);
}
-void ComponentList::save()
+void ComponentList::save_internal()
{
qDebug() << "Component list save performed now for" << d->m_instance->name();
auto filename = componentsFilePath();
@@ -321,10 +326,7 @@ void ComponentList::reload(Net::Mode netmode)
}
// flush any scheduled saves to not lose state
- if(saveIsScheduled())
- {
- save();
- }
+ saveNow();
// FIXME: differentiate when a reapply is required by propagating state from components
invalidateLaunchProfile();