monado tab order switch

This commit is contained in:
galister 2026-07-14 14:18:44 +09:00
parent 5407e53700
commit b1e09910a2
2 changed files with 9 additions and 9 deletions

View File

@ -2,8 +2,8 @@
<elements>
<div gap="4">
<Tabs id="tabs">
<Tab name="general_settings" translation="GENERAL_SETTINGS" sprite_src_builtin="dashboard/settings.svg" />
<Tab name="process_list" translation="PROCESS_LIST" sprite_src_builtin="dashboard/cpu.svg" />
<Tab name="general_settings" translation="GENERAL_SETTINGS" sprite_src_builtin="dashboard/settings.svg" />
<Tab name="debug_timings" translation="DEBUG_INFO" sprite_src_builtin="dashboard/not_a_bug.svg" />
</Tabs>
<div gap="4" id="content" width="100%">

View File

@ -28,16 +28,16 @@ use crate::{
#[derive(Clone)]
enum TabNameEnum {
GeneralSettings,
ProcessList,
GeneralSettings,
DebugTimings,
}
impl TabNameEnum {
fn from_string(s: &str) -> Option<Self> {
match s {
"general_settings" => Some(TabNameEnum::GeneralSettings),
"process_list" => Some(TabNameEnum::ProcessList),
"general_settings" => Some(TabNameEnum::GeneralSettings),
"debug_timings" => Some(TabNameEnum::DebugTimings),
_ => None,
}
@ -126,8 +126,8 @@ struct SubtabDebugTimings {
#[allow(clippy::large_enum_variant)]
enum Subtab {
Empty,
GeneralSettings(SubtabGeneralSettings),
ProcessList(SubtabProcessList),
GeneralSettings(SubtabGeneralSettings),
DebugTimings(SubtabDebugTimings),
}
@ -184,6 +184,10 @@ impl<T> Tab<T> for TabMonado<T> {
Task::SetTab(tab) => {
frontend.layout.remove_children(self.id_content);
match tab {
TabNameEnum::ProcessList => {
self.tasks.push(Task::ProcessListRefresh);
self.subtab = Subtab::ProcessList(SubtabProcessList::new(self.id_content, frontend)?)
}
TabNameEnum::GeneralSettings => {
self.subtab = Subtab::GeneralSettings(SubtabGeneralSettings::new(
self.id_content,
@ -192,10 +196,6 @@ impl<T> Tab<T> for TabMonado<T> {
&self.tasks,
)?)
}
TabNameEnum::ProcessList => {
self.tasks.push(Task::ProcessListRefresh);
self.subtab = Subtab::ProcessList(SubtabProcessList::new(self.id_content, frontend)?)
}
TabNameEnum::DebugTimings => {
self.subtab = Subtab::DebugTimings(SubtabDebugTimings::new(self.id_content, frontend, &self.tasks)?)
}
@ -206,7 +206,6 @@ impl<T> Tab<T> for TabMonado<T> {
match &mut self.subtab {
Subtab::Empty => {}
Subtab::GeneralSettings(_) => {}
Subtab::ProcessList(_) => {
// every few seconds
if let Subtab::ProcessList(_) = &self.subtab
@ -215,6 +214,7 @@ impl<T> Tab<T> for TabMonado<T> {
self.tasks.push(Task::ProcessListRefresh);
}
}
Subtab::GeneralSettings(_) => {}
Subtab::DebugTimings(timings) => {
timings.update(&self.tasks, data, frontend)?;
}