diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/qthelper.cpp | 17 | ||||
-rw-r--r-- | core/qthelper.h | 1 |
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 |