mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 21:42:43 +00:00 
			
		
		
		
	SystemMonitor: Show total CPU usage percentage in status bar
This commit is contained in:
		
							parent
							
								
									9cba533e36
								
							
						
					
					
						commit
						8f0f6af369
					
				
					 1 changed files with 11 additions and 4 deletions
				
			
		|  | @ -74,6 +74,8 @@ static NonnullRefPtr<GUI::Widget> build_devices_tab(); | ||||||
| static NonnullRefPtr<GUI::Widget> build_graphs_tab(); | static NonnullRefPtr<GUI::Widget> build_graphs_tab(); | ||||||
| static NonnullRefPtr<GUI::Widget> build_processors_tab(); | static NonnullRefPtr<GUI::Widget> build_processors_tab(); | ||||||
| 
 | 
 | ||||||
|  | static RefPtr<GUI::StatusBar> statusbar; | ||||||
|  | 
 | ||||||
| class UnavailableProcessWidget final : public GUI::Frame { | class UnavailableProcessWidget final : public GUI::Frame { | ||||||
|     C_OBJECT(UnavailableProcessWidget) |     C_OBJECT(UnavailableProcessWidget) | ||||||
| public: | public: | ||||||
|  | @ -188,12 +190,12 @@ int main(int argc, char** argv) | ||||||
|     tabwidget_container.layout()->set_margins({ 4, 0, 4, 4 }); |     tabwidget_container.layout()->set_margins({ 4, 0, 4, 4 }); | ||||||
|     auto& tabwidget = tabwidget_container.add<GUI::TabWidget>(); |     auto& tabwidget = tabwidget_container.add<GUI::TabWidget>(); | ||||||
| 
 | 
 | ||||||
|     auto& statusbar = main_widget.add<GUI::StatusBar>(2); |     statusbar = main_widget.add<GUI::StatusBar>(3); | ||||||
| 
 | 
 | ||||||
|     auto process_model = ProcessModel::create(); |     auto process_model = ProcessModel::create(); | ||||||
|     process_model->on_state_update = [&](int process_count, int thread_count) { |     process_model->on_state_update = [&](int process_count, int thread_count) { | ||||||
|         statusbar.set_text(0, String::formatted("Processes: {}", process_count)); |         statusbar->set_text(0, String::formatted("Processes: {}", process_count)); | ||||||
|         statusbar.set_text(1, String::formatted("Threads: {}", thread_count)); |         statusbar->set_text(1, String::formatted("Threads: {}", thread_count)); | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     auto process_container_splitter = GUI::VerticalSplitter::construct(); |     auto process_container_splitter = GUI::VerticalSplitter::construct(); | ||||||
|  | @ -634,8 +636,13 @@ NonnullRefPtr<GUI::Widget> build_graphs_tab() | ||||||
|         cpu_graphs.append(&cpu_graph); |         cpu_graphs.append(&cpu_graph); | ||||||
|     } |     } | ||||||
|     ProcessModel::the().on_cpu_info_change = [cpu_graphs](const NonnullOwnPtrVector<ProcessModel::CpuInfo>& cpus) { |     ProcessModel::the().on_cpu_info_change = [cpu_graphs](const NonnullOwnPtrVector<ProcessModel::CpuInfo>& cpus) { | ||||||
|         for (size_t i = 0; i < cpus.size(); i++) |         float sum_cpu = 0; | ||||||
|  |         for (size_t i = 0; i < cpus.size(); ++i) { | ||||||
|             cpu_graphs[i]->add_value({ (int)cpus[i].total_cpu_percent, (int)cpus[i].total_cpu_percent_kernel }); |             cpu_graphs[i]->add_value({ (int)cpus[i].total_cpu_percent, (int)cpus[i].total_cpu_percent_kernel }); | ||||||
|  |             sum_cpu += cpus[i].total_cpu_percent; | ||||||
|  |         } | ||||||
|  |         float cpu_usage = sum_cpu / (float)cpus.size(); | ||||||
|  |         statusbar->set_text(2, String::formatted("CPU usage: {}%", (int)roundf(cpu_usage))); | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     auto& memory_graph_group_box = graphs_container->add<GUI::GroupBox>("Memory usage"); |     auto& memory_graph_group_box = graphs_container->add<GUI::GroupBox>("Memory usage"); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling