Skip to content

Commit fb11b56

Browse files
Add executables list to plugin API
1 parent b816465 commit fb11b56

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

src/mobase/wrappers/basic_classes.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
#include <uibase/game_features/igamefeatures.h>
1111
#include <uibase/guessedvalue.h>
1212
#include <uibase/idownloadmanager.h>
13+
#include <uibase/iexecutable.h>
14+
#include <uibase/iexecutableslist.h>
1315
#include <uibase/iinstallationmanager.h>
1416
#include <uibase/imodinterface.h>
1517
#include <uibase/imodrepositorybridge.h>
@@ -198,6 +200,23 @@ namespace mo2::python {
198200
.def("forced", &ExecutableForcedLoadSetting::forced)
199201
.def("library", &ExecutableForcedLoadSetting::library)
200202
.def("process", &ExecutableForcedLoadSetting::process);
203+
204+
py::class_<IExecutable, std::shared_ptr<IExecutable>>(m, "IExecutable")
205+
.def("title", &IExecutable::title)
206+
.def("binaryInfo", &IExecutable::binaryInfo)
207+
.def("arguments", &IExecutable::arguments)
208+
.def("steamAppID", &IExecutable::steamAppID)
209+
.def("workingDirectory", &IExecutable::workingDirectory)
210+
.def("isShownOnToolbar", &IExecutable::isShownOnToolbar)
211+
.def("usesOwnIcon", &IExecutable::usesOwnIcon)
212+
.def("minimizeToSystemTray", &IExecutable::minimizeToSystemTray)
213+
.def("hide", &IExecutable::hide);
214+
215+
py::class_<IExecutablesList>(m, "IExecutablesList")
216+
.def("executables", &IExecutablesList::executables)
217+
.def("getByTitle", &IExecutablesList::getByTitle, "title"_a)
218+
.def("getByBinary", &IExecutablesList::getByBinary, "info"_a)
219+
.def("titleExists", &IExecutablesList::titleExists, "title"_a);
201220
}
202221

203222
void add_modinterface_classes(py::module_ m)
@@ -625,6 +644,8 @@ namespace mo2::python {
625644
.def("pluginList", &IOrganizer::pluginList,
626645
py::return_value_policy::reference)
627646
.def("modList", &IOrganizer::modList, py::return_value_policy::reference)
647+
.def("executablesList", &IOrganizer::executablesList,
648+
py::return_value_policy::reference)
628649
.def("gameFeatures", &IOrganizer::gameFeatures,
629650
py::return_value_policy::reference)
630651
.def("profile", &IOrganizer::profile)

tests/mocks/MockOrganizer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ class MockOrganizer : public IOrganizer {
3737
MOCK_METHOD(MOBase::IDownloadManager*, downloadManager, (), (const, override));
3838
MOCK_METHOD(MOBase::IPluginList*, pluginList, (), (const, override));
3939
MOCK_METHOD(MOBase::IModList*, modList, (), (const, override));
40+
MOCK_METHOD(MOBase::IExecutablesList*, executablesList, (), (const, override));
4041
MOCK_METHOD(std::shared_ptr<MOBase::IProfile>, profile, (), (const, override));
4142
MOCK_METHOD(QStringList, profileNames, (), (const, override));
4243
MOCK_METHOD(std::shared_ptr<const MOBase::IProfile>, getProfile, (const QString& name), (const, override));

0 commit comments

Comments
 (0)