summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/qthelper.cpp17
-rw-r--r--core/qthelper.h1
2 files changed, 18 insertions, 0 deletions
diff --git a/core/qthelper.cpp b/core/qthelper.cpp
index cd9fc7b90..8082db742 100644
--- a/core/qthelper.cpp
+++ b/core/qthelper.cpp
@@ -1403,6 +1403,23 @@ QString getUUID()
return uuidString;
}
+static bool contains(const char *s, const QString &filterstring, Qt::CaseSensitivity cs)
+{
+ return !empty_string(s) && QString(s).contains(filterstring, cs);
+}
+
+bool diveContainsText(const struct dive *d, const QString &filterstring, Qt::CaseSensitivity cs, bool includeNotes)
+{
+ if (!d)
+ return false;
+ return contains(get_dive_location(d), filterstring, cs) ||
+ (d->divetrip && contains(d->divetrip->location, filterstring, cs)) ||
+ contains(d->buddy, filterstring, cs) ||
+ contains(d->divemaster, filterstring, cs) ||
+ contains(d->suit, filterstring, cs) ||
+ get_taglist_string(d->tag_list).contains(filterstring, cs) ||
+ (includeNotes && contains(d->notes, filterstring, cs));
+}
int parse_seabear_header(const char *filename, char **params, int pnr)
{
QFile f(filename);
diff --git a/core/qthelper.h b/core/qthelper.h
index 74185b467..1322cc9b9 100644
--- a/core/qthelper.h
+++ b/core/qthelper.h
@@ -79,6 +79,7 @@ QLocale getLocale();
QVector<QPair<QString, int>> selectedDivesGasUsed();
QString getUserAgent();
QString printGPSCoords(const location_t *loc);
+bool diveContainsText(const struct dive *d, const QString &filterstring, Qt::CaseSensitivity cs, bool includeNotes);
#if defined __APPLE__
#define TITLE_OR_TEXT(_t, _m) "", _t + "\n" + _m