miqt-uic: support icon themes

This commit is contained in:
mappu 2025-05-10 13:10:15 +12:00
parent 2fc549206b
commit b3b914ede8
2 changed files with 13 additions and 3 deletions

View File

@ -61,6 +61,7 @@ type UiString struct {
type UiIcon struct { type UiIcon struct {
ResourceFile string `xml:"resource,attr"` ResourceFile string `xml:"resource,attr"`
Theme string `xml:"theme,attr"`
NormalOff *string `xml:"normaloff,omitempty"` NormalOff *string `xml:"normaloff,omitempty"`
NormalOn *string `xml:"normalon,omitempty"` NormalOn *string `xml:"normalon,omitempty"`

View File

@ -75,14 +75,23 @@ func renderIcon(iconVal *UiIcon, ret *strings.Builder) string {
iconName := fmt.Sprintf("icon%d", IconCounter) iconName := fmt.Sprintf("icon%d", IconCounter)
IconCounter++ IconCounter++
if iconVal.Theme != "" {
ret.WriteString(iconName + ` := qt.QIcon_FromTheme(` + strconv.Quote(iconVal.Theme) + ")\n")
} else {
ret.WriteString(iconName + " := qt.NewQIcon()\n") ret.WriteString(iconName + " := qt.NewQIcon()\n")
}
// A base entry is a synonym for NormalOff. Don't need them both // A base entry is a synonym for NormalOff. Don't need them both
if iconVal.NormalOff != nil { if iconVal.NormalOff != nil && *iconVal.NormalOff != "." {
ret.WriteString(iconName + ".AddFile4(" + strconv.Quote(*iconVal.NormalOff) + ", qt.NewQSize(), qt.QIcon__Normal, qt.QIcon__Off)\n") ret.WriteString(iconName + ".AddFile4(" + strconv.Quote(*iconVal.NormalOff) + ", qt.NewQSize(), qt.QIcon__Normal, qt.QIcon__Off)\n")
} else {
base := strings.TrimSpace(iconVal.Base)
if base == "" || base == "." {
// skip
} else { } else {
ret.WriteString(iconName + ".AddFile(" + strconv.Quote(strings.TrimSpace(iconVal.Base)) + ")\n") ret.WriteString(iconName + ".AddFile(" + strconv.Quote(strings.TrimSpace(iconVal.Base)) + ")\n")
} }
}
if iconVal.NormalOn != nil { if iconVal.NormalOn != nil {
ret.WriteString(iconName + ".AddFile4(" + strconv.Quote(*iconVal.NormalOn) + ", qt.NewQSize(), qt.QIcon__Normal, qt.QIcon__On)\n") ret.WriteString(iconName + ".AddFile4(" + strconv.Quote(*iconVal.NormalOn) + ", qt.NewQSize(), qt.QIcon__Normal, qt.QIcon__On)\n")