subsurface/core
Berthold Stoeger 634152ae43 filter: add filter constraint object to the core
Adds a filter constraint object to the core, which represents one
constraint the user can filter dives with. The plan is to write these
constraints to the XML and git logs. Therefore, this code is written
in C-style except when it comes to handling strings and dates, which
is just too painful in plain C.

There is one pointer to QStringList in the class, though when compiled
with C, this is simply transformed into a pointer to void. Granted,
that smells of an ugly hack. However it's more pragmatic than
self-flaggelation with C string and list handling.

A filter constraint is supposed to be a very general thing, which can
filter for strings, multiple-choice lists, numerical ranges and date
ranges.

Range constraints have a range mode: less-or-equal, greater-or-equal
or in-range. Text constraints have a string mode: startswith, substring
or exact.

All the data are accessed via setter and getter functions for
at least basic levels of isolation, despite being written with
a C-interface in mind.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-09-29 16:13:03 -07:00
..
settings desktop: remove user survey 2020-04-19 14:27:54 -07:00
subsurface-qt cleanup: remove obsolete logic in getFormattedCylinder() 2020-08-21 08:40:56 -07:00
android.cpp build-system/android: remove libusb at QTest 2020-04-25 13:18:41 -07:00
applicationstate.cpp Turn application state into enum 2019-05-12 12:33:55 -07:00
applicationstate.h Turn application state into enum 2019-05-12 12:33:55 -07:00
btdiscovery.cpp core/bluetooth: stop discovery once the dive computer has been found 2020-08-22 19:35:58 -07:00
btdiscovery.h core/bluetooth: stop discovery once the dive computer has been found 2020-08-22 19:35:58 -07:00
checkcloudconnection.cpp Cloud storage: remove outdated certificate hack 2019-10-09 22:38:29 +03:00
checkcloudconnection.h get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
cloudstorage.cpp core: correct cloudstorage.cpp to use static qPrefCloudStorage functions. 2019-12-05 11:48:26 -08:00
cloudstorage.h get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
CMakeLists.txt filter: add filter constraint object to the core 2020-09-29 16:13:03 -07:00
cochran.c Fix incorrect Farenheit to Kelvin formula. 2020-05-22 19:19:58 +02:00
cochran.h Cochran import: better support for older models 2017-05-31 21:53:00 -07:00
color.cpp Cleanup: silence clang missing braces warning in core/color.cpp 2018-09-01 11:31:18 -07:00
color.h Indicate negative cylider pressure 2019-08-08 08:56:44 -07:00
compressibility.r
configuredivecomputer.cpp Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
configuredivecomputer.h Fix broken windows build with latest MXE 2019-08-29 12:55:25 -07:00
configuredivecomputerthreads.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
configuredivecomputerthreads.h
connectionlistmodel.cpp core/bt: ensure that BT/BLE addresses with name sort first 2020-05-15 04:05:06 +03:00
connectionlistmodel.h Mobile: reinstate roleNames function in ConnectionListModel 2019-04-16 23:43:14 +12:00
datatrak.c datatrak.c: return const string for tank type 2020-09-03 11:38:13 -07:00
datatrak.h Cleanup: const-ify functions taking dives and divecomputers 2018-08-23 14:41:01 -07:00
deco.c cleanup: move the inertgas enum from qthelper.hpp to deco.c 2020-05-06 00:22:31 +02:00
deco.h Parser: remove global state 2019-08-08 16:26:31 -07:00
device.cpp cleanup: fold core/divecomputer.cpp into core/device.c 2020-09-13 13:54:59 -07:00
device.h cleanup: fold core/divecomputer.cpp into core/device.c 2020-09-13 13:54:59 -07:00
devicedetails.cpp
devicedetails.h
display.h cleanup: make enumerate_devices of external linkage 2020-05-01 08:53:45 -07:00
dive.c Use correct pO2 when computing MOD in equipment tab 2020-09-29 15:46:55 -07:00
dive.h cleanup: move set_dc_nickname() declaration from dive.h to device.h 2020-09-13 13:54:59 -07:00
divefilter.cpp filter: properly search for tags 2020-05-16 12:40:08 -07:00
divefilter.h filter: add a week to maximum default date time 2020-04-24 10:05:27 -07:00
divelist.c core: fix dive renumbering logic on import 2020-08-17 13:21:49 -07:00
divelist.h cleanup: remove unused function append_dive() 2020-05-02 14:52:51 +02:00
divelogexportlogic.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
divelogexportlogic.h avoid duplicate and inconsistent applying of QDir::separator() 2019-03-27 07:36:33 -07:00
divemode.h Cleanup: move planner/deco related declarations planner/deco.h 2019-08-08 16:26:31 -07:00
divesite-helper.cpp Dive site: use own copy of taxonomy in dive-site-edit widget 2018-10-13 21:41:41 -04:00
divesite.c mobile/edit: don't add dive site twice to table 2020-03-17 14:05:24 -07:00
divesite.h cleanup: move dive_table from dive.h to divelist.h 2020-05-01 09:42:31 -07:00
divesitehelpers.cpp cleanup: use taxonomy_get_value() instead of taxonomy_get_index() 2020-09-06 12:59:54 -07:00
divesitehelpers.h [Bug #2934] Geo Lookup - support for remote dive sites 2020-09-05 17:34:15 +02:00
downloadfromdcthread.cpp core/bt: match DC descriptor in lower case 2020-05-15 02:49:46 +03:00
downloadfromdcthread.h android/usb: better memory management 2020-03-16 07:58:20 -07:00
equipment.c desktop: refine auto-fill of weights 2020-09-12 10:36:36 -07:00
equipment.h desktop: refine auto-fill of weights 2020-09-12 10:36:36 -07:00
errorhelper.c Don't expose 'detach_buffer()' to membuffer users 2019-10-27 12:42:54 -07:00
errorhelper.h Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
exif.cpp cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
exif.h
file.c Implement Seac SeacSync databaser parser. 2020-09-04 15:54:08 +03:00
file.h DataTrak import: Add support for WLog extensions. 2020-09-03 11:38:13 -07:00
filterconstraint.cpp filter: add filter constraint object to the core 2020-09-29 16:13:03 -07:00
filterconstraint.h filter: add filter constraint object to the core 2020-09-29 16:13:03 -07:00
format.cpp Cleanup: Slightly shorten code in vqasprintf_loc() 2018-04-09 11:29:43 -07:00
format.h Cleanup: Move *_loc formatting functions into new format.cpp file 2018-04-09 11:29:43 -07:00
fulltext.cpp fulltext: remember original query 2020-09-29 16:13:03 -07:00
fulltext.h fulltext: remember original query 2020-09-29 16:13:03 -07:00
gas-model.c Cleanup: replace macro by inline function in gas-model.c 2019-08-08 15:22:09 -07:00
gas.c Cleanup: move gas-functions to own translation unit 2019-06-19 13:11:10 -07:00
gas.h Cleanup: move gas-functions to own translation unit 2019-06-19 13:11:10 -07:00
gaspressures.c Cylinders: access cylinders with get_cylinder() 2019-11-09 19:19:04 +01:00
gaspressures.h Cleanup: Make gaspressures.h a regular include file 2019-06-19 13:11:10 -07:00
gettext.h
gettextfromc.cpp Localization: make cache thread safe and robust against use-after-free 2018-06-24 20:31:14 +02:00
gettextfromc.h Localization: remove gettextFromC::instance() 2018-06-24 20:31:14 +02:00
git-access.c cleanup: silence two compiler warnings in git-access.c 2020-09-22 14:10:12 -07:00
git-access.h git-storage: add global flag to indicate successful cloud sync 2020-06-14 13:35:33 -07:00
gpslocation.cpp gps: remove unused member function 2020-09-29 16:25:44 +02:00
gpslocation.h gps: remove unused member function 2020-09-29 16:25:44 +02:00
imagedownloader.cpp code cleanup: consistently initialize zero duration_t 2020-01-10 02:37:03 +09:00
imagedownloader.h Profile: add "synchronous" mode for picture plotting 2019-02-07 16:06:43 +01:00
import-cobalt.c Cleanup: return cylinder from cylinder_start() in parser 2019-11-09 19:19:04 +01:00
import-csv.c Print correct template name on CSV export 2020-05-26 11:33:10 -07:00
import-csv.h Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
import-divinglog.c Cylinders: access cylinders with get_cylinder() 2019-11-09 19:19:04 +01:00
import-seac.c Implement Seac SeacSync databaser parser. 2020-09-04 15:54:08 +03:00
import-shearwater.c Update Shearwater sample time calculation 2020-09-19 11:20:27 -07:00
import-suunto.c Cleanup: return cylinder from cylinder_start() in parser 2019-11-09 19:19:04 +01:00
ios.cpp cloud-storage: simplify creation of git authorship 2020-04-09 17:05:44 -07:00
libdivecomputer.c Prefer "GPS1" for divecomputer download dive site resolution 2020-09-29 14:35:57 -07:00
libdivecomputer.h android/usb: pass in the UsbDevice when downloading 2020-03-16 07:58:20 -07:00
liquivision.c cleanup: move dive_table from dive.h to divelist.h 2020-05-01 09:42:31 -07:00
load-git.c cleanup: use taxonomy_set_category() function 2020-09-06 12:59:54 -07:00
macos.c cloud-storage: simplify creation of git authorship 2020-04-09 17:05:44 -07:00
membuffer.c cleanup: move FRACTION macro from dive.h to units.h 2020-05-01 09:42:31 -07:00
membuffer.h Don't expose 'detach_buffer()' to membuffer users 2019-10-27 12:42:54 -07:00
metadata.cpp media: read timestamp from mvhd header of MP4/QuickTime videos 2020-09-19 11:11:16 -07:00
metadata.h Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
metrics.cpp
metrics.h
ostctools.c cleanup: move dive_table from dive.h to divelist.h 2020-05-01 09:42:31 -07:00
parse-gpx.cpp cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
parse-gpx.h cleanup: only include QString in desktop-widgets/importgps.h 2020-05-01 09:42:31 -07:00
parse-xml.c cleanup: use taxonomy_set_category() function 2020-09-06 12:59:54 -07:00
parse.c cleanup: use taxonomy_set_category() function 2020-09-06 12:59:54 -07:00
parse.h cleanup: use taxonomy_set_category() function 2020-09-06 12:59:54 -07:00
picture.c core: move picture-related function from dive.c to picture.c 2020-05-06 13:58:09 -07:00
picture.h core: move picture-related function from dive.c to picture.c 2020-05-06 13:58:09 -07:00
pictureobj.cpp media: add small C++ helper describing a picture struct 2020-05-06 13:58:09 -07:00
pictureobj.h media: add small C++ helper describing a picture struct 2020-05-06 13:58:09 -07:00
planner.c Bailout segment is part of bottom time 2020-09-21 11:42:02 -07:00
planner.h cleanup: move DECOTIMESTEP from dive.h to planner.h 2020-05-01 09:42:31 -07:00
plannernotes.c Cylinders: access cylinders with get_cylinder() 2019-11-09 19:19:04 +01:00
pref.h mobile: remove filter settings 2020-03-01 10:21:44 -08:00
profile.c cleanup: make analyze_plot_info local to profile.c 2020-05-01 08:53:45 -07:00
profile.h profile: fix displaying of profiles with multiple pressure sensors 2020-07-02 09:27:50 -07:00
qt-ble.cpp Extend BLE uuid matching to the characteristics, add ignore-list 2020-09-17 07:54:35 -07:00
qt-ble.h Update to new libdivecomputer version 2020-01-27 09:51:31 -08:00
qt-gui.h core,tests: change qml register function 2018-09-11 17:22:58 -07:00
qt-init.cpp translations: use the right Qt translations (part 2) 2020-09-15 11:54:36 -07:00
qthelper.cpp translations: initialize water type strings at run time 2020-09-21 13:42:00 -07:00
qthelper.h translations: initialize water type strings at run time 2020-09-21 13:42:00 -07:00
qtserialbluetooth.cpp core: fix compile issue with older g++ 2020-06-18 09:05:13 -07:00
save-git.c media: use table instead of linked list for media 2020-05-06 13:58:09 -07:00
save-html.c cleanup: make local functions of static linkage 2020-05-29 09:20:17 -07:00
save-html.h Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
save-profiledata.c Fix CSV for profile export 2020-04-18 13:41:29 +02:00
save-profiledata.h Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
save-xml.c Save SAC, OTU and CNS in the XML export 2020-05-14 13:27:07 -07:00
selection.cpp selection: when changing current dive make sure it is selected 2020-09-20 18:23:57 -07:00
selection.h selection: create global single_selected_trip() function 2020-05-03 15:02:21 -07:00
serial_ftdi.c core: fix libdivecomputer dc_custom callbacks structures 2020-06-18 09:05:13 -07:00
serial_usb_android.cpp android/usb: remove "autoselect driver" option for unknown VID/PIDs 2020-03-16 07:58:20 -07:00
serial_usb_android.h android/usb: pass in the UsbDevice when downloading 2020-03-16 07:58:20 -07:00
sha1.c
sha1.h
ssrf.h core: remove LOG_STP from mobile 2019-12-13 07:04:00 -05:00
statistics.c cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
statistics.h Core: dynamically allocate the result of get_gas_used() 2019-11-09 19:19:04 +01:00
strndup.h
strtod.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
structured_list.h media: use table instead of linked list for media 2020-05-06 13:58:09 -07:00
subsurface-string.h Core: don't inline rarely used function 2018-05-14 10:13:39 -07:00
subsurface-time.h core: add functions to core/time.c 2020-09-29 16:13:03 -07:00
subsurfacestartup.c desktop: remove user survey 2020-04-19 14:27:54 -07:00
subsurfacestartup.h Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
subsurfacesysinfo.cpp drop support for Qt 5.4 and before 2019-03-27 07:36:33 -07:00
subsurfacesysinfo.h drop support for Qt 5.4 and before 2019-03-27 07:36:33 -07:00
table.h media: create sort_picture_table function via macro 2020-05-06 13:58:09 -07:00
tag.c Don't expose 'detach_buffer()' to membuffer users 2019-10-27 12:42:54 -07:00
tag.h Cleanup: move tag functions into own translation unit 2019-06-19 13:11:10 -07:00
taxonomy.c cleanup: make taxonomy_index_for_category() local to taxonomy.c 2020-09-06 12:59:54 -07:00
taxonomy.h cleanup: make taxonomy_index_for_category() local to taxonomy.c 2020-09-06 12:59:54 -07:00
time.c core: add functions to core/time.c 2020-09-29 16:13:03 -07:00
timer.c Add timestamps to libdivecomputer.log 2020-03-10 17:42:54 -07:00
timer.h Add timestamps to libdivecomputer.log 2020-03-10 17:42:54 -07:00
trip.c cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
trip.h selection: add selection flag for trips 2020-05-03 15:02:21 -07:00
uemis-downloader.c cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
uemis.c Core: remove MAX_CYLINDERS restriction 2019-11-09 19:19:04 +01:00
uemis.h Dive site: use pointer instead of uuid in uemis_helper 2018-10-29 00:09:31 +00:00
units.c Fix broken windows build with latest MXE 2019-08-29 12:55:25 -07:00
units.h Implement Seac SeacSync databaser parser. 2020-09-04 15:54:08 +03:00
unix.c cloud-storage: simplify creation of git authorship 2020-04-09 17:05:44 -07:00
uploadDiveLogsDE.cpp core: fix incorrect changes in divelogs.de export 2020-02-17 10:50:51 -08:00
uploadDiveLogsDE.h Cleanup: remove const bool parameters and return types 2020-02-09 12:13:18 -08:00
uploadDiveShare.cpp core: divehare avoid race problem. 2019-12-12 10:10:01 -05:00
uploadDiveShare.h core: divehare change slot names 2019-12-12 10:10:01 -05:00
version.c
version.h
videoframeextractor.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
videoframeextractor.h Dive media: Extract thumbnails from videos with ffmpeg 2018-07-28 15:31:25 -07:00
webservice.h
windows.c cloud-storage: simplify creation of git authorship 2020-04-09 17:05:44 -07:00
windowtitleupdate.cpp Cleanup: Make WindowsTitleUpdate a global object 2018-07-30 13:55:23 -07:00
windowtitleupdate.h Cleanup: Make WindowsTitleUpdate a global object 2018-07-30 13:55:23 -07:00
worldmap-options.h
worldmap-save.c cleanup: move dive_table from dive.h to divelist.h 2020-05-01 09:42:31 -07:00
worldmap-save.h Cleanup: remove const bool parameters and return types 2020-02-09 12:13:18 -08:00
xmp_parser.cpp cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
xmp_parser.h Metadata: rudimentary support for XMP metadataa in MP4-based videos 2018-09-25 14:59:14 -07:00