don't setup page data if unsupported

This commit is contained in:
Luke D. Jones
2024-05-11 11:52:26 +12:00
parent 9c7dfb4030
commit 882fa9bed8

View File

@@ -6,7 +6,7 @@ pub mod setup_system;
use std::sync::{Arc, Mutex}; use std::sync::{Arc, Mutex};
use config_traits::StdConfig; use config_traits::StdConfig;
use rog_dbus::has_iface_blocking; use rog_dbus::list_iface_blocking;
use slint::{ComponentHandle, PhysicalSize, SharedString, Weak}; use slint::{ComponentHandle, PhysicalSize, SharedString, Weak};
use crate::config::Config; use crate::config::Config;
@@ -108,13 +108,14 @@ pub fn setup_window(config: Arc<Mutex<Config>>) -> MainWindow {
} }
}; };
let available = list_iface_blocking().unwrap_or_default();
ui.set_sidebar_items_avilable( ui.set_sidebar_items_avilable(
[ [
// Needs to match the order of slint sidebar items // Needs to match the order of slint sidebar items
has_iface_blocking("org.asuslinux.Platform").unwrap_or(false), available.contains(&"org.asuslinux.Platform".to_string()),
has_iface_blocking("org.asuslinux.Aura").unwrap_or(false), available.contains(&"org.asuslinux.Aura".to_string()),
has_iface_blocking("org.asuslinux.Anime").unwrap_or(false), available.contains(&"org.asuslinux.Anime".to_string()),
has_iface_blocking("org.asuslinux.FanCurves").unwrap_or(false), available.contains(&"org.asuslinux.FanCurves".to_string()),
true, true,
true, true,
] ]
@@ -126,11 +127,19 @@ pub fn setup_window(config: Arc<Mutex<Config>>) -> MainWindow {
}); });
setup_app_settings_page(&ui, config.clone()); setup_app_settings_page(&ui, config.clone());
setup_system_page(&ui, config.clone()); if available.contains(&"org.asuslinux.Platform".to_string()) {
setup_system_page_callbacks(&ui, config.clone()); setup_system_page(&ui, config.clone());
setup_aura_page(&ui, config.clone()); setup_system_page_callbacks(&ui, config.clone());
setup_anime_page(&ui, config.clone()); }
setup_fan_curve_page(&ui, config); 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 ui
} }