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
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
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
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
diveshareexportdialog.cpp Qt6: move connection into C++ source 2022-03-12 08:28:32 -08:00
diveshareexportdialog.h
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
divesiteimportdialog.ui
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
findmovedimagesdialog.ui
groupedlineedit.cpp Qt6: add include files to keep QVectorIterator working 2022-03-12 08:28:32 -08:00
groupedlineedit.h
importgps.cpp
importgps.h
importgps.ui
kmessagewidget.cpp cleanup: prevent distracing conversion warnings 2022-03-12 08:28:32 -08:00
kmessagewidget.h
listfilter.ui
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
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
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
searchbar.ui
setpoint.ui
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
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 templateedit.ui: give the layout for "Border width" unique name 2017-03-12 09:19:03 -07:00
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
textedit.h
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
webservices.ui