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 {
4848
     show_legend: bool,
4949
     /// Freeze mode - pause process list updates for navigation
5050
     frozen: bool,
51
+    /// Tree view mode - show process hierarchy
52
+    tree_view: bool,
5153
     /// Search mode - filter processes by name
5254
     search_mode: bool,
5355
     /// Search query string
@@ -149,6 +151,7 @@ impl App {
149151
             refresh_interval,
150152
             show_legend,
151153
             frozen: false,
154
+            tree_view: false,
152155
             search_mode: false,
153156
             search_query: String::new(),
154157
             show_help: false,
@@ -473,6 +476,7 @@ impl App {
473476
             ("Home / End", "First / last"),
474477
             ("PgUp/PgDn", "Jump 10 rows"),
475478
             ("Enter", "Process detail"),
479
+            ("t", "Tree view toggle"),
476480
             ("", ""),
477481
             ("Alt+f", "Freeze list"),
478482
             ("/", "Search filter"),
@@ -1099,7 +1103,7 @@ impl App {
10991103
         };
11001104
 
11011105
         // 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)?;
11031107
 
11041108
         Ok(())
11051109
     }
@@ -1418,6 +1422,10 @@ impl App {
14181422
                             Key::Char('r') => {
14191423
                                 self.last_refresh = Instant::now() - std::time::Duration::from_secs(10);
14201424
                             }
1425
+                            Key::Char('t') => {
1426
+                                self.tree_view = !self.tree_view;
1427
+                                ev_loop.request_redraw();
1428
+                            }
14211429
                             Key::Char('1') => {
14221430
                                 self.tab_bar.set_active(Tab::Cpu);
14231431
                                 self.sort_processes(SortField::Cpu);