aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-06-22 14:05:46 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-09-29 16:13:03 -0700
commit38b686687faed3f8f60828105a2036d5f4e48db6 (patch)
tree5bbaa2f97566bb01a77a38906304470f62d9ae94
parent68fffc267212470f6d5eb218744b29a851f61cc2 (diff)
downloadsubsurface-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.cpp9
-rw-r--r--core/divefilter.h1
-rw-r--r--desktop-widgets/filterwidget2.cpp12
-rw-r--r--desktop-widgets/filterwidget2.h2
-rw-r--r--desktop-widgets/mainwindow.cpp2
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);
}