From e97c2db82103811cf27d72bceddd378c0f9f46f2 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sat, 23 Nov 2024 15:35:35 +0100 Subject: [PATCH] fix: Workaround to select all rows --- src/gui/views/viewbase.h | 3 +++ src/gui/views/viewbasenontemplate.cpp | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/gui/views/viewbase.h b/src/gui/views/viewbase.h index e57084f18..c90ec094a 100644 --- a/src/gui/views/viewbase.h +++ b/src/gui/views/viewbase.h @@ -519,6 +519,9 @@ namespace swift::gui //! Settings have been changed void settingsChanged(); + //! Select all rows + void selectAll() override; + //! @{ //! Change selection modes void setMultiSelection(); diff --git a/src/gui/views/viewbasenontemplate.cpp b/src/gui/views/viewbasenontemplate.cpp index 84bf205a9..f53c0a2f8 100644 --- a/src/gui/views/viewbasenontemplate.cpp +++ b/src/gui/views/viewbasenontemplate.cpp @@ -877,6 +877,18 @@ namespace swift::gui::views m_displayAutomatically = a->isChecked(); } + void CViewBaseNonTemplate::selectAll() + { + // FIXME: Workaround to implement the logic on our own because the default selectAll() implementation does not + // seem to work + this->clearSelection(); + QItemSelection selectedItems; + const int columns = this->model()->columnCount() - 1; + const int rows = this->model()->rowCount() - 1; + selectedItems.select(this->model()->index(0, 0), this->model()->index(rows, columns)); + this->selectionModel()->select(selectedItems, QItemSelectionModel::Select); + } + void CViewBaseNonTemplate::setSingleSelection() { this->setSelectionMode(SingleSelection); } void CViewBaseNonTemplate::setExtendedSelection()