Skip to content

Commit bf05ac1

Browse files
committed
Update following change to PluginSetting in uibase.
1 parent e4576f6 commit bf05ac1

File tree

5 files changed

+44
-13
lines changed

5 files changed

+44
-13
lines changed

src/mobase/wrappers/basic_classes.cpp

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -798,12 +798,37 @@ namespace mo2::python {
798798
add_modinterface_classes(m);
799799
add_modrepository_classes(m);
800800

801-
py::class_<PluginSetting>(m, "PluginSetting")
802-
.def(py::init<const QString&, const QString&, const QVariant&>(), "key"_a,
803-
"description"_a, "default_value"_a)
804-
.def_readwrite("key", &PluginSetting::key)
805-
.def_readwrite("description", &PluginSetting::description)
806-
.def_readwrite("default_value", &PluginSetting::defaultValue);
801+
py::class_<Setting>(m, "Setting")
802+
.def(py::init([](const QString& name, const QString& description,
803+
const QVariant& defaultValue) {
804+
mo2::python::show_deprecation_warning(
805+
"Setting(key, description, default)",
806+
"Setting(key, description, default) is deprecated, use "
807+
"Setting(name, title, description, default) instead.");
808+
return Setting(name, description, defaultValue);
809+
}),
810+
"key"_a, "description"_a, "default_value"_a)
811+
.def(py::init<const QString&, const QString&, const QString&,
812+
const QVariant&>(),
813+
"name"_a, "title"_a, "description"_a, "default_value"_a)
814+
.def(py::init<const QString&, const QString&, const QString&,
815+
const QString&, const QVariant&>(),
816+
"name"_a, "title"_a, "description"_a, "group"_a, "default_value"_a)
817+
.def_property_readonly("name", &Setting::name)
818+
.def_property_readonly("title", &Setting::title)
819+
.def_property_readonly("description", &Setting::description)
820+
.def_property_readonly("group", &Setting::group)
821+
.def_property_readonly("default_value", &Setting::defaultValue);
822+
823+
// deprecated alias
824+
m.attr("PluginSetting") = m.attr("Setting");
825+
826+
py::class_<SettingGroup>(m, "SettingGroup")
827+
.def(py::init<const QString&, const QString&, const QString&>(), "name"_a,
828+
"title"_a, "description"_a)
829+
.def_property_readonly("name", &SettingGroup::name)
830+
.def_property_readonly("title", &SettingGroup::title)
831+
.def_property_readonly("description", &SettingGroup::description);
807832

808833
py::class_<PluginRequirementFactory>(m, "PluginRequirementFactory")
809834
// pluginDependency

src/mobase/wrappers/pyplugins.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ namespace mo2::python {
145145
.def("name", &IPlugin::name)
146146
.def("localizedName", &IPlugin::localizedName)
147147
.def("settings", &IPlugin::settings)
148+
.def("settingGroups", &IPlugin::settingGroups)
148149
.def("enabledByDefault", &IPlugin::enabledByDefault);
149150

150151
py::class_<IPyPlugin, PyPlugin, IPlugin,

src/mobase/wrappers/pyplugins.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,13 @@ namespace mo2::python {
4545
{
4646
PYBIND11_OVERRIDE(QString, PluginBase, localizedName, );
4747
}
48-
QList<PluginSetting> settings() const override
48+
QList<Setting> settings() const override
4949
{
50-
PYBIND11_OVERRIDE_PURE(QList<PluginSetting>, PluginBase, settings, );
50+
PYBIND11_OVERRIDE_PURE(QList<Setting>, PluginBase, settings, );
51+
}
52+
QList<SettingGroup> settingGroups() const override
53+
{
54+
PYBIND11_OVERRIDE(QList<SettingGroup>, PluginBase, settingGroups, );
5155
}
5256
};
5357

tests/runner/plugins/dummy-iplugin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def version(self) -> mobase.VersionInfo:
2020
def settings(self) -> list[mobase.PluginSetting]:
2121
return [
2222
mobase.PluginSetting(
23-
"a setting", "the setting description", default_value=12
23+
"a_setting", "A Setting", "the setting description", default_value=12
2424
)
2525
]
2626

tests/runner/test_iplugin.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,11 @@ TEST(IPlugin, Basic)
3131
// settings
3232
const auto settings = plugin->settings();
3333
EXPECT_EQ(settings.size(), 1);
34-
EXPECT_EQ(settings[0].key, "a setting");
35-
EXPECT_EQ(settings[0].description, "the setting description");
36-
EXPECT_EQ(settings[0].defaultValue.userType(), QMetaType::Type::Int);
37-
EXPECT_EQ(settings[0].defaultValue.toInt(), 12);
34+
EXPECT_EQ(settings[0].name(), "a_setting");
35+
EXPECT_EQ(settings[0].title(), "A Setting");
36+
EXPECT_EQ(settings[0].description(), "the setting description");
37+
EXPECT_EQ(settings[0].defaultValue().userType(), QMetaType::Type::Int);
38+
EXPECT_EQ(settings[0].defaultValue().toInt(), 12);
3839

3940
// no translation, no custom implementation -> name()
4041
EXPECT_EQ(plugin->localizedName(), "The Name");

0 commit comments

Comments
 (0)