Example: Fix the theme combobox's state don't sync with system.

This commit is contained in:
Mentalflow 2023-08-21 23:27:31 +08:00
parent 635cf04179
commit 45d1e59ce9
Signed by: Mentalflow
GPG Key ID: 5AE68D4401A2EE71
1 changed files with 12 additions and 4 deletions

View File

@ -515,6 +515,7 @@ RibbonWindow {
height: parent.height
spacing: 10
RibbonComboBox{
id: theme_combo
model: ListModel {
id: model_theme
ListElement { text: "Light" }
@ -522,10 +523,7 @@ RibbonWindow {
ListElement { text: "System" }
}
icon_source: RibbonIcons.DarkTheme
Component.onCompleted: {
let str = (RibbonTheme.theme_mode === RibbonThemeType.System ? "System" : RibbonTheme.theme_mode === RibbonThemeType.Light ? "Light" : "Dark")
currentIndex = find(str)
}
Component.onCompleted: update_state()
onActivated: {
if (currentText === "System")
RibbonTheme.theme_mode = RibbonThemeType.System
@ -534,6 +532,16 @@ RibbonWindow {
else
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)
}
}
}
}