From 99dfab08c92cbda09fe94950899b19cb616b355e Mon Sep 17 00:00:00 2001 From: sin-ack Date: Sun, 8 Aug 2021 09:23:48 +0000 Subject: [PATCH] LibGUI: Correctly call update() in ProcessChooser After the update -> invalidate change a couple places broke when update() was supposed to be manually called. This instance was not marked virtual or override, which made it hard to detect. This commit makes sure that update() on the original model is called when the RunningProcessesModel needs an update. --- Userland/Libraries/LibGUI/ProcessChooser.cpp | 9 ++++++--- Userland/Libraries/LibGUI/ProcessChooser.h | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibGUI/ProcessChooser.cpp b/Userland/Libraries/LibGUI/ProcessChooser.cpp index bd8b1b1143..cc72a9dfa1 100644 --- a/Userland/Libraries/LibGUI/ProcessChooser.cpp +++ b/Userland/Libraries/LibGUI/ProcessChooser.cpp @@ -35,11 +35,14 @@ ProcessChooser::ProcessChooser(const StringView& window_title, const StringView& widget.set_layout(); m_table_view = widget.add(); - auto sorting_model = GUI::SortingProxyModel::create(RunningProcessesModel::create()); + auto process_model = RunningProcessesModel::create(); + auto sorting_model = GUI::SortingProxyModel::create(process_model); sorting_model->set_sort_role(GUI::ModelRole::Display); m_table_view->set_model(sorting_model); m_table_view->set_key_column_and_sort_order(RunningProcessesModel::Column::PID, GUI::SortOrder::Descending); + m_process_model = process_model; + m_table_view->on_activation = [this](const ModelIndex& index) { set_pid_from_index_and_close(index); }; auto& button_container = widget.add(); @@ -65,7 +68,7 @@ ProcessChooser::ProcessChooser(const StringView& window_title, const StringView& done(ExecCancel); }; - m_table_view->model()->invalidate(); + m_process_model->update(); m_refresh_timer = add(); @@ -77,7 +80,7 @@ ProcessChooser::ProcessChooser(const StringView& window_title, const StringView& previous_selected_pid = pid_as_variant.as_i32(); } - m_table_view->model()->invalidate(); + m_process_model->update(); if (previous_selected_pid == -1) { return; diff --git a/Userland/Libraries/LibGUI/ProcessChooser.h b/Userland/Libraries/LibGUI/ProcessChooser.h index 78daa8fba7..412648bbde 100644 --- a/Userland/Libraries/LibGUI/ProcessChooser.h +++ b/Userland/Libraries/LibGUI/ProcessChooser.h @@ -8,6 +8,7 @@ #include #include +#include namespace GUI { @@ -30,6 +31,7 @@ private: String m_button_label; RefPtr m_window_icon; RefPtr m_table_view; + RefPtr m_process_model; bool m_refresh_enabled { true }; unsigned m_refresh_interval { 1000 };