diff --git a/Applications/ProcessManager/ProcessTableModel.cpp b/Applications/ProcessManager/ProcessTableModel.cpp index a2aa5ff29a..f157661625 100644 --- a/Applications/ProcessManager/ProcessTableModel.cpp +++ b/Applications/ProcessManager/ProcessTableModel.cpp @@ -75,21 +75,6 @@ GTableModel::ColumnMetadata ProcessTableModel::column_metadata(int column) const } } -GModelIndex ProcessTableModel::selected_index() const -{ - return { m_selected_row, 0 }; -} - -void ProcessTableModel::set_selected_index(GModelIndex index) -{ - if (!index.is_valid()) { - m_selected_row = -1; - return; - } - if (index.row() >= 0 && index.row() < m_pids.size()) - m_selected_row = index.row(); -} - static String pretty_byte_size(size_t size) { return String::format("%uK", size / 1024); @@ -207,7 +192,7 @@ void ProcessTableModel::update() pid_t ProcessTableModel::selected_pid() const { - if (m_selected_row == -1) + if (!selected_index().is_valid()) return -1; - return m_pids[m_selected_row]; + return m_pids[selected_index().row()]; } diff --git a/Applications/ProcessManager/ProcessTableModel.h b/Applications/ProcessManager/ProcessTableModel.h index 41185cc67f..47899b712e 100644 --- a/Applications/ProcessManager/ProcessTableModel.h +++ b/Applications/ProcessManager/ProcessTableModel.h @@ -15,8 +15,6 @@ public: virtual int column_count() const override; virtual String column_name(int column) const override; virtual ColumnMetadata column_metadata(int column) const override; - virtual GModelIndex selected_index() const override; - virtual void set_selected_index(GModelIndex) override; virtual GVariant data(int row, int column) const override; virtual void update() override; @@ -43,7 +41,6 @@ private: HashMap m_usernames; HashMap> m_processes; Vector m_pids; - int m_selected_row { -1 }; RetainPtr m_generic_process_icon; RetainPtr m_high_priority_icon; RetainPtr m_low_priority_icon; diff --git a/LibGUI/GTableModel.h b/LibGUI/GTableModel.h index 3ea5a2f88f..b1c6a5e46f 100644 --- a/LibGUI/GTableModel.h +++ b/LibGUI/GTableModel.h @@ -46,8 +46,6 @@ public: virtual String column_name(int) const { return { }; } virtual ColumnMetadata column_metadata(int) const { return { }; } virtual GVariant data(int row, int column) const = 0; - virtual void set_selected_index(GModelIndex) { } - virtual GModelIndex selected_index() const { return GModelIndex(); } virtual void update() = 0; bool is_valid(GModelIndex index) const @@ -55,6 +53,9 @@ public: return index.row() >= 0 && index.row() < row_count() && index.column() >= 0 && index.column() < column_count(); } + void set_selected_index(const GModelIndex& index) { m_selected_index = index; } + GModelIndex selected_index() const { return m_selected_index; } + void register_view(Badge, GTableView&); void unregister_view(Badge, GTableView&); @@ -66,4 +67,5 @@ protected: private: HashTable m_views; + GModelIndex m_selected_index; };