summaryrefslogtreecommitdiff
path: root/src/instancemanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/instancemanager.cpp')
-rw-r--r--src/instancemanager.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/instancemanager.cpp b/src/instancemanager.cpp
index 98edba47..b135cac1 100644
--- a/src/instancemanager.cpp
+++ b/src/instancemanager.cpp
@@ -650,6 +650,27 @@ MOBase::IPluginGame* InstanceManager::determineCurrentGame(
return nullptr;
}
+QString InstanceManager::makeUniqueName(const QString& instanceName) const
+{
+ const QString sanitized = sanitizeInstanceName(instanceName);
+
+ QString name = sanitized;
+ for (int i=2; i<100; ++i) {
+ if (!instanceExists(name)) {
+ return name;
+ }
+
+ name = QString("%1 (%2)").arg(sanitized).arg(i);
+ }
+
+ return {};
+}
+
+bool InstanceManager::instanceExists(const QString& instanceName) const
+{
+ const QDir root = instancesPath();
+ return root.exists(instanceName);
+}
QString InstanceManager::sanitizeInstanceName(const QString &name) const
{