summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/divefilter.cpp6
-rw-r--r--core/divefilter.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/core/divefilter.cpp b/core/divefilter.cpp
index 4c40869f5..cdf74a49f 100644
--- a/core/divefilter.cpp
+++ b/core/divefilter.cpp
@@ -101,6 +101,12 @@ DiveFilter::DiveFilter() : diveSiteRefCount(0)
{
}
+void DiveFilter::diveRemoved(const dive *d) const
+{
+ if (!d->hidden_by_filter)
+ --shown_dives;
+}
+
bool DiveFilter::showDive(const struct dive *d) const
{
if (d->invalid && !prefs.display_invalid_dives)
diff --git a/core/divefilter.h b/core/divefilter.h
index 608cf4843..84c9efee2 100644
--- a/core/divefilter.h
+++ b/core/divefilter.h
@@ -51,6 +51,7 @@ public:
void setFilter(const FilterData &data);
ShownChange update(const QVector<dive *> &dives) const; // Update filter status of given dives and return dives whose status changed
ShownChange updateAll() const; // Update filter status of all dives and return dives whose status changed
+ void diveRemoved(const dive *dive) const; // Dive was removed; update count accordingly
private:
DiveFilter();
bool showDive(const struct dive *d) const; // Should that dive be shown?