summaryrefslogtreecommitdiff
path: root/src/organizercore.cpp
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2015-04-12 15:52:22 +0200
committerTannin <devnull@localhost>2015-04-12 15:52:22 +0200
commitfd584f803893c84049146f0d6d6d2d5f758f55e6 (patch)
tree457ef616e39cff936c912253c39af2bf9f0d94d3 /src/organizercore.cpp
parent942bd04e5e3053b4ee3d7d94d51ce8cfa34cb9b9 (diff)
- operations not possible during directory refresh can now be delayed unit after
the refresh. - will now rewrite the plugin list(s) immediately after running external application - changes missing from changeset 9f522a324341
Diffstat (limited to 'src/organizercore.cpp')
-rw-r--r--src/organizercore.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index 50e72548..5375cd3a 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -892,8 +892,13 @@ void OrganizerCore::spawnBinary(const QFileInfo &binary, const QString &argument
// need to remove our stored load order because it may be outdated if a foreign tool changed the
// file time. After removing that file, refreshESPList will use the file time as the order
if (GameInfo::instance().getLoadOrderMechanism() == GameInfo::TYPE_FILETIME) {
+ qDebug("removing loadorder.txt");
QFile::remove(m_CurrentProfile->getLoadOrderFileName());
- refreshESPList();
+ }
+ refreshESPList();
+ if (GameInfo::instance().getLoadOrderMechanism() == GameInfo::TYPE_FILETIME) {
+ // the load order should have been retrieved from file time, now save it to our own format
+ savePluginList();
}
m_FinishedRun(binary.absoluteFilePath(), processExitCode);
@@ -1311,6 +1316,9 @@ void OrganizerCore::directory_refreshed()
ModInfo::Ptr modInfo = ModInfo::getByIndex(i);
modInfo->clearCaches();
}
+ for (auto task : m_PostRefreshTasks) {
+ task();
+ }
}
void OrganizerCore::profileRefresh()
@@ -1480,7 +1488,8 @@ bool OrganizerCore::saveCurrentLists()
void OrganizerCore::savePluginList()
{
if (m_DirectoryUpdate) {
- qWarning("Can't save plugin lists now, might outdated");
+ // delay save till after directory update
+ m_PostRefreshTasks.append([&] () { this->savePluginList(); });
return;
}
m_PluginList.saveTo(m_CurrentProfile->getPluginsFileName(),