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()