From 882fa9bed82e649a86e398d0f02238096ef28a92 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 11 May 2024 11:52:26 +1200 Subject: [PATCH] don't setup page data if unsupported --- rog-control-center/src/ui/mod.rs | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/rog-control-center/src/ui/mod.rs b/rog-control-center/src/ui/mod.rs index b8ca67b4..40f96288 100644 --- a/rog-control-center/src/ui/mod.rs +++ b/rog-control-center/src/ui/mod.rs @@ -6,7 +6,7 @@ pub mod setup_system; use std::sync::{Arc, Mutex}; use config_traits::StdConfig; -use rog_dbus::has_iface_blocking; +use rog_dbus::list_iface_blocking; use slint::{ComponentHandle, PhysicalSize, SharedString, Weak}; use crate::config::Config; @@ -108,13 +108,14 @@ pub fn setup_window(config: Arc>) -> MainWindow { } }; + let available = list_iface_blocking().unwrap_or_default(); ui.set_sidebar_items_avilable( [ // Needs to match the order of slint sidebar items - has_iface_blocking("org.asuslinux.Platform").unwrap_or(false), - has_iface_blocking("org.asuslinux.Aura").unwrap_or(false), - has_iface_blocking("org.asuslinux.Anime").unwrap_or(false), - has_iface_blocking("org.asuslinux.FanCurves").unwrap_or(false), + available.contains(&"org.asuslinux.Platform".to_string()), + available.contains(&"org.asuslinux.Aura".to_string()), + available.contains(&"org.asuslinux.Anime".to_string()), + available.contains(&"org.asuslinux.FanCurves".to_string()), true, true, ] @@ -126,11 +127,19 @@ pub fn setup_window(config: Arc>) -> MainWindow { }); setup_app_settings_page(&ui, config.clone()); - setup_system_page(&ui, config.clone()); - setup_system_page_callbacks(&ui, config.clone()); - setup_aura_page(&ui, config.clone()); - setup_anime_page(&ui, config.clone()); - setup_fan_curve_page(&ui, config); + if available.contains(&"org.asuslinux.Platform".to_string()) { + setup_system_page(&ui, config.clone()); + setup_system_page_callbacks(&ui, config.clone()); + } + if available.contains(&"org.asuslinux.Aura".to_string()) { + setup_aura_page(&ui, config.clone()); + } + if available.contains(&"org.asuslinux.Anime".to_string()) { + setup_anime_page(&ui, config.clone()); + } + if available.contains(&"org.asuslinux.FanCurves".to_string()) { + setup_fan_curve_page(&ui, config); + } ui }