From 646aead629eb9005c6c86484774022aef84fea2b Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Wed, 10 Feb 2021 22:23:16 +0100 Subject: [PATCH] desktop: disable animation when selecting multiple dives Selecting many dives when the animation was active was increadibly slow, so disable it. Signed-off-by: Berthold Stoeger --- CHANGELOG.md | 1 + desktop-widgets/divelistview.cpp | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8091cf863..430e62a62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ +- desktop: make selection of multiple dives reasonable fast - mobile: add GF fields to adjust Buhlmann algorithm parameters for calculated ceiling - undo: save to git after editing weights [#3159] - undo: reset dive-mode on undo of set-point addition diff --git a/desktop-widgets/divelistview.cpp b/desktop-widgets/divelistview.cpp index c08998e5f..94acfc8d2 100644 --- a/desktop-widgets/divelistview.cpp +++ b/desktop-widgets/divelistview.cpp @@ -248,11 +248,16 @@ void DiveListView::diveSelectionChanged(const QVector &indices) if (std::find(affectedTrips.begin(), affectedTrips.end(), row) == affectedTrips.end()) affectedTrips.push_back(row); } + // Disable animations when expanding trips. Otherwise, selection of + // a large number of dives becomes increadibly slow. + bool oldAnimated = isAnimated(); + setAnimated(false); MultiFilterSortModel *m = MultiFilterSortModel::instance(); for (int row: affectedTrips) { QModelIndex idx = m->index(row, 0); expand(idx); } + setAnimated(oldAnimated); selectionChangeDone(); programmaticalSelectionChange = false;