subsurface/core
Berthold Stoeger 6618c9ebfc Dive pictures: save thumbnails to individual files
The old code loaded all thumbnails into memory at once. This does
not scale to logs with thousands of pictures. Therefore, save
the pictures to individual files and only load the currently
needed pictures.

Currently, this will make changing switching between dives slower,
because the thumbnails are loaded from disk. In the future, it
is planned to do this in a background thread without blocking
the user interface.

A notable difference to the old code: Thumbnails are now indexed
by the image-hash (i.e. the content of the raw image) and not
by the filename of the image. Thus, different paths to the same
image should only be saved once.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-05-13 13:52:35 -07:00
..
subsurface-qt Plot OC-pO2 graph for SCR dives 2018-04-28 20:11:22 +03:00
android.cpp Cleanup: introduce copy_qstring() function 2018-03-14 13:55:36 +02:00
btdiscovery.cpp BLE: add EON Core and Mares Bluelink to detection 2018-05-11 22:18:19 -07:00
btdiscovery.h Cleanup: Use QString as parameter for [get|save]BtDeviceInfo() 2018-02-26 08:52:34 +01:00
checkcloudconnection.cpp Allocate CheckCloudConnection object on stack 2017-12-06 02:23:47 +01:00
checkcloudconnection.h Remove self-include of core/checkcloudconnection.h 2017-12-06 02:23:47 +01:00
cloudstorage.cpp Cleanup: remove outdated TODO item 2018-02-12 11:11:34 -08:00
cloudstorage.h Remove bogus member that hides global variable 2017-10-26 20:44:02 +02:00
CMakeLists.txt Cleanup: Move *_loc formatting functions into new format.cpp file 2018-04-09 11:29:43 -07:00
cochran.c Start cleaning up sensor indexing for multiple sensors 2017-07-21 16:33:19 -07:00
cochran.h Cochran import: better support for older models 2017-05-31 21:53:00 -07:00
color.cpp Fix CCR setpoint display bug 2018-05-07 13:56:23 +02:00
color.h Plot OC-pO2 graph for SCR dives 2018-04-28 20:11:22 +03:00
compressibility.r Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
configuredivecomputer.cpp Actually tie in the new libdivecomputer IO model to open the dive computer device 2018-04-24 17:54:08 -07:00
configuredivecomputer.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
configuredivecomputerthreads.cpp Configure ostc3: Remove obsoleted setting 2018-04-27 21:33:47 +03:00
configuredivecomputerthreads.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
connectionlistmodel.cpp Do not add double ConnectionList items 2018-01-24 16:19:09 +01:00
connectionlistmodel.h Add function to clear connectionModel data 2017-10-12 09:32:12 +02:00
datatrak.c Cleanup: avoid memory leak 2017-12-27 17:14:43 -08:00
datatrak.h Datatrak import rework: Add another memory size ckeck 2017-05-07 07:48:12 -07:00
deco.c Look for actual isobaric counter diffusion 2018-04-11 21:15:38 +02:00
deco.h Localize global planner state 2017-11-25 20:13:01 +01:00
device.c Planner: Unify final ascent rates in plan() and fake_dc() 2018-05-07 21:17:22 +03:00
device.h Planner: don't return static data in fake_dc() 2018-05-07 13:11:53 +03:00
devicedetails.cpp Implement OSTC4 specific settings 2017-05-04 10:50:15 -07:00
devicedetails.h Implement OSTC4 specific settings 2017-05-04 10:50:15 -07:00
display.h Display values in info box only if value is interesting 2017-11-13 20:50:10 -08:00
dive.c Planner: don't return static data in fake_dc() 2018-05-07 13:11:53 +03:00
dive.h Planner: don't return static data in fake_dc() 2018-05-07 13:11:53 +03:00
divecomputer.cpp Cleanup: consistently use qPrintable() 2018-03-14 13:55:36 +02:00
divecomputer.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
divelist.c Cleanup: Unify qthelper.h and qthelperfromc.h 2018-02-26 19:06:02 +02:00
divelist.h Unused code: remove trip_has_selected_dives() 2018-01-10 16:45:42 +01:00
divelogexportlogic.cpp Cleanup: consistently use qPrintable() 2018-03-14 13:55:36 +02:00
divelogexportlogic.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
divesite-helper.cpp Cleanup: rename file to avoid confusion 2017-12-08 16:29:49 +01:00
divesite.c Introduce helper function empty_string() 2018-01-11 06:07:13 +01:00
divesite.h Tags for geo references: Nicer look, translations and warning message 2017-10-17 06:12:07 -04:00
divesitehelpers.cpp Cleanup: introduce copy_qstring() function 2018-03-14 13:55:36 +02:00
divesitehelpers.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
downloadfromdcthread.cpp DC transport debugging messages 2018-05-12 21:09:14 -07:00
downloadfromdcthread.h QML UI: add supported dive computers to log file 2018-04-27 11:52:48 -07:00
equipment.c Unused code: remove weightsystems_equal() 2018-01-10 16:45:42 +01:00
errorhelper.c Make report_error() reentrant 2018-01-31 14:47:26 +01:00
exif.cpp Coding-style: remove superfluous parentheses 2018-02-17 19:38:52 -08:00
exif.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
file.c Cleanup: Unify qthelper.h and qthelperfromc.h 2018-02-26 19:06:02 +02:00
file.h Make a few functions of static linkage 2018-01-08 09:52:55 +02: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
gas-model.c Compute and display gas density 2017-05-26 15:52:04 -07:00
gaspressures.c Cleanup: durations are now signed 2017-12-17 10:25:01 -08:00
gaspressures.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
gettext.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
gettextfromc.cpp Remove superfluous QScopedPointer<>s in singletons 2017-12-24 11:04:10 -08:00
gettextfromc.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
git-access.c Cleanup: Unify qthelper.h and qthelperfromc.h 2018-02-26 19:06:02 +02:00
git-access.h Support non-https:// repositories for saving 2018-01-19 09:45:08 +02:00
gpslocation.cpp Qt: don't use member function that requires Qt 5.8 2018-04-15 14:46:56 -07:00
gpslocation.h GPS: add signal to show that a new fix has been acquired 2018-04-14 13:37:44 -07:00
helpers.h Use correct numeric format based on selected locale (Qt domain part) 2018-03-05 16:28:18 +01:00
imagedownloader.cpp Debug: Error reporting for SHashedImage loading 2018-04-01 15:59:46 +03:00
imagedownloader.h Coding style: remove superfluous semicolons 2018-04-19 15:08:12 +03:00
import-cobalt.c Move Cobalt DB import to its own file 2017-11-29 01:22:17 +01:00
import-csv.c Cleanup: Unify qthelper.h and qthelperfromc.h 2018-02-26 19:06:02 +02:00
import-csv.h Make a few functions of static linkage 2018-01-08 09:52:55 +02:00
import-divinglog.c Check different sensors on divinglog import 2017-12-27 20:45:24 +01:00
import-shearwater.c Move Shearwater DB import into its own file 2017-11-29 01:22:17 +01:00
import-suunto.c Temperature 0x7F appears to mean no reading 2018-04-07 11:33:09 -07:00
ios.cpp iOS: create our own OS support file 2018-04-13 17:07:43 -07:00
isocialnetworkintegration.cpp Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
isocialnetworkintegration.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
libdivecomputer.c Add Qt header so Q_OS_xxx macros work 2018-05-12 21:09:14 -07:00
libdivecomputer.h Create one function to determine the supported transports 2018-04-27 11:52:48 -07:00
linux.c Coding-style: remove superfluous parentheses 2018-02-17 19:38:52 -08:00
liquivision.c cleanup: initilize local variable 2018-01-10 16:45:42 +01:00
load-git.c Cleanup: Remove hash field from picture-structure 2018-03-05 18:04:57 +02:00
macos.c Coding-style: remove superfluous parentheses 2018-02-17 19:38:52 -08:00
membuffer.c Localization: Make Qt's locale-aware formatting accessible from C 2018-03-05 16:23:55 +01:00
membuffer.h Add usage documentation for membuffer helper functions 2018-04-10 08:18:32 -07:00
metadata.cpp Dive pictures: extract timestamp from MP4 and related formats 2018-04-01 16:04:48 +03:00
metadata.h Dive pictures: use get_metadata() in dive_create_picture() 2018-04-01 16:04:48 +03:00
metrics.cpp Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
metrics.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
ostctools.c cleanup: Unchecked return value from library 2017-12-29 09:14:20 -08:00
parse-xml.c Cleanup: Remove hash field from picture-structure 2018-03-05 18:04:57 +02:00
parse.c Coding-style: remove superfluous parentheses 2018-02-17 19:38:52 -08:00
parse.h Don't define cur_setting in header file 2018-01-05 00:29:20 +01:00
planner.c Planner: Unify final ascent rates in plan() and fake_dc() 2018-05-07 21:17:22 +03:00
planner.h Move planner notes to separate file 2017-05-26 15:44:36 -07:00
plannernotes.c Cleanup: Fix memory leak in plannernotes.c 2018-04-11 14:01:51 +03:00
pluginmanager.cpp Unused code: remove PluginManager::socialNetworkIntegrationPlugins() 2018-01-10 16:45:42 +01:00
pluginmanager.h Unused code: remove PluginManager::socialNetworkIntegrationPlugins() 2018-01-10 16:45:42 +01:00
pref.h Plot OC-pO2 graph for SCR dives 2018-04-28 20:11:22 +03:00
prefs-macros.h Cleanup: introduce copy_qstring() function 2018-03-14 13:55:36 +02:00
profile.c Plot OC-pO2 graph for SCR dives 2018-04-28 20:11:22 +03:00
profile.h Plot OC-pO2 graph for SCR dives 2018-04-28 20:11:22 +03:00
qt-ble.cpp Convert our custom IO model to new libdivecomputer IO model 2018-04-24 17:54:08 -07:00
qt-ble.h Convert our custom IO model to new libdivecomputer IO model 2018-04-24 17:54:08 -07:00
qt-gui.h Remove dead code 2017-11-19 12:20:43 -08:00
qt-init.cpp Cleanup: Set text encoding to UTF-8 for all platforms. 2018-03-14 13:55:36 +02:00
qthelper.cpp Dive pictures: save thumbnails to individual files 2018-05-13 13:52:35 -07:00
qthelper.h Dive pictures: save thumbnails to individual files 2018-05-13 13:52:35 -07:00
qtserialbluetooth.cpp Compile fix when compiling without BLE enabled 2018-04-25 07:56:19 -07:00
save-git.c Cleanup: Unify qthelper.h and qthelperfromc.h 2018-02-26 19:06:02 +02:00
save-html.c Cleanup: Unify qthelper.h and qthelperfromc.h 2018-02-26 19:06:02 +02:00
save-html.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
save-xml.c Cleanup: Unify qthelper.h and qthelperfromc.h 2018-02-26 19:06:02 +02:00
serial_ftdi.c Convert our custom IO model to new libdivecomputer IO model 2018-04-24 17:54:08 -07:00
sha1.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
sha1.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
statistics.c Cleanup: remove unused function get_selected_dives_text() 2018-04-10 08:16:33 -07:00
statistics.h Cleanup: remove unused function get_selected_dives_text() 2018-04-10 08:16:33 -07:00
strndup.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
strtod.c Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
subsurfacestartup.c Plot OC-pO2 graph for SCR dives 2018-04-28 20:11:22 +03:00
subsurfacestartup.h Fix ownership issues in preferences code 2017-11-25 07:41:09 -08:00
subsurfacesysinfo.cpp Random whitespace cleanup 2017-05-27 11:07:20 -07:00
subsurfacesysinfo.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
taxonomy.c Fix two bugs in taxonomy_set_country 2017-10-07 08:16:53 -07:00
taxonomy.h Add taxonomy helper functions 2017-10-04 08:05:09 -07:00
time.c Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
uemis-downloader.c uemis: code refactoring 2018-01-31 14:47:47 +01:00
uemis.c cleanup: fix possbile buffer overrun 2018-01-10 16:45:42 +01:00
uemis.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
units.h Choose water presets from a qcombobox in planner, custom value possible 2018-03-02 08:38:22 -08:00
version.c Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
version.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
webservice.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
windows.c Coding-style: remove superfluous parentheses 2018-02-17 19:38:52 -08:00
windowtitleupdate.cpp Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
windowtitleupdate.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
worldmap-options.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
worldmap-save.c worldmap-save: don't use an API key 2017-07-30 16:28:30 -07:00
worldmap-save.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00