diff options
| author | Brian Munro <brian.alexander.munro@gmail.com> | 2017-12-21 08:31:25 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-12-21 08:31:25 +0200 |
| commit | 28a68cf51bab172e0efc460a94821692100dad00 (patch) | |
| tree | 548012644d64aa6e450fafe0f812e0830239333a /src/instancemanager.cpp | |
| parent | b157ebb28c38a5ade879c0736a9dcb7fe0367a89 (diff) | |
| parent | a24a1cbf257f49fa31263e2f6115c378714a64d3 (diff) | |
Merge pull request #156 from erasmux/vs_usvfs_plus_various_fixes
Vs usvfs plus various fixes
Diffstat (limited to 'src/instancemanager.cpp')
| -rw-r--r-- | src/instancemanager.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/instancemanager.cpp b/src/instancemanager.cpp index 1b0d0e5b..34e23d7b 100644 --- a/src/instancemanager.cpp +++ b/src/instancemanager.cpp @@ -47,9 +47,19 @@ InstanceManager &InstanceManager::instance() return s_Instance; } +void InstanceManager::overrideInstance(const QString& instanceName) +{ + m_overrideInstanceName = instanceName; + m_overrideInstance = true; +} + + QString InstanceManager::currentInstance() const { - return m_AppSettings.value(INSTANCE_KEY, "").toString(); + if (m_overrideInstance) + return m_overrideInstanceName; + else + return m_AppSettings.value(INSTANCE_KEY, "").toString(); } void InstanceManager::clearCurrentInstance() @@ -177,7 +187,8 @@ void InstanceManager::createDataPath(const QString &dataPath) const QString InstanceManager::determineDataPath() { QString instanceId = currentInstance(); - if (instanceId.isEmpty() && portableInstall() && !m_Reset) { + if (instanceId.isEmpty() && !m_Reset && (m_overrideInstance || portableInstall())) + { // startup, apparently using portable mode before return qApp->applicationDirPath(); } @@ -187,8 +198,9 @@ QString InstanceManager::determineDataPath() + "/" + instanceId); - if (instanceId.isEmpty() || !QFileInfo::exists(dataPath)) { + if (!m_overrideInstance && (instanceId.isEmpty() || !QFileInfo::exists(dataPath))) { instanceId = chooseInstance(instances()); + setCurrentInstance(instanceId); if (!instanceId.isEmpty()) { dataPath = QDir::fromNativeSeparators( QStandardPaths::writableLocation(QStandardPaths::DataLocation) @@ -199,8 +211,6 @@ QString InstanceManager::determineDataPath() if (instanceId.isEmpty()) { return qApp->applicationDirPath(); } else { - setCurrentInstance(instanceId); - createDataPath(dataPath); return dataPath; |
