summaryrefslogtreecommitdiff
path: root/src/organizercore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/organizercore.cpp')
-rw-r--r--src/organizercore.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index 88f68805..a8fc67c2 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -70,6 +70,7 @@
#include <string> //for wstring
#include <tuple>
#include <utility>
+#include <vector>
#include <libbsarch/bs_archive.h>
@@ -613,6 +614,24 @@ void OrganizerCore::setCurrentProfile(const QString& profileName)
m_ProfileChanged(oldProfile.get(), m_CurrentProfile.get());
}
+QStringList OrganizerCore::profileNames() const
+{
+ QDir profilesDir(m_Settings.paths().profiles());
+ return profilesDir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot);
+}
+
+std::shared_ptr<const MOBase::IProfile>
+OrganizerCore::getProfile(const QString& profileName) const
+{
+ QDir profileDir(m_Settings.paths().profiles());
+ profileDir.cd(profileName);
+ if (!profileDir.exists()) {
+ return nullptr;
+ }
+
+ return std::make_shared<Profile>(profileDir, managedGame(), gameFeatures());
+}
+
MOBase::IModRepositoryBridge* OrganizerCore::createNexusBridge() const
{
return new NexusBridge(m_PluginContainer);