From 1a4d34185f5dcf7c83544c12cc2c5ef019a00293 Mon Sep 17 00:00:00 2001 From: mappu Date: Sat, 5 Oct 2024 17:48:58 +1300 Subject: [PATCH] uic: support enum-set properties --- cmd/miqt-uic/types.go | 1 + cmd/miqt-uic/ui2go.go | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/cmd/miqt-uic/types.go b/cmd/miqt-uic/types.go index 022cd07..9e2cdbb 100644 --- a/cmd/miqt-uic/types.go +++ b/cmd/miqt-uic/types.go @@ -80,6 +80,7 @@ type UiProperty struct { EnumVal *string `xml:"enum,omitempty"` RectVal *UiRect `xml:"rect,omitempty"` IconVal *UiIcon `xml:"iconset,omitempty"` + SetVal *string `xml:"set,omitempty"` } type UiActionReference struct { diff --git a/cmd/miqt-uic/ui2go.go b/cmd/miqt-uic/ui2go.go index 4e95e06..f275915 100644 --- a/cmd/miqt-uic/ui2go.go +++ b/cmd/miqt-uic/ui2go.go @@ -162,6 +162,21 @@ func renderProperties(properties []UiProperty, ret *strings.Builder, targetName, // detect the case and convert it to match ret.WriteString(`ui.` + targetName + setterFunc + `(` + normalizeEnumName(*prop.EnumVal) + ")\n") + } else if prop.SetVal != nil { + // QDialogButtonBox::"standardButtons" + // QDialogButtonBox::Cancel|QDialogButtonBox::Save + + parts := strings.Split(*prop.SetVal, `|`) + for i, p := range parts { + parts[i] = normalizeEnumName(p) + } + + emit := "0" + if len(parts) > 0 { + emit = strings.Join(parts, `|`) + } + ret.WriteString(`ui.` + targetName + setterFunc + `(` + emit + ")\n") + } else if prop.IconVal != nil { iconName := renderIcon(prop.IconVal, ret) ret.WriteString(`ui.` + targetName + setterFunc + `(` + iconName + ")\n")