Add instance manager to plugin API (#152)

This commit is contained in:
Jonathan Feenstra
2026-02-08 10:28:25 +01:00
committed by GitHub
parent 076244faab
commit b1ecd89c50
2 changed files with 20 additions and 0 deletions
+19
View File
@@ -14,6 +14,8 @@
#include <uibase/iexecutable.h>
#include <uibase/iexecutableslist.h>
#include <uibase/iinstallationmanager.h>
#include <uibase/iinstance.h>
#include <uibase/iinstancemanager.h>
#include <uibase/imodinterface.h>
#include <uibase/imodrepositorybridge.h>
#include <uibase/imoinfo.h>
@@ -644,6 +646,8 @@ namespace mo2::python {
.def("virtualFileTree", &IOrganizer::virtualFileTree)
.def("instanceManager", &IOrganizer::instanceManager,
py::return_value_policy::reference)
.def("downloadManager", &IOrganizer::downloadManager,
py::return_value_policy::reference)
.def("pluginList", &IOrganizer::pluginList,
@@ -799,6 +803,20 @@ namespace mo2::python {
.def_static("getPluginDataPath", &IOrganizer::getPluginDataPath);
}
void add_iinstance_manager_classes(py::module_ m)
{
py::class_<IInstance, std::shared_ptr<IInstance>>(m, "IInstance")
.def("displayName", &IInstance::displayName)
.def("gameName", &IInstance::gameName)
.def("gameDirectory", &IInstance::gameDirectory)
.def("isPortable", &IInstance::isPortable);
py::class_<IInstanceManager>(m, "IInstanceManager")
.def("currentInstance", &IInstanceManager::currentInstance)
.def("globalInstancePaths", &IInstanceManager::globalInstancePaths)
.def("getGlobalInstance", &IInstanceManager::getGlobalInstance);
}
void add_idownload_manager_classes(py::module_ m)
{
py::class_<IDownloadManager>(m, "IDownloadManager")
@@ -925,6 +943,7 @@ namespace mo2::python {
add_ipluginlist_classes(m);
add_imodlist_classes(m);
add_iinstance_manager_classes(m);
add_idownload_manager_classes(m);
add_iinstallation_manager_classes(m);
add_iorganizer_classes(m);
+1
View File
@@ -34,6 +34,7 @@ public:
MOCK_METHOD(QStringList, getFileOrigins, (const QString &fileName) ,(const, override));
MOCK_METHOD(QList<FileInfo>, findFileInfos, (const QString &path, const std::function<bool(const FileInfo&)> &filter), (const, override));
MOCK_METHOD(std::shared_ptr<const IFileTree>, virtualFileTree, (), (const, override));
MOCK_METHOD(MOBase::IInstanceManager*, instanceManager, (), (const, override));
MOCK_METHOD(MOBase::IDownloadManager*, downloadManager, (), (const, override));
MOCK_METHOD(MOBase::IPluginList*, pluginList, (), (const, override));
MOCK_METHOD(MOBase::IModList*, modList, (), (const, override));