aboutsummaryrefslogtreecommitdiff
path: root/libs/plugin_python/tests/python/test_guessed_string.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/plugin_python/tests/python/test_guessed_string.cpp')
-rw-r--r--libs/plugin_python/tests/python/test_guessed_string.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/libs/plugin_python/tests/python/test_guessed_string.cpp b/libs/plugin_python/tests/python/test_guessed_string.cpp
new file mode 100644
index 0000000..5e76773
--- /dev/null
+++ b/libs/plugin_python/tests/python/test_guessed_string.cpp
@@ -0,0 +1,34 @@
+#include "pybind11_qt/pybind11_qt.h"
+
+#include <pybind11/functional.h>
+#include <pybind11/pybind11.h>
+
+#include <uibase/guessedvalue.h>
+
+using namespace MOBase;
+
+PYBIND11_MODULE(guessed_string, m)
+{
+ m.def("get_value", [](GuessedValue<QString> const& value) {
+ return value.operator const QString&();
+ });
+ m.def("get_variants", [](GuessedValue<QString> const& value) {
+ return value.variants();
+ });
+
+ m.def("set_from_callback",
+ [](GuessedValue<QString>& value,
+ std::function<void(GuessedValue<QString>&)> const& fn) {
+ fn(value);
+ });
+
+ // note: the function needs to take the guessed string by pointer if constructed
+ // from C++, this is to be taken into account when calling Python function (cf.
+ // installers)
+ m.def("get_from_callback",
+ [](std::function<void(GuessedValue<QString>*)> const& fn) {
+ GuessedValue<QString> value;
+ fn(&value);
+ return (QString)value;
+ });
+}