summaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-02-19 16:31:21 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-02-19 12:02:15 -0800
commite550a788f01275b04c95e8a8eb9f390b1d5ffe7b (patch)
treeba34e845631e33663fed845f7d193bf403eb2fb8 /desktop-widgets
parentce669adc53656fec1a7d77ee6ff8d82489bebbd7 (diff)
downloadsubsurface-e550a788f01275b04c95e8a8eb9f390b1d5ffe7b.tar.gz
Filter: implement any-of mode
Add an additional mode to the tags, people and location filters: any_of. Replace the original invert-bool by an enum. Move the common code into a distinct function. Reported-by: Willem Ferguson <willemferguson@zoology.up.ac.za> Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/filterwidget2.cpp16
-rw-r--r--desktop-widgets/filterwidget2.ui24
2 files changed, 30 insertions, 10 deletions
diff --git a/desktop-widgets/filterwidget2.cpp b/desktop-widgets/filterwidget2.cpp
index 85c977b4e..77cefa5a8 100644
--- a/desktop-widgets/filterwidget2.cpp
+++ b/desktop-widgets/filterwidget2.cpp
@@ -140,10 +140,10 @@ void FilterWidget2::clearFilter()
ui.fromTime->setTime(filterData.fromTime);
ui.toDate->setDate(filterData.toDate.date());
ui.toTime->setTime(filterData.toTime);
- ui.tagsMode->setCurrentIndex(filterData.tagsNegate ? 1 : 0);
- ui.peopleMode->setCurrentIndex(filterData.peopleNegate ? 1 : 0);
- ui.locationMode->setCurrentIndex(filterData.locationNegate ? 1 : 0);
- ui.equipmentMode->setCurrentIndex(filterData.equipmentNegate ? 1 : 0);
+ ui.tagsMode->setCurrentIndex((int)filterData.tagsMode);
+ ui.peopleMode->setCurrentIndex((int)filterData.peopleMode);
+ ui.locationMode->setCurrentIndex((int)filterData.locationMode);
+ ui.equipmentMode->setCurrentIndex((int)filterData.equipmentMode);
ignoreSignal = false;
@@ -186,10 +186,10 @@ void FilterWidget2::updateFilter()
filterData.people = ui.people->text().split(",", QString::SkipEmptyParts);
filterData.location = ui.location->text().split(",", QString::SkipEmptyParts);
filterData.equipment = ui.equipment->text().split(",", QString::SkipEmptyParts);
- filterData.tagsNegate = ui.tagsMode->currentIndex() == 1;
- filterData.peopleNegate = ui.peopleMode->currentIndex() == 1;
- filterData.locationNegate = ui.locationMode->currentIndex() == 1;
- filterData.equipmentNegate = ui.equipmentMode->currentIndex() == 1;
+ filterData.tagsMode = (FilterData::Mode)ui.tagsMode->currentIndex();
+ filterData.peopleMode = (FilterData::Mode)ui.peopleMode->currentIndex();
+ filterData.locationMode = (FilterData::Mode)ui.locationMode->currentIndex();
+ filterData.equipmentMode = (FilterData::Mode)ui.equipmentMode->currentIndex();
filterData.logged = ui.logged->isChecked();
filterData.planned = ui.planned->isChecked();
diff --git a/desktop-widgets/filterwidget2.ui b/desktop-widgets/filterwidget2.ui
index 0b95f7bae..92b61ba80 100644
--- a/desktop-widgets/filterwidget2.ui
+++ b/desktop-widgets/filterwidget2.ui
@@ -300,6 +300,11 @@
</item>
<item>
<property name="text">
+ <string>Any of</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
<string>None of</string>
</property>
</item>
@@ -314,6 +319,11 @@
</item>
<item>
<property name="text">
+ <string>Any of</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
<string>None of</string>
</property>
</item>
@@ -323,12 +333,17 @@
<widget class="QComboBox" name="locationMode">
<item>
<property name="text">
- <string>Matches</string>
+ <string>All of</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Any of</string>
</property>
</item>
<item>
<property name="text">
- <string>Doesn't match</string>
+ <string>None of</string>
</property>
</item>
</widget>
@@ -342,6 +357,11 @@
</item>
<item>
<property name="text">
+ <string>Any of</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
<string>None of</string>
</property>
</item>