diff --git a/src/mobase/wrappers/basic_classes.cpp b/src/mobase/wrappers/basic_classes.cpp index 8219fb3..2ca20b0 100644 --- a/src/mobase/wrappers/basic_classes.cpp +++ b/src/mobase/wrappers/basic_classes.cpp @@ -553,10 +553,20 @@ namespace mo2::python { .def("managedGame", &IOrganizer::managedGame, py::return_value_policy::reference) - .def("onAboutToRun", &IOrganizer::onAboutToRun, "callback"_a) + .def("onAboutToRun", + py::overload_cast const&>( + &IOrganizer::onAboutToRun), + "callback"_a) + .def("onAboutToRun", + py::overload_cast const&>( + &IOrganizer::onAboutToRun), + "callback"_a) .def("onFinishedRun", &IOrganizer::onFinishedRun, "callback"_a) .def("onUserInterfaceInitialized", &IOrganizer::onUserInterfaceInitialized, "callback"_a) + .def("onNextRefresh", &IOrganizer::onNextRefresh, "callback"_a, + "immediate_if_possible"_a = true) .def("onProfileCreated", &IOrganizer::onProfileCreated, "callback"_a) .def("onProfileRenamed", &IOrganizer::onProfileRenamed, "callback"_a) .def("onProfileRemoved", &IOrganizer::onProfileRemoved, "callback"_a) diff --git a/src/pybind11-utils/functional.cpp b/src/pybind11-utils/functional.cpp index 4128885..4cc7b6c 100644 --- a/src/pybind11-utils/functional.cpp +++ b/src/pybind11-utils/functional.cpp @@ -21,7 +21,8 @@ namespace mo2::python::detail { auto required_count = args_count - defaults_count; return required_count <= arity // cannot require more parameters than given, - && (args_count >= arity || varargs); // must accept enough parameters. + && (args_count >= arity || + !varargs.is_none()); // must accept enough parameters. } } // namespace mo2::python::detail diff --git a/src/runner/pythonutils.cpp b/src/runner/pythonutils.cpp index 349c722..0aed5a1 100644 --- a/src/runner/pythonutils.cpp +++ b/src/runner/pythonutils.cpp @@ -143,7 +143,6 @@ namespace mo2::python { handler.attr("setLevel")(PyLogLevel::DEBUG); auto logger = logging.attr("getLogger")(py::object(mobase.attr("__name__"))); logger.attr("setLevel")(PyLogLevel::DEBUG); - logger.attr("addHandler")(handler); // set mobase attributes mobase.attr("LogHandler") = MO2Handler; diff --git a/tests/mocks/MockOrganizer.h b/tests/mocks/MockOrganizer.h index 316ba9e..1e393ea 100644 --- a/tests/mocks/MockOrganizer.h +++ b/tests/mocks/MockOrganizer.h @@ -39,10 +39,12 @@ public: MOCK_METHOD(HANDLE, startApplication, (const QString &executable, const QStringList &args, const QString &cwd, const QString &profile, const QString &forcedCustomOverwrite, bool ignoreCustomOverwrite), (override)); MOCK_METHOD(bool, waitForApplication, (HANDLE handle, bool refresh, LPDWORD exitCode), (const, override)); MOCK_METHOD(bool, onAboutToRun, (const std::function &func), (override)); + MOCK_METHOD(bool, onAboutToRun, (const std::function &func), (override)); MOCK_METHOD(bool, onFinishedRun, (const std::function &func), (override)); MOCK_METHOD(void, refresh, (bool saveChanges), (override)); MOCK_METHOD(MOBase::IPluginGame const *, managedGame, (), (const, override)); MOCK_METHOD(bool, onUserInterfaceInitialized, (const std::function &), (override)); + MOCK_METHOD(bool, onNextRefresh, (const std::function&, bool), (override)); MOCK_METHOD(bool, onProfileCreated, (const std::function&), (override)); MOCK_METHOD(bool, onProfileRemoved, (const std::function&), (override)); MOCK_METHOD(bool, onProfileRenamed, (const std::function&), (override));