diff --git a/cmd/miqt-uic/types.go b/cmd/miqt-uic/types.go index f072930..41ba7cf 100644 --- a/cmd/miqt-uic/types.go +++ b/cmd/miqt-uic/types.go @@ -60,6 +60,7 @@ type UiProperty struct { Name string `xml:"name,attr"` StringVal *UiString `xml:"string,omitempty"` NumberVal *string `xml:"number,omitempty"` // Preserve as string literal + BoolVal *bool `xml:"bool,omitempty"` // "true" or "false" EnumVal *string `xml:"enum,omitempty"` RectVal *UiRect `xml:"rect,omitempty"` } diff --git a/cmd/miqt-uic/ui2go.go b/cmd/miqt-uic/ui2go.go index 7180c58..c28a2a9 100644 --- a/cmd/miqt-uic/ui2go.go +++ b/cmd/miqt-uic/ui2go.go @@ -87,6 +87,14 @@ func generateWidget(w UiWidget, parentName string, parentClass string) (string, // "windowTitle", "title", "text" ret.WriteString(`ui.` + w.Name + setterFunc + `(` + generateString(prop.StringVal, parentClass) + ")\n") + } else if prop.NumberVal != nil { + // "currentIndex" + ret.WriteString(`ui.` + w.Name + setterFunc + `(` + *prop.NumberVal + ")\n") + + } else if prop.BoolVal != nil { + // "childrenCollapsible" + ret.WriteString(`ui.` + w.Name + setterFunc + `(` + formatBool(*prop.BoolVal) + ")\n") + } else if prop.EnumVal != nil { // "frameShape" @@ -281,7 +289,7 @@ func generateWidget(w UiWidget, parentName string, parentClass string) (string, // If we are a menubar, then refers to top-level QMenu instead of QAction if w.Class == "QMenuBar" { ret.WriteString("ui." + w.Name + ".AddMenu(ui." + a.Name + ")\n") - } else if w.Class == "QMenu" { + } else if w.Class == "QMenu" || w.Class == "QToolBar" { // QMenu has its own .AddAction() implementation that takes plain string // That's convenient, but it shadows the AddAction version that takes a QAction* // We need to use the underlying QWidget.AddAction explicitly diff --git a/cmd/miqt-uic/util.go b/cmd/miqt-uic/util.go index e35c86b..86afef5 100644 --- a/cmd/miqt-uic/util.go +++ b/cmd/miqt-uic/util.go @@ -82,3 +82,10 @@ func propertyByName(check []UiProperty, search string) (UiProperty, bool) { return UiProperty{}, false } + +func formatBool(b bool) string { + if b { + return "true" + } + return "false" +}