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