From a9a3d49efaf24aec2cebc773d2cf8bffa1c74fd5 Mon Sep 17 00:00:00 2001 From: Chris Bessent Date: Tue, 2 Mar 2021 01:39:31 -0700 Subject: [PATCH] Add enabledByDefault to IPlugin definition --- src/proxy/proxypython.cpp | 2 +- src/runner/proxypluginwrappers.cpp | 7 ++++++- src/runner/proxypluginwrappers.h | 6 ++++-- src/runner/pythonrunner.cpp | 11 ++++++++++- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/proxy/proxypython.cpp b/src/proxy/proxypython.cpp index 6d75ee7..73dec01 100644 --- a/src/proxy/proxypython.cpp +++ b/src/proxy/proxypython.cpp @@ -216,7 +216,7 @@ QString ProxyPython::description() const VersionInfo ProxyPython::version() const { - return VersionInfo(2, 1, 0, VersionInfo::RELEASE_FINAL); + return VersionInfo(2, 2, 0, VersionInfo::RELEASE_FINAL); } QList ProxyPython::settings() const diff --git a/src/runner/proxypluginwrappers.cpp b/src/runner/proxypluginwrappers.cpp index 3d6e99e..06d0927 100644 --- a/src/runner/proxypluginwrappers.cpp +++ b/src/runner/proxypluginwrappers.cpp @@ -76,7 +76,12 @@ BOOST_PP_EXPR_IF(include_requirements, \ return basicWrapperFunctionImplementationWithDefault>>( \ this, &class_name::requirements_Default, "requirements"); \ } \ - std::vector> class_name::requirements_Default() const { return IPlugin::requirements(); }) + std::vector> class_name::requirements_Default() const { return IPlugin::requirements(); } \ + bool class_name::enabledByDefault() const \ + { \ + return basicWrapperFunctionImplementationWithDefault(this, &class_name::enabledByDefault_Default, "enabledByDefault"); \ + } \ + bool class_name::enabledByDefault_Default() const { return IPlugin::enabledByDefault(); }) #define COMMON_I_PLUGIN_WRAPPER_DEFINITIONS(class_name) COMMON_I_PLUGIN_WRAPPER_DEFINITIONS_IMPL(class_name, 1) diff --git a/src/runner/proxypluginwrappers.h b/src/runner/proxypluginwrappers.h index 1d71f2e..ccc20b0 100644 --- a/src/runner/proxypluginwrappers.h +++ b/src/runner/proxypluginwrappers.h @@ -16,7 +16,7 @@ #include #endif -// The wrapper for IPluginGame cannot override requirements() since it's final, +// The wrapper for IPluginGame cannot override requirements or enabledByDefault since they're final, // so we need to be able to exclude the declarations. #define COMMON_I_PLUGIN_WRAPPER_DECLARATIONS_IMPL(include_requirements) \ public: \ @@ -32,7 +32,9 @@ QString localizedName_Default() const; \ QString master_Default() const; \ BOOST_PP_EXPR_IF(include_requirements, \ virtual std::vector> requirements() const override; \ - std::vector> requirements_Default() const;) + std::vector> requirements_Default() const; \ + virtual bool enabledByDefault() const override; \ + bool enabledByDefault_Default() const;) #define COMMON_I_PLUGIN_WRAPPER_DECLARATIONS COMMON_I_PLUGIN_WRAPPER_DECLARATIONS_IMPL(1) diff --git a/src/runner/pythonrunner.cpp b/src/runner/pythonrunner.cpp index 0cce0d1..0639270 100644 --- a/src/runner/pythonrunner.cpp +++ b/src/runner/pythonrunner.cpp @@ -867,7 +867,7 @@ BOOST_PYTHON_MODULE(mobase) .def("onModMoved", &MOBase::IModList::onModMoved, bpy::arg("callback")) ; - // Note: localizedName(), master() and requirements have to go in all the plugin wrappers declaration, + // Note: localizedName, master, requirements and enabledByDefault have to go in all the plugin wrappers declaration, // since the default functions are specific to each wrapper, otherwise in turns into an // infinite recursion mess. bpy::class_("IPlugin") @@ -880,12 +880,14 @@ BOOST_PYTHON_MODULE(mobase) .def("version", bpy::pure_virtual(&MOBase::IPlugin::version)) .def("requirements", &MOBase::IPlugin::requirements, &IPluginWrapper::requirements_Default) .def("settings", bpy::pure_virtual(&MOBase::IPlugin::settings)) + .def("enabledByDefault", &MOBase::IPlugin::enabledByDefault, &IPluginWrapper::enabledByDefault_Default) ; bpy::class_, boost::noncopyable>("IPluginDiagnose") .def("localizedName", &MOBase::IPlugin::localizedName, &IPluginDiagnoseWrapper::localizedName_Default) .def("master", &MOBase::IPlugin::master, &IPluginDiagnoseWrapper::master_Default) .def("requirements", &MOBase::IPlugin::requirements, &IPluginDiagnoseWrapper::requirements_Default) + .def("enabledByDefault", &MOBase::IPlugin::enabledByDefault, &IPluginDiagnoseWrapper::enabledByDefault_Default) .def("activeProblems", bpy::pure_virtual(&MOBase::IPluginDiagnose::activeProblems)) .def("shortDescription", bpy::pure_virtual(&MOBase::IPluginDiagnose::shortDescription), bpy::arg("key")) @@ -913,6 +915,8 @@ BOOST_PYTHON_MODULE(mobase) .def("localizedName", &MOBase::IPlugin::localizedName, &IPluginFileMapperWrapper::localizedName_Default) .def("master", &MOBase::IPlugin::master, &IPluginFileMapperWrapper::master_Default) .def("requirements", &MOBase::IPlugin::requirements, &IPluginFileMapperWrapper::requirements_Default) + .def("enabledByDefault", &MOBase::IPlugin::enabledByDefault, &IPluginFileMapperWrapper::enabledByDefault_Default) + .def("mappings", bpy::pure_virtual(&MOBase::IPluginFileMapper::mappings)) ; @@ -1045,6 +1049,7 @@ BOOST_PYTHON_MODULE(mobase) .def("localizedName", &MOBase::IPlugin::localizedName, &IPluginInstallerSimpleWrapper::localizedName_Default) .def("master", &MOBase::IPlugin::master, &IPluginInstallerSimpleWrapper::master_Default) .def("requirements", &MOBase::IPlugin::requirements, &IPluginInstallerSimpleWrapper::requirements_Default) + .def("enabledByDefault", &MOBase::IPlugin::enabledByDefault, &IPluginInstallerSimpleWrapper::enabledByDefault_Default) // Note: Keeping the variant here even if we always return a tuple to be consistent with the wrapper and // have proper stubs generation. @@ -1063,6 +1068,7 @@ BOOST_PYTHON_MODULE(mobase) .def("localizedName", &MOBase::IPlugin::localizedName, &IPluginInstallerCustomWrapper::localizedName_Default) .def("master", &MOBase::IPlugin::master, &IPluginInstallerCustomWrapper::master_Default) .def("requirements", &MOBase::IPlugin::requirements, &IPluginInstallerCustomWrapper::requirements_Default) + .def("enabledByDefault", &MOBase::IPlugin::enabledByDefault, &IPluginInstallerCustomWrapper::enabledByDefault_Default) // Needs to add both otherwize boost does not understand: .def("isArchiveSupported", &IPluginInstaller::isArchiveSupported, bpy::arg("tree")) @@ -1077,6 +1083,7 @@ BOOST_PYTHON_MODULE(mobase) .def("localizedName", &MOBase::IPlugin::localizedName, &IPluginModPageWrapper::localizedName_Default) .def("master", &MOBase::IPlugin::master, &IPluginModPageWrapper::master_Default) .def("requirements", &MOBase::IPlugin::requirements, &IPluginModPageWrapper::requirements_Default) + .def("enabledByDefault", &MOBase::IPlugin::enabledByDefault, &IPluginModPageWrapper::enabledByDefault_Default) .def("displayName", bpy::pure_virtual(&IPluginModPage::displayName)) .def("icon", bpy::pure_virtual(&IPluginModPage::icon)) @@ -1091,6 +1098,7 @@ BOOST_PYTHON_MODULE(mobase) .def("localizedName", &MOBase::IPlugin::localizedName, &IPluginPreviewWrapper::localizedName_Default) .def("master", &MOBase::IPlugin::master, &IPluginPreviewWrapper::master_Default) .def("requirements", &MOBase::IPlugin::requirements, &IPluginPreviewWrapper::requirements_Default) + .def("enabledByDefault", &MOBase::IPlugin::enabledByDefault, &IPluginPreviewWrapper::enabledByDefault_Default) .def("supportedExtensions", bpy::pure_virtual(&IPluginPreview::supportedExtensions)) .def("genFilePreview", bpy::pure_virtual(&IPluginPreview::genFilePreview), bpy::return_value_policy(), @@ -1101,6 +1109,7 @@ BOOST_PYTHON_MODULE(mobase) .def("localizedName", &MOBase::IPlugin::localizedName, &IPluginToolWrapper::localizedName_Default) .def("master", &MOBase::IPlugin::master, &IPluginToolWrapper::master_Default) .def("requirements", &MOBase::IPlugin::requirements, &IPluginToolWrapper::requirements_Default) + .def("enabledByDefault", &MOBase::IPlugin::enabledByDefault, &IPluginToolWrapper::enabledByDefault_Default) .def("displayName", bpy::pure_virtual(&IPluginTool::displayName)) .def("tooltip", bpy::pure_virtual(&IPluginTool::tooltip))