summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Applications/SystemMonitor/main.cpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/Userland/Applications/SystemMonitor/main.cpp b/Userland/Applications/SystemMonitor/main.cpp
index 8f39f5a2f7..9d32074cfe 100644
--- a/Userland/Applications/SystemMonitor/main.cpp
+++ b/Userland/Applications/SystemMonitor/main.cpp
@@ -312,21 +312,22 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
Config::write_i32("SystemMonitor"sv, "Monitor"sv, "Frequency"sv, frequency);
}
- auto& refresh_timer = window->add<Core::Timer>(
- frequency * 1000, [&] {
- // FIXME: remove the primitive re-toggling code once persistent model indices work.
- auto toggled_indices = process_table_view.selection().indices();
- toggled_indices.remove_all_matching([&](auto const& index) { return !process_table_view.is_toggled(index); });
- process_model->update();
- if (!process_table_view.selection().is_empty())
- process_table_view.selection().for_each_index([&](auto& selection) {
- if (toggled_indices.contains_slow(selection))
- process_table_view.expand_all_parents_of(selection);
- });
+ auto update_stats = [&] {
+ // FIXME: remove the primitive re-toggling code once persistent model indices work.
+ auto toggled_indices = process_table_view.selection().indices();
+ toggled_indices.remove_all_matching([&](auto const& index) { return !process_table_view.is_toggled(index); });
+ process_model->update();
+ if (!process_table_view.selection().is_empty())
+ process_table_view.selection().for_each_index([&](auto& selection) {
+ if (toggled_indices.contains_slow(selection))
+ process_table_view.expand_all_parents_of(selection);
+ });
- if (auto* memory_stats_widget = SystemMonitor::MemoryStatsWidget::the())
- memory_stats_widget->refresh();
- });
+ if (auto* memory_stats_widget = SystemMonitor::MemoryStatsWidget::the())
+ memory_stats_widget->refresh();
+ };
+ update_stats();
+ auto& refresh_timer = window->add<Core::Timer>(frequency * 1000, move(update_stats));
auto selected_id = [&](ProcessModel::Column column) -> pid_t {
if (process_table_view.selection().is_empty())