gardesk/gartop / 5c84a22

Browse files

Add tree_view toggle ('t' key) with help menu entry

Authored by espadonne
SHA
5c84a22172edd2bcf76debcd369bfb257ba11b24
Parents
e0f19d1
Tree
5ec5db3

1 changed file

StatusFile+-
M gartop/src/gui/app.rs 9 1
gartop/src/gui/app.rsmodified
@@ -48,6 +48,8 @@ pub struct App {
48
     show_legend: bool,
48
     show_legend: bool,
49
     /// Freeze mode - pause process list updates for navigation
49
     /// Freeze mode - pause process list updates for navigation
50
     frozen: bool,
50
     frozen: bool,
51
+    /// Tree view mode - show process hierarchy
52
+    tree_view: bool,
51
     /// Search mode - filter processes by name
53
     /// Search mode - filter processes by name
52
     search_mode: bool,
54
     search_mode: bool,
53
     /// Search query string
55
     /// Search query string
@@ -149,6 +151,7 @@ impl App {
149
             refresh_interval,
151
             refresh_interval,
150
             show_legend,
152
             show_legend,
151
             frozen: false,
153
             frozen: false,
154
+            tree_view: false,
152
             search_mode: false,
155
             search_mode: false,
153
             search_query: String::new(),
156
             search_query: String::new(),
154
             show_help: false,
157
             show_help: false,
@@ -473,6 +476,7 @@ impl App {
473
             ("Home / End", "First / last"),
476
             ("Home / End", "First / last"),
474
             ("PgUp/PgDn", "Jump 10 rows"),
477
             ("PgUp/PgDn", "Jump 10 rows"),
475
             ("Enter", "Process detail"),
478
             ("Enter", "Process detail"),
479
+            ("t", "Tree view toggle"),
476
             ("", ""),
480
             ("", ""),
477
             ("Alt+f", "Freeze list"),
481
             ("Alt+f", "Freeze list"),
478
             ("/", "Search filter"),
482
             ("/", "Search filter"),
@@ -1099,7 +1103,7 @@ impl App {
1099
         };
1103
         };
1100
 
1104
 
1101
         // Render process list with filtered processes
1105
         // Render process list with filtered processes
1102
-        self.process_list.render(&self.renderer, &self.theme, &display_processes)?;
1106
+        self.process_list.render(&self.renderer, &self.theme, &display_processes, self.tree_view)?;
1103
 
1107
 
1104
         Ok(())
1108
         Ok(())
1105
     }
1109
     }
@@ -1418,6 +1422,10 @@ impl App {
1418
                             Key::Char('r') => {
1422
                             Key::Char('r') => {
1419
                                 self.last_refresh = Instant::now() - std::time::Duration::from_secs(10);
1423
                                 self.last_refresh = Instant::now() - std::time::Duration::from_secs(10);
1420
                             }
1424
                             }
1425
+                            Key::Char('t') => {
1426
+                                self.tree_view = !self.tree_view;
1427
+                                ev_loop.request_redraw();
1428
+                            }
1421
                             Key::Char('1') => {
1429
                             Key::Char('1') => {
1422
                                 self.tab_bar.set_active(Tab::Cpu);
1430
                                 self.tab_bar.set_active(Tab::Cpu);
1423
                                 self.sort_processes(SortField::Cpu);
1431
                                 self.sort_processes(SortField::Cpu);