Lua: Add "dataValue" property to SelectionAspect

Change-Id: Ia4badb571b4af736d7d57c4fc7faa944ba62b2b7
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <mua@spyro-soft.com>
This commit is contained in:
Marcus Tillmanns
2024-09-02 15:28:36 +02:00
parent 27775c8180
commit 1043b1835c
2 changed files with 14 additions and 2 deletions

View File

@@ -326,12 +326,12 @@ void setupSettingsModule()
= options[i].get<sol::optional<sol::table>>(); = options[i].get<sol::optional<sol::table>>();
if (optiontable) { if (optiontable) {
sol::table option = *optiontable; sol::table option = *optiontable;
sol::optional<QString> data = option["data"]; sol::optional<sol::object> data = option["data"];
if (data) { if (data) {
aspect->addOption( aspect->addOption(
{option["name"], {option["name"],
option["tooltip"].get_or(QString()), option["tooltip"].get_or(QString()),
*data}); QVariant::fromValue(*data)});
} else { } else {
aspect->addOption( aspect->addOption(
option["name"], option["tooltip"].get_or(QString())); option["name"], option["tooltip"].get_or(QString()));
@@ -352,11 +352,21 @@ void setupSettingsModule()
}, },
"stringValue", "stringValue",
sol::property(&SelectionAspect::stringValue, &SelectionAspect::setStringValue), sol::property(&SelectionAspect::stringValue, &SelectionAspect::setStringValue),
"dataValue",
sol::property([](SelectionAspect *aspect) {
return qvariant_cast<sol::object>(aspect->itemValue());
}),
"addOption", "addOption",
sol::overload( sol::overload(
[](SelectionAspect &self, const QString &name) { self.addOption(name); }, [](SelectionAspect &self, const QString &name) { self.addOption(name); },
[](SelectionAspect &self, const QString &name, const QString &tooltip) { [](SelectionAspect &self, const QString &name, const QString &tooltip) {
self.addOption(name, tooltip); self.addOption(name, tooltip);
},
[](SelectionAspect &self,
const QString &name,
const QString &tooltip,
const sol::object &data) {
self.addOption({name, tooltip, QVariant::fromValue(data)});
}), }),
sol::base_classes, sol::base_classes,
sol::bases<TypedAspect<int>, BaseAspect>()); sol::bases<TypedAspect<int>, BaseAspect>());

View File

@@ -77,7 +77,9 @@ function settings.ColorAspect.create(options) end
---@class SelectionAspect : TypedAspect<int> ---@class SelectionAspect : TypedAspect<int>
---@field stringValue string The string value of the aspect. ---@field stringValue string The string value of the aspect.
---@field dataValue any The data value of the aspect.
settings.SelectionAspect = {} settings.SelectionAspect = {}
---@enum SelectionDisplayStyle ---@enum SelectionDisplayStyle
settings.SelectionDisplayStyle = { settings.SelectionDisplayStyle = {
RadioButtons = 0, RadioButtons = 0,