Example: Fix the theme combobox's state don't sync with system.
This commit is contained in:
parent
635cf04179
commit
45d1e59ce9
|
@ -515,6 +515,7 @@ RibbonWindow {
|
||||||
height: parent.height
|
height: parent.height
|
||||||
spacing: 10
|
spacing: 10
|
||||||
RibbonComboBox{
|
RibbonComboBox{
|
||||||
|
id: theme_combo
|
||||||
model: ListModel {
|
model: ListModel {
|
||||||
id: model_theme
|
id: model_theme
|
||||||
ListElement { text: "Light" }
|
ListElement { text: "Light" }
|
||||||
|
@ -522,10 +523,7 @@ RibbonWindow {
|
||||||
ListElement { text: "System" }
|
ListElement { text: "System" }
|
||||||
}
|
}
|
||||||
icon_source: RibbonIcons.DarkTheme
|
icon_source: RibbonIcons.DarkTheme
|
||||||
Component.onCompleted: {
|
Component.onCompleted: update_state()
|
||||||
let str = (RibbonTheme.theme_mode === RibbonThemeType.System ? "System" : RibbonTheme.theme_mode === RibbonThemeType.Light ? "Light" : "Dark")
|
|
||||||
currentIndex = find(str)
|
|
||||||
}
|
|
||||||
onActivated: {
|
onActivated: {
|
||||||
if (currentText === "System")
|
if (currentText === "System")
|
||||||
RibbonTheme.theme_mode = RibbonThemeType.System
|
RibbonTheme.theme_mode = RibbonThemeType.System
|
||||||
|
@ -534,6 +532,16 @@ RibbonWindow {
|
||||||
else
|
else
|
||||||
RibbonTheme.theme_mode = RibbonThemeType.Dark
|
RibbonTheme.theme_mode = RibbonThemeType.Dark
|
||||||
}
|
}
|
||||||
|
Connections{
|
||||||
|
target: RibbonTheme
|
||||||
|
function onTheme_modeChanged(){
|
||||||
|
theme_combo.update_state()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function update_state(){
|
||||||
|
let str = (RibbonTheme.theme_mode === RibbonThemeType.System ? "System" : RibbonTheme.theme_mode === RibbonThemeType.Light ? "Light" : "Dark")
|
||||||
|
currentIndex = find(str)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue