Implement basic classes from uibase.

This commit is contained in:
Mikaël Capelle
2022-04-24 22:23:30 +02:00
parent 3798370283
commit c97724a98f
5 changed files with 535 additions and 551 deletions
+2
View File
@@ -19,3 +19,5 @@ project(plugin_python)
# add_subdirectory(src/runner)
add_subdirectory(src/runner-pybind11)
add_subdirectory(src/proxy)
# add_subdirectory(tests)
-27
View File
@@ -27,30 +27,3 @@ target_compile_options(pythonrunner
target_compile_definitions(pythonrunner
PRIVATE QT_NO_KEYWORDS PYTHONRUNNER_LIBRARY)
mo2_install_target(pythonrunner INSTALLDIR bin/plugins/data)
mo2_add_filter(NAME src/converters GROUPS
converters
pythonutils
shared_ptr_converter
tuple_helper
variant_helper
)
mo2_add_filter(NAME src/runner GROUPS
pythonrunner
pylogger
widgets
)
mo2_add_filter(NAME src/utils GROUPS
error
gilock
sipapiaccess
)
mo2_add_filter(NAME src/wrappers GROUPS
gamefeatureswrappers
proxypluginwrappers
pythonwrapperutilities
uibasewrappers
)
+12
View File
@@ -86,6 +86,18 @@ PYBIND11_MODULE(mobase, m)
return res;
});
m.def("testGuessedString", [](GuessedValue<QString> const& value) {
return std::make_tuple(value.operator const QString&(), value.variants());
});
m.def("testQStringList", [](QStringList const& list) {
QStringList res = list;
for (QString& value : res) {
value = value + "_CPP";
}
return res;
});
m.def("testQMap1", [](QMap<QString, QString> const& map) {
QMap<QString, int> res;
for (auto it = map.begin(); it != map.end(); ++it) {
File diff suppressed because it is too large Load Diff
+4 -3
View File
@@ -95,12 +95,13 @@ namespace mo2::python {
iSaveGameInfoWidget.def(py::init<>())
.def(py::init<QWidget*>(), py::arg("parent"))
.def("setSave", &ISaveGameInfoWidget::setSave, py::arg("save"));
py::qt::add_qt_delegate<QWidget>(iSaveGameInfoWidget, "widget");
py::qt::add_qt_delegate<QWidget>(iSaveGameInfoWidget, "_widget");
// IPluginRequirement
//
py::class_<IPluginRequirement, PyPluginRequirement> iPluginRequirementClass(
m, "IPluginRequirement");
py::class_<IPluginRequirement, std::shared_ptr<IPluginRequirement>,
PyPluginRequirement>
iPluginRequirementClass(m, "IPluginRequirement");
py::class_<IPluginRequirement::Problem>(iPluginRequirementClass, "Problem")
.def(py::init<QString, QString>(), py::arg("short_description"),