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

View File

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