diff --git a/src/aboutdialog.ui b/src/aboutdialog.ui
index 92cacd442..323e20ac2 100644
--- a/src/aboutdialog.ui
+++ b/src/aboutdialog.ui
@@ -127,7 +127,7 @@
-
- <html><head/><body><p>Copyright © 2011-2016 Sebastian Herbord<br/>Copyright © 2016-2025 Mod Organizer 2 Contributors</p></body></html>
+ <html><head/><body><p>Copyright © 2011-2016 Sebastian Herbord<br/>Copyright © 2016-2026 Mod Organizer 2 Contributors</p></body></html>
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index 88f688053..a8fc67c27 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -70,6 +70,7 @@
#include //for wstring
#include
#include
+#include
#include
@@ -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
+OrganizerCore::getProfile(const QString& profileName) const
+{
+ QDir profileDir(m_Settings.paths().profiles());
+ profileDir.cd(profileName);
+ if (!profileDir.exists()) {
+ return nullptr;
+ }
+
+ return std::make_shared(profileDir, managedGame(), gameFeatures());
+}
+
MOBase::IModRepositoryBridge* OrganizerCore::createNexusBridge() const
{
return new NexusBridge(m_PluginContainer);
diff --git a/src/organizercore.h b/src/organizercore.h
index d4ce15001..22c4f19a8 100644
--- a/src/organizercore.h
+++ b/src/organizercore.h
@@ -45,6 +45,9 @@ class GameFeatures;
class PluginContainer;
class DirectoryRefresher;
+#include
+#include
+
namespace MOBase
{
template
@@ -270,6 +273,9 @@ class OrganizerCore : public QObject, public MOBase::IPluginDiagnose
Profile* currentProfile() const { return m_CurrentProfile.get(); }
void setCurrentProfile(const QString& profileName);
+ QStringList profileNames() const;
+ std::shared_ptr getProfile(const QString& profileName) const;
+
std::vector enabledArchives();
MOBase::Version getVersion() const { return m_Updater.getVersion(); }
diff --git a/src/organizerproxy.cpp b/src/organizerproxy.cpp
index 22a8a0234..72247b543 100644
--- a/src/organizerproxy.cpp
+++ b/src/organizerproxy.cpp
@@ -3,6 +3,7 @@
#include "downloadmanagerproxy.h"
#include "gamefeaturesproxy.h"
#include "glob_matching.h"
+#include "instancemanager.h"
#include "modlistproxy.h"
#include "organizercore.h"
#include "plugincontainer.h"
@@ -15,6 +16,8 @@
#include
#include
+#include
+
using namespace MOBase;
using namespace MOShared;
@@ -84,6 +87,11 @@ IModRepositoryBridge* OrganizerProxy::createNexusBridge() const
return new NexusBridge(m_PluginContainer, m_Plugin->name());
}
+QString OrganizerProxy::instanceName() const
+{
+ return InstanceManager::singleton().currentInstance()->displayName();
+}
+
QString OrganizerProxy::profileName() const
{
return m_Proxied->profileName();
@@ -367,6 +375,17 @@ MOBase::IProfile* OrganizerProxy::profile() const
return m_Proxied->currentProfile();
}
+QStringList OrganizerProxy::profileNames() const
+{
+ return m_Proxied->profileNames();
+}
+
+std::shared_ptr
+OrganizerProxy::getProfile(const QString& name) const
+{
+ return m_Proxied->getProfile(name);
+}
+
MOBase::IPluginGame const* OrganizerProxy::managedGame() const
{
return m_Proxied->managedGame();
diff --git a/src/organizerproxy.h b/src/organizerproxy.h
index 2c70cb2c3..9ff664b53 100644
--- a/src/organizerproxy.h
+++ b/src/organizerproxy.h
@@ -30,6 +30,7 @@ class OrganizerProxy : public MOBase::IOrganizer
public: // IOrganizer interface
MOBase::IModRepositoryBridge* createNexusBridge() const override;
+ QString instanceName() const override;
QString profileName() const override;
QString profilePath() const override;
QString downloadsPath() const override;
@@ -65,6 +66,10 @@ class OrganizerProxy : public MOBase::IOrganizer
MOBase::IPluginList* pluginList() const override;
MOBase::IModList* modList() const override;
MOBase::IProfile* profile() const override;
+ QStringList profileNames() const override;
+ std::shared_ptr
+ getProfile(const QString& name) const override;
+
MOBase::IGameFeatures* gameFeatures() const override;
HANDLE startApplication(const QString& executable,
diff --git a/src/version.rc b/src/version.rc
index 1979fdf11..477a7dc54 100644
--- a/src/version.rc
+++ b/src/version.rc
@@ -24,7 +24,7 @@ BEGIN
VALUE "FileDescription", "Mod Organizer 2 GUI\0"
VALUE "OriginalFilename", "ModOrganizer.exe\0"
VALUE "InternalName", "ModOrganizer2\0"
- VALUE "LegalCopyright", "Copyright 2011-2016 Sebastian Herbord\r\nCopyright 2016-2025 Mod Organizer 2 contributors\0"
+ VALUE "LegalCopyright", "Copyright 2011-2016 Sebastian Herbord\r\nCopyright 2016-2026 Mod Organizer 2 contributors\0"
VALUE "ProductName", "Mod Organizer 2\0"
VALUE "ProductVersion", VER_FILEVERSION_STR
END