subsurface/profile-widget
Berthold Stoeger f54268e527 Dive pictures: Fix crash on picture delete
The recent simplification of the close button code introduced a crash:
Deletion of pictures caused an invalid memory access, because the
CloseButtonItem was deleted with the parent DivePicture item.
For some (not fully understood!) reason, a reference to this button
was stored in the depths of Qt.

Empirically, it was found out that removing the first line of the pair
       QGraphicsItem::mousePressEvent(event);
       emit clicked();
fixed the crash.

It seemed therefore prudent to remove the whole questionable signal/slot
mechanism and directly call the removePicture() function of the parent.
Thus, the intermediate DiveButtonItem class became unnecessary and was
removed, leading to a shallower class hierarchy.

Unfortunately, CloseButtonItem must still be derived from QObject owing
to the Q_PROPERTY machinery, which is in turn needed for animation.

To make this compile on mobile, the conditional compilation of
removePicture() (#ifndef SUBSURFACE_MOBILE) was removed. After all,
if DivePixmapItem is used, there are pictures, so removePicture()
should be functional. Conditional compilation should concern the
whole class, not only this function.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-05-17 07:22:04 -07:00
..
animationfunctions.cpp Add SPDX header to profile widgets 2017-04-29 13:32:55 -07:00
animationfunctions.h Add SPDX header to profile widgets 2017-04-29 13:32:55 -07:00
CMakeLists.txt Correctly handle SubsurfaceMobile 2016-01-08 08:04:24 -08:00
divecartesianaxis.cpp Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
divecartesianaxis.h Typo: indice -> index 2018-01-10 21:25:02 +01:00
diveeventitem.cpp Read and write divemode changes (xml and git) 2018-05-14 23:47:00 +03:00
diveeventitem.h Dive pictures: remove close-button optimization 2018-05-13 13:52:35 -07:00
divelineitem.cpp Add SPDX header to profile widgets 2017-04-29 13:32:55 -07:00
divelineitem.h Add SPDX header to profile widgets 2017-04-29 13:32:55 -07:00
divepixmapitem.cpp Dive pictures: Fix crash on picture delete 2018-05-17 07:22:04 -07:00
divepixmapitem.h Dive pictures: Fix crash on picture delete 2018-05-17 07:22:04 -07:00
diveprofileitem.cpp Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -07:00
diveprofileitem.h Typo: Threshould -> Threshold 2018-01-10 21:25:02 +01:00
diverectitem.cpp Add SPDX header to profile widgets 2017-04-29 13:32:55 -07:00
diverectitem.h Add SPDX header to profile widgets 2017-04-29 13:32:55 -07:00
divetextitem.cpp Add SPDX header to profile widgets 2017-04-29 13:32:55 -07:00
divetextitem.h Add SPDX header to profile widgets 2017-04-29 13:32:55 -07:00
divetooltipitem.cpp Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -07:00
divetooltipitem.h code cleanup: remove unimplemented classes and structs 2017-06-16 05:31:41 +09:00
profilewidget2.cpp Rename enum dive_comp_type to divemode_t 2018-05-14 23:47:00 +03:00
profilewidget2.h Place divemode changes in submenu of context menu 2018-05-14 23:47:00 +03:00
ruleritem.cpp Add SPDX header to profile widgets 2017-04-29 13:32:55 -07:00
ruleritem.h Add SPDX header to profile widgets 2017-04-29 13:32:55 -07:00
tankitem.cpp cleanup: Uninitialized pointer field 2017-12-29 09:14:20 -08:00
tankitem.h cleanup: Uninitialized pointer field 2017-12-29 09:14:20 -08:00