Skip to content

Commit c6c7e5e

Browse files
authored
Merge pull request #113 from ModOrganizer2/dev/refresh-callback
Add onNextRefresh() and 2nd onAboutToRun bindings.
2 parents d1609a7 + 328b6e7 commit c6c7e5e

4 files changed

Lines changed: 15 additions & 3 deletions

File tree

src/mobase/wrappers/basic_classes.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -553,10 +553,20 @@ namespace mo2::python {
553553
.def("managedGame", &IOrganizer::managedGame,
554554
py::return_value_policy::reference)
555555

556-
.def("onAboutToRun", &IOrganizer::onAboutToRun, "callback"_a)
556+
.def("onAboutToRun",
557+
py::overload_cast<std::function<bool(QString const&, const QDir&,
558+
const QString&)> const&>(
559+
&IOrganizer::onAboutToRun),
560+
"callback"_a)
561+
.def("onAboutToRun",
562+
py::overload_cast<std::function<bool(QString const&)> const&>(
563+
&IOrganizer::onAboutToRun),
564+
"callback"_a)
557565
.def("onFinishedRun", &IOrganizer::onFinishedRun, "callback"_a)
558566
.def("onUserInterfaceInitialized", &IOrganizer::onUserInterfaceInitialized,
559567
"callback"_a)
568+
.def("onNextRefresh", &IOrganizer::onNextRefresh, "callback"_a,
569+
"immediate_if_possible"_a = true)
560570
.def("onProfileCreated", &IOrganizer::onProfileCreated, "callback"_a)
561571
.def("onProfileRenamed", &IOrganizer::onProfileRenamed, "callback"_a)
562572
.def("onProfileRemoved", &IOrganizer::onProfileRemoved, "callback"_a)

src/pybind11-utils/functional.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ namespace mo2::python::detail {
2121
auto required_count = args_count - defaults_count;
2222

2323
return required_count <= arity // cannot require more parameters than given,
24-
&& (args_count >= arity || varargs); // must accept enough parameters.
24+
&& (args_count >= arity ||
25+
!varargs.is_none()); // must accept enough parameters.
2526
}
2627

2728
} // namespace mo2::python::detail

src/runner/pythonutils.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ namespace mo2::python {
143143
handler.attr("setLevel")(PyLogLevel::DEBUG);
144144
auto logger = logging.attr("getLogger")(py::object(mobase.attr("__name__")));
145145
logger.attr("setLevel")(PyLogLevel::DEBUG);
146-
logger.attr("addHandler")(handler);
147146

148147
// set mobase attributes
149148
mobase.attr("LogHandler") = MO2Handler;

tests/mocks/MockOrganizer.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,12 @@ class MockOrganizer : public IOrganizer {
3939
MOCK_METHOD(HANDLE, startApplication, (const QString &executable, const QStringList &args, const QString &cwd, const QString &profile, const QString &forcedCustomOverwrite, bool ignoreCustomOverwrite), (override));
4040
MOCK_METHOD(bool, waitForApplication, (HANDLE handle, bool refresh, LPDWORD exitCode), (const, override));
4141
MOCK_METHOD(bool, onAboutToRun, (const std::function<bool(const QString&)> &func), (override));
42+
MOCK_METHOD(bool, onAboutToRun, (const std::function<bool(const QString&, const QDir&, const QString&)> &func), (override));
4243
MOCK_METHOD(bool, onFinishedRun, (const std::function<void(const QString&, unsigned int)> &func), (override));
4344
MOCK_METHOD(void, refresh, (bool saveChanges), (override));
4445
MOCK_METHOD(MOBase::IPluginGame const *, managedGame, (), (const, override));
4546
MOCK_METHOD(bool, onUserInterfaceInitialized, (const std::function<void (QMainWindow *)> &), (override));
47+
MOCK_METHOD(bool, onNextRefresh, (const std::function<void()>&, bool), (override));
4648
MOCK_METHOD(bool, onProfileCreated, (const std::function<void(MOBase::IProfile*)>&), (override));
4749
MOCK_METHOD(bool, onProfileRemoved, (const std::function<void(const QString&)>&), (override));
4850
MOCK_METHOD(bool, onProfileRenamed, (const std::function<void(MOBase::IProfile*, QString const&, QString const&)>&), (override));

0 commit comments

Comments
 (0)