mirror of
https://github.com/mappu/miqt.git
synced 2024-12-22 08:58:37 +00:00
uic: support more properties, support QToolBar actions
This commit is contained in:
parent
12b4e083ee
commit
693c9fc0b7
@ -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"`
|
||||
}
|
||||
|
@ -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 <addaction> 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
|
||||
|
@ -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"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user