From 45d1e59ce94587705d90e7077c8dfbc65b7587a7 Mon Sep 17 00:00:00 2001 From: Mentalflow <312902918@qq.com> Date: Mon, 21 Aug 2023 23:27:31 +0800 Subject: [PATCH] Example: Fix the theme combobox's state don't sync with system. --- example/example.qml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/example/example.qml b/example/example.qml index 51bb67c..fcac205 100644 --- a/example/example.qml +++ b/example/example.qml @@ -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) + } } } }