summaryrefslogtreecommitdiff
path: root/src/instancemanager.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2020-07-23 04:53:20 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2020-11-03 11:39:03 -0500
commit5513b273c679b9edda951f418ef013a762ca587a (patch)
tree2166f23e4148acc080fb9aa1eddf8bcb89ee767c /src/instancemanager.cpp
parente29f41565fce21cd72968ac188cd319e746b10e6 (diff)
added empty instance manager dialog
Diffstat (limited to 'src/instancemanager.cpp')
-rw-r--r--src/instancemanager.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/instancemanager.cpp b/src/instancemanager.cpp
index 46936444..98edba47 100644
--- a/src/instancemanager.cpp
+++ b/src/instancemanager.cpp
@@ -182,14 +182,14 @@ QString InstanceManager::manageInstances(const QStringList &instanceList) const
}
if (selection.exec() == QDialog::Rejected) {
- return (chooseInstance(instances()));
+ return (chooseInstance(instanceNames()));
}
else {
QString choice = selection.getChoiceData().toString();
deleteLocalInstance(choice);
}
- return(manageInstances(instances()));
+ return(manageInstances(instanceNames()));
}
QString InstanceManager::queryInstanceName(const QStringList &instanceList) const
@@ -301,7 +301,7 @@ QString InstanceManager::chooseInstance(const QStringList &instanceList) const
case Special::Portable: return QString();
case Special::Manage: {
- return(manageInstances(instances()));
+ return(manageInstances(instanceNames()));
}
default: throw std::runtime_error("invalid selection");
}
@@ -319,27 +319,37 @@ QString InstanceManager::instancesPath() const
QStandardPaths::writableLocation(QStandardPaths::DataLocation));
}
-
-QStringList InstanceManager::instances() const
+std::vector<QDir> InstanceManager::instancePaths() const
{
const std::set<QString> ignore = {
"cache", "qtwebengine",
};
- const auto dirs = QDir(instancesPath())
- .entryList(QDir::Dirs | QDir::NoDotAndDotDot);
+ const QDir root(instancesPath());
+ const auto dirs = root.entryList(QDir::Dirs | QDir::NoDotAndDotDot);
- QStringList list;
+ std::vector<QDir> list;
for (auto&& d : dirs) {
if (!ignore.contains(QFileInfo(d).fileName().toLower())) {
- list.push_back(d);
+ list.push_back(root.filePath(d));
}
}
return list;
}
+QStringList InstanceManager::instanceNames() const
+{
+ QStringList list;
+
+ for (auto&& d : instancePaths()) {
+ list.push_back(d.dirName());
+ }
+
+ return list;
+}
+
bool InstanceManager::isPortablePath(const QString& dataPath)
{
@@ -402,7 +412,7 @@ QString InstanceManager::determineDataPath()
if (!m_overrideInstance && (instanceId.isEmpty() || !QFileInfo::exists(dataPath))) {
- instanceId = chooseInstance(instances());
+ instanceId = chooseInstance(instanceNames());
setCurrentInstance(instanceId);
if (!instanceId.isEmpty()) {
dataPath = QDir::fromNativeSeparators(