subsurface/desktop-widgets
Berthold Stoeger 8733828380 computer configuration: use value semantics for DeviceDetails
The memory managements for DeviceDetails was very sketchy.
First of all, sharing a pointer to a structure between threads
seems like a recipe for disaster. Secondly, the structure was
a QObject and when first generated included in the (silly)
Qt object tree, but when generated in the threads it was not.
Clearly, this leaks.

Instead, use value semantics and use local copies of the
structure. I didn't go full length and use std::move to
move the data, because this doesn't work through signals
(which are the wrong abstraction here, but OK) and secondly
I didn't have time to analyze whether the caller still
needs the data after passing it down to the worker thread.

To be able to pass an object through signals, the class
has to be registered in the Qt MetaType system. Super
ugly, but fine for now. Ultimately, this whole thing should
probably be replaced by futures, co-routines, or whatever.

Moreover, this removes the prefix from  number of "m_*"
function parameters. By convention, "m_" marks member
variables, which function parameters are not.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>

make DeviceDetails a metatype

So that we can pass it as value through the signal/slot system.
(squash with original commit)

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2024-03-24 17:53:19 +01:00
..
css
preferences preferences: replace macro by local function 2024-03-13 13:17:01 +13:00
qml statistics: don't import QtQuick in StatsView QML file 2022-11-19 15:07:07 -08:00
tab-widgets cleanup: more Coverity silencing 2024-01-17 14:23:19 -08:00
about.cpp Desktop: Add Button and Link to 'Contribute' Page. 2024-02-04 14:50:18 -08:00
about.h Desktop: Add Button and Link to 'Contribute' Page. 2024-02-04 14:50:18 -08:00
about.ui Desktop: Add Button and Link to 'Contribute' Page. 2024-02-04 14:50:18 -08:00
addfilterpreset.ui filter: create a primitive "create filter preset" dialog 2020-09-29 16:13:03 -07:00
btdeviceselectiondialog.cpp Qt6: Bluetooth API changes 2022-03-12 08:28:32 -08:00
btdeviceselectiondialog.h cleanup: remove QPointer instances 2020-12-17 13:03:56 -08:00
btdeviceselectiondialog.ui Desktop: add checkbox to show all BT devices 2019-02-14 09:05:58 -08:00
CMakeLists.txt Update to use AUTOMOC 2024-01-20 09:38:22 -08:00
configuredivecomputerdialog.cpp computer configuration: use value semantics for DeviceDetails 2024-03-24 17:53:19 +01:00
configuredivecomputerdialog.h computer configuration: use value semantics for DeviceDetails 2024-03-24 17:53:19 +01:00
configuredivecomputerdialog.ui Desktop: Use Persisted Device Information for Dive Computer Configuration. 2023-06-12 12:40:44 -07:00
divecomponentselection.ui core: replace dive master by dive guide 2022-02-15 09:35:43 -08:00
divelistview.cpp core: enable compiler warngings for report_error and report_info 2024-03-12 10:31:07 -04:00
divelistview.h cleanup: more Coverity silencing 2024-01-17 14:23:19 -08:00
divelogexportdialog.cpp cleanup: fix incorrect QFuture return value 2022-03-12 08:28:32 -08:00
divelogexportdialog.h desktop-widgets: move export functions to shared class 2019-12-03 21:30:39 -08:00
divelogexportdialog.ui Desktop: Change 'CSV summary dive details' output from TSV to CSV. 2023-05-18 10:31:31 +03:00
divelogimportdialog.cpp cleanup: more Coverity silencing 2024-01-17 14:23:19 -08:00
divelogimportdialog.h parser: replace params[] code by new xml_params struct 2020-10-23 18:17:02 -07:00
divelogimportdialog.ui Use icons relative path. 2017-11-30 23:14:46 -08:00
divepicturewidget.cpp cleanup: remove unnecessary includes from divepicturewidget.cpp 2020-12-03 10:32:20 -08:00
divepicturewidget.h Cleanup: remove DivePictureThumbnailThread 2020-05-06 13:58:09 -07:00
diveplanner.cpp planner: initialize subobject of PlannerWidgets in correct order 2024-01-16 14:22:16 -08:00
diveplanner.h planner: initialize subobject of PlannerWidgets in correct order 2024-01-16 14:22:16 -08:00
diveplanner.ui Choose water presets from a qcombobox in planner, custom value possible 2018-03-02 08:38:22 -08:00
diveshareexportdialog.cpp Qt6: move connection into C++ source 2022-03-12 08:28:32 -08:00
diveshareexportdialog.h desktop-widgets: diveDiveShareExportDialog add signal handling 2019-12-11 11:08:51 -05:00
diveshareexportdialog.ui Qt6: move connection into C++ source 2022-03-12 08:28:32 -08:00
divesiteimportdialog.cpp cleanup: more Coverity silencing 2024-01-17 14:23:19 -08:00
divesiteimportdialog.h Create DivesiteImportDialog to select sites to import 2019-05-06 10:48:44 +02:00
divesiteimportdialog.ui Create DivesiteImportDialog to select sites to import 2019-05-06 10:48:44 +02:00
divesitelistview.cpp core: introduce divelog structure 2023-04-14 21:20:23 +02:00
divesitelistview.h desktop: make dive site list an independent widget 2022-09-23 15:50:49 +02:00
divesitelistview.ui desktop: make dive site list an independent widget 2022-09-23 15:50:49 +02:00
downloadfromdivecomputer.cpp Import: Add option to sync time on dive computer download 2023-04-17 07:56:02 -07:00
downloadfromdivecomputer.h Import: Add option to sync time on dive computer download 2023-04-17 07:56:02 -07:00
downloadfromdivecomputer.ui Import: Add option to sync time on dive computer download 2023-04-17 07:56:02 -07:00
filterconstraintwidget.cpp cleanup: Fix a Coverity warning 2022-02-15 09:30:43 -08:00
filterconstraintwidget.h filter: add a filter constraint widget 2020-09-29 16:13:03 -07:00
filterwidget.cpp core: port filterpreset.cpp to std::string 2024-03-10 11:01:42 +13:00
filterwidget.h cleanup: rename FilterWidget2 to FilterWidget 2020-09-29 16:14:31 -07:00
filterwidget.ui cleanup: rename FilterWidget2 to FilterWidget 2020-09-29 16:14:31 -07:00
findmovedimagesdialog.cpp cleanup: silence std::move()-related Coverity warnings 2024-01-15 15:11:36 -08:00
findmovedimagesdialog.h Dive pictures: implement FindMovedImagesDialog 2018-07-04 02:27:36 +08:00
findmovedimagesdialog.ui UI change of "images"/"photo" to "media" or "media files" 2018-07-15 09:38:12 -07:00
groupedlineedit.cpp Qt6: add include files to keep QVectorIterator working 2022-03-12 08:28:32 -08:00
groupedlineedit.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
importgps.cpp cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
importgps.h core: move GPX parsing into core 2020-01-24 09:51:02 -08:00
importgps.ui Typo: UCT to UTC 2020-03-19 08:37:59 -07:00
kmessagewidget.cpp cleanup: prevent distracing conversion warnings 2022-03-12 08:28:32 -08:00
kmessagewidget.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
listfilter.ui Start to implement a simplified version of the filter widget 2018-12-14 01:05:18 +08:00
locationinformation.cpp code consistency: replace qMin/qMax by std::min/std::max 2024-01-17 14:23:19 -08:00
locationinformation.h Desktop: Add mergeing into the selected dive site. 2023-05-20 07:24:39 +02:00
locationinformation.ui Desktop: Import dive coordinates directly from GPS 2020-01-24 09:51:02 -08:00
mainwindow.cpp core: enable compiler warngings for report_error and report_info 2024-03-12 10:31:07 -04:00
mainwindow.h cleanup: silence std::move()-related Coverity warnings 2024-01-15 15:11:36 -08:00
mainwindow.ui Desktop: Regroup File Menu Entries. 2023-06-17 20:19:35 +02:00
mapwidget.cpp map: fold selectionChanged() into setSelection() 2023-04-16 20:23:59 +02:00
mapwidget.h map: fold selectionChanged() into setSelection() 2023-04-16 20:23:59 +02:00
modeldelegates.cpp code consistency: replace qMin/qMax by std::min/std::max 2024-01-17 14:23:19 -08:00
modeldelegates.h cleanup: don't define empty inline constructor 2023-04-16 20:23:59 +02:00
notificationwidget.cpp cleanup: fix incorrect QFuture return value 2022-03-12 08:28:32 -08:00
notificationwidget.h cleanup: fix incorrect QFuture return value 2022-03-12 08:28:32 -08:00
plannerDetails.ui
plannerSettings.ui Planner: Add option to treat O2 as narcotic 2019-10-31 00:30:38 -07:00
printdialog.cpp printing: don't access displayed_dive in printing code 2023-04-16 20:23:59 +02:00
printdialog.h printing: don't access displayed_dive in printing code 2023-04-16 20:23:59 +02:00
printer.cpp printing: don't access displayed_dive in printing code 2023-04-16 20:23:59 +02:00
printer.h printing: don't access displayed_dive in printing code 2023-04-16 20:23:59 +02:00
printoptions.cpp Add printing option for page orientation 2023-03-28 21:08:37 -07:00
printoptions.h Add printing option for page orientation 2023-03-28 21:08:37 -07:00
printoptions.ui Add printing option for page orientation 2023-03-28 21:08:37 -07:00
profilewidget.cpp Desktop: Add a Button to Hide the Infobox in the Dive Profile. 2023-06-25 14:40:23 +02:00
profilewidget.h core: make owning pointers a top-level features 2023-04-16 20:23:59 +02:00
profilewidget.ui Desktop: Add a Button to Hide the Infobox in the Dive Profile. 2023-06-25 14:40:23 +02:00
qtwaitingspinner.cpp cleanup: prevent distracing conversion warnings 2022-03-12 08:28:32 -08:00
qtwaitingspinner.h
renumber.ui Use icons relative path. 2017-11-30 23:14:46 -08:00
searchbar.ui Use better aliases for icons. 2017-11-30 23:14:46 -08:00
setpoint.ui Use icons relative path. 2017-11-30 23:14:46 -08:00
shiftimagetimes.ui desktop/image-time-shift: reorder UI 2021-09-22 09:09:12 -07:00
shifttimes.ui cleanup: remove duplicate connections in .ui files 2022-03-12 08:28:32 -08:00
simplewidgets.cpp core: port filterpreset.cpp to std::string 2024-03-10 11:01:42 +13:00
simplewidgets.h desktop: pass dive list to ShiftTimesDialog 2023-01-18 15:42:47 -08:00
starwidget.cpp cleanup: remove reference to deprecated enum value 2020-10-26 19:27:03 -07:00
starwidget.h cleanup: fix deprecated QFlags use 2020-10-26 19:27:03 -07:00
statswidget.cpp Qt6: prevent QML object from being garbage collected 2022-03-12 08:28:32 -08:00
statswidget.h Qt6: prevent QML object from being garbage collected 2022-03-12 08:28:32 -08:00
statswidget.ui statistics: add a sort mode for categorical bar charts 2022-01-04 11:14:24 -08:00
subsurfacewebservices.cpp core: use divelog in importDives() and process_imported_dives() 2023-04-14 21:20:23 +02:00
subsurfacewebservices.h Qt6: update the connect calls for QNetworkReply 2022-04-18 07:24:39 +02:00
tableview.cpp desktop: fix saving of column-widths of device and site tables 2020-11-07 11:37:51 -08:00
tableview.h Desktop: don't connect to remove() slot of model from TableModel 2019-12-05 10:14:25 -08:00
tableview.ui
tagwidget.cpp desktop: let tag-widget completion popup accept composition events 2022-08-13 11:19:37 -07:00
tagwidget.h desktop: improve composition on TagWidgets 2022-08-13 11:19:37 -07:00
templateedit.cpp printing: don't access displayed_dive in printing code 2023-04-16 20:23:59 +02:00
templateedit.h printing: move #includes from headers to source files 2020-12-17 13:03:56 -08:00
templateedit.ui
templatelayout.cpp cleanup: silence std::move()-related Coverity warnings 2024-01-15 15:11:36 -08:00
templatelayout.h cleanup: silence std::move()-related Coverity warnings 2024-01-15 15:11:36 -08:00
textedit.cpp Desktop: create new custom TextEdit widget for notes-field 2019-04-12 18:19:07 +03:00
textedit.h Desktop: create new custom TextEdit widget for notes-field 2019-04-12 18:19:07 +03:00
tripselectiondialog.cpp core: introduce divelog structure 2023-04-14 21:20:23 +02:00
tripselectiondialog.h desktop: add trip selection dialog 2020-10-03 10:01:13 -07:00
tripselectiondialog.ui desktop: add trip selection dialog 2020-10-03 10:01:13 -07:00
updatemanager.cpp remove app uuid 2024-01-07 16:01:55 -08:00
updatemanager.h
urldialog.ui Allow more than one media file when importing from the web 2022-04-01 08:28:05 -07:00
usermanual.cpp cleanup: don't initialize flags with just an integer 2020-10-26 19:27:03 -07:00
usermanual.h Remove partial support for QWebEngine 2019-03-20 08:45:02 -07:00
webservices.ui Use icons relative path. 2017-11-30 23:14:46 -08:00