diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2020-06-22 14:05:46 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-09-29 16:13:03 -0700 |
commit | 38b686687faed3f8f60828105a2036d5f4e48db6 (patch) | |
tree | 5bbaa2f97566bb01a77a38906304470f62d9ae94 | |
parent | 68fffc267212470f6d5eb218744b29a851f61cc2 (diff) | |
download | subsurface-38b686687faed3f8f60828105a2036d5f4e48db6.tar.gz |
cleanup: move shown-text calculation from filter widget to core
The filter widget was caching whether the filter was active and
used that flag to calculate the "# dives shown" string. Move this
directly to the DiveFilter class to remove interdependencies and
to unify with mobile.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r-- | core/divefilter.cpp | 9 | ||||
-rw-r--r-- | core/divefilter.h | 1 | ||||
-rw-r--r-- | desktop-widgets/filterwidget2.cpp | 12 | ||||
-rw-r--r-- | desktop-widgets/filterwidget2.h | 2 | ||||
-rw-r--r-- | desktop-widgets/mainwindow.cpp | 2 |
5 files changed, 12 insertions, 14 deletions
diff --git a/core/divefilter.cpp b/core/divefilter.cpp index 5765ed673..9f54f5cca 100644 --- a/core/divefilter.cpp +++ b/core/divefilter.cpp @@ -2,6 +2,7 @@ #include "divefilter.h" #include "divelist.h" // for filter_dive +#include "gettextfromc.h" #include "qthelper.h" #include "subsurface-qt/divelistnotifier.h" #ifndef SUBSURFACE_MOBILE @@ -151,6 +152,14 @@ bool DiveFilter::diveSiteMode() const } #endif +QString DiveFilter::shownText() const +{ + if (diveSiteMode() || filterData.validFilter()) + return gettextFromC::tr("%L1/%L2 shown").arg(shown_dives).arg(dive_table.nr); + else + return gettextFromC::tr("%L1 dives").arg(dive_table.nr); +} + void DiveFilter::setFilter(const FilterData &data) { filterData = data; diff --git a/core/divefilter.h b/core/divefilter.h index a0c9b5d2f..3ebb049ef 100644 --- a/core/divefilter.h +++ b/core/divefilter.h @@ -38,6 +38,7 @@ class DiveFilter { public: static DiveFilter *instance(); + QString shownText() const; bool diveSiteMode() const; // returns true if we're filtering on dive site (on mobile always returns false) #ifndef SUBSURFACE_MOBILE const QVector<dive_site *> &filteredDiveSites() const; diff --git a/desktop-widgets/filterwidget2.cpp b/desktop-widgets/filterwidget2.cpp index c51bef29a..26cb05c2a 100644 --- a/desktop-widgets/filterwidget2.cpp +++ b/desktop-widgets/filterwidget2.cpp @@ -10,8 +10,7 @@ FilterWidget2::FilterWidget2(QWidget* parent) : QWidget(parent), - ignoreSignal(false), - validFilter(false) + ignoreSignal(false) { ui.setupUi(this); @@ -194,7 +193,6 @@ void FilterWidget2::updateFilter() return; FilterData filterData = createFilterData(); - validFilter = filterData.validFilter(); DiveFilter::instance()->setFilter(filterData); } @@ -227,11 +225,3 @@ void FilterWidget2::addConstraint(filter_constraint_type type) { constraintModel.addConstraint(type); } - -QString FilterWidget2::shownText() -{ - if (validFilter) - return tr("%L1/%L2 shown").arg(shown_dives).arg(dive_table.nr); - else - return tr("%L1 dives").arg(dive_table.nr); -} diff --git a/desktop-widgets/filterwidget2.h b/desktop-widgets/filterwidget2.h index a727c964c..3de16872e 100644 --- a/desktop-widgets/filterwidget2.h +++ b/desktop-widgets/filterwidget2.h @@ -20,7 +20,6 @@ class FilterWidget2 : public QWidget { public: explicit FilterWidget2(QWidget *parent = 0); ~FilterWidget2(); - QString shownText(); protected: void hideEvent(QHideEvent *event) override; @@ -43,7 +42,6 @@ private: bool ignoreSignal; Ui::FilterWidget2 ui; FilterConstraintModel constraintModel; - bool validFilter; void addConstraint(filter_constraint_type type); std::vector<std::unique_ptr<FilterConstraintWidget>> constraintWidgets; FilterData createFilterData() const; diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp index d4bbc1384..1683a4122 100644 --- a/desktop-widgets/mainwindow.cpp +++ b/desktop-widgets/mainwindow.cpp @@ -1536,7 +1536,7 @@ void MainWindow::setTitle() } QString unsaved = (unsavedChanges() ? " *" : ""); - QString shown = QString(" (%1)").arg(filterWidget2.shownText()); + QString shown = QString(" (%1)").arg(DiveFilter::instance()->shownText()); setWindowTitle("Subsurface: " + displayedFilename(existing_filename) + unsaved + shown); } |