From 7df1121e1c25044578e8dad87b954e5bfbe7e5f9 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 6 Mar 2019 19:56:47 +0100 Subject: [PATCH] LibGUI: GTableModel::data() should take a GModelIndex instead of int,int. --- Applications/FileManager/DirectoryTableModel.cpp | 6 +++--- Applications/FileManager/DirectoryTableModel.h | 2 +- Applications/ProcessManager/ProcessTableModel.cpp | 8 ++++---- Applications/ProcessManager/ProcessTableModel.h | 2 +- LibGUI/GTableModel.h | 4 ++-- LibGUI/GTableView.cpp | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Applications/FileManager/DirectoryTableModel.cpp b/Applications/FileManager/DirectoryTableModel.cpp index 712c7e22da3..138f55f99f1 100644 --- a/Applications/FileManager/DirectoryTableModel.cpp +++ b/Applications/FileManager/DirectoryTableModel.cpp @@ -135,10 +135,10 @@ String DirectoryTableModel::name_for_gid(uid_t gid) const return (*it).value; } -GVariant DirectoryTableModel::data(int row, int column) const +GVariant DirectoryTableModel::data(const GModelIndex& index) const { - auto& entry = this->entry(row); - switch (column) { + auto& entry = this->entry(index.row()); + switch (index.column()) { case Column::Icon: return icon_for(entry); case Column::Name: return entry.name; case Column::Size: return (int)entry.size; diff --git a/Applications/FileManager/DirectoryTableModel.h b/Applications/FileManager/DirectoryTableModel.h index a38e9a1bf01..39263416009 100644 --- a/Applications/FileManager/DirectoryTableModel.h +++ b/Applications/FileManager/DirectoryTableModel.h @@ -24,7 +24,7 @@ public: virtual int column_count() const override; virtual String column_name(int column) const override; virtual ColumnMetadata column_metadata(int column) const override; - virtual GVariant data(int row, int column) const override; + virtual GVariant data(const GModelIndex&) const override; virtual void update() override; virtual void activate(const GModelIndex&) override; diff --git a/Applications/ProcessManager/ProcessTableModel.cpp b/Applications/ProcessManager/ProcessTableModel.cpp index f1576616254..2bc49400c7e 100644 --- a/Applications/ProcessManager/ProcessTableModel.cpp +++ b/Applications/ProcessManager/ProcessTableModel.cpp @@ -80,12 +80,12 @@ static String pretty_byte_size(size_t size) return String::format("%uK", size / 1024); } -GVariant ProcessTableModel::data(int row, int column) const +GVariant ProcessTableModel::data(const GModelIndex& index) const { - ASSERT(is_valid({ row, column })); - auto it = m_processes.find(m_pids[row]); + ASSERT(is_valid(index)); + auto it = m_processes.find(m_pids[index.row()]); auto& process = *(*it).value; - switch (column) { + switch (index.column()) { case Column::Icon: return *m_generic_process_icon; case Column::PID: return process.current_state.pid; case Column::State: return process.current_state.state; diff --git a/Applications/ProcessManager/ProcessTableModel.h b/Applications/ProcessManager/ProcessTableModel.h index 47899b712e1..35b1145a372 100644 --- a/Applications/ProcessManager/ProcessTableModel.h +++ b/Applications/ProcessManager/ProcessTableModel.h @@ -15,7 +15,7 @@ public: virtual int column_count() const override; virtual String column_name(int column) const override; virtual ColumnMetadata column_metadata(int column) const override; - virtual GVariant data(int row, int column) const override; + virtual GVariant data(const GModelIndex&) const override; virtual void update() override; pid_t selected_pid() const; diff --git a/LibGUI/GTableModel.h b/LibGUI/GTableModel.h index e2bfef71ea4..e0b43b904a6 100644 --- a/LibGUI/GTableModel.h +++ b/LibGUI/GTableModel.h @@ -45,11 +45,11 @@ public: virtual String row_name(int) const { return { }; } virtual String column_name(int) const { return { }; } virtual ColumnMetadata column_metadata(int) const { return { }; } - virtual GVariant data(int row, int column) const = 0; + virtual GVariant data(const GModelIndex&) const = 0; virtual void update() = 0; virtual void activate(const GModelIndex&) { } - bool is_valid(GModelIndex index) const + bool is_valid(const GModelIndex& index) const { return index.row() >= 0 && index.row() < row_count() && index.column() >= 0 && index.column() < column_count(); } diff --git a/LibGUI/GTableView.cpp b/LibGUI/GTableView.cpp index 11bee41fd17..95da5cfe355 100644 --- a/LibGUI/GTableView.cpp +++ b/LibGUI/GTableView.cpp @@ -135,7 +135,7 @@ void GTableView::paint_event(GPaintEvent& event) auto column_metadata = m_model->column_metadata(column_index); int column_width = column_metadata.preferred_width; Rect cell_rect(horizontal_padding() + x_offset, y, column_width, item_height()); - auto data = m_model->data(row_index, column_index); + auto data = m_model->data({ row_index, column_index }); if (data.is_bitmap()) painter.blit(cell_rect.location(), data.as_bitmap(), data.as_bitmap().rect()); else