From 219206725bcd962730e7ab7352a39eac28b4c3de Mon Sep 17 00:00:00 2001 From: Karol Kosek Date: Wed, 18 Aug 2021 19:11:52 +0200 Subject: [PATCH] LibGUI: Always resize the mapping rows when sorting Prior this change, creating a file or directory on Desktop crashed the desktop instance of FileManager. Closes: #9560 --- Userland/Libraries/LibGUI/SortingProxyModel.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Userland/Libraries/LibGUI/SortingProxyModel.cpp b/Userland/Libraries/LibGUI/SortingProxyModel.cpp index 40174b45c0..5415ab0fed 100644 --- a/Userland/Libraries/LibGUI/SortingProxyModel.cpp +++ b/Userland/Libraries/LibGUI/SortingProxyModel.cpp @@ -163,8 +163,11 @@ ModelIndex SortingProxyModel::parent_index(const ModelIndex& proxy_index) const void SortingProxyModel::sort_mapping(Mapping& mapping, int column, SortOrder sort_order) { + int row_count = source().row_count(mapping.source_parent); + mapping.source_rows.resize(row_count); + mapping.proxy_rows.resize(row_count); + if (column == -1) { - int row_count = source().row_count(mapping.source_parent); for (int i = 0; i < row_count; ++i) { mapping.source_rows[i] = i; mapping.proxy_rows[i] = i; @@ -174,10 +177,6 @@ void SortingProxyModel::sort_mapping(Mapping& mapping, int column, SortOrder sor auto old_source_rows = mapping.source_rows; - int row_count = source().row_count(mapping.source_parent); - mapping.source_rows.resize(row_count); - mapping.proxy_rows.resize(row_count); - for (int i = 0; i < row_count; ++i) mapping.source_rows[i] = i;