From 823d5d097bf369c86b5fa99bca20139e22aa6eda Mon Sep 17 00:00:00 2001 From: Ignas S Date: Mon, 12 Aug 2019 10:58:53 +0300 Subject: [PATCH] GTableView: add 'sortable' column header flag. This prevents sorting unsortable by unsortable things, like icons. --- Libraries/LibGUI/GModel.h | 1 + Libraries/LibGUI/GTableView.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Libraries/LibGUI/GModel.h b/Libraries/LibGUI/GModel.h index fb634930e6..59f0028021 100644 --- a/Libraries/LibGUI/GModel.h +++ b/Libraries/LibGUI/GModel.h @@ -44,6 +44,7 @@ public: struct ColumnMetadata { int preferred_width { 0 }; TextAlignment text_alignment { TextAlignment::CenterLeft }; + bool sortable { true }; const Font* font { nullptr }; }; diff --git a/Libraries/LibGUI/GTableView.cpp b/Libraries/LibGUI/GTableView.cpp index 102b2fec01..1800733143 100644 --- a/Libraries/LibGUI/GTableView.cpp +++ b/Libraries/LibGUI/GTableView.cpp @@ -158,7 +158,8 @@ void GTableView::mousedown_event(GMouseEvent& event) return; } auto header_rect = this->header_rect(i); - if (header_rect.contains(event.position())) { + auto column_metadata = model()->column_metadata(i); + if (header_rect.contains(event.position()) && column_metadata.sortable) { auto new_sort_order = GSortOrder::Ascending; if (model()->key_column() == i) new_sort_order = model()->sort_order() == GSortOrder::Ascending