diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2014-11-14 17:52:55 -0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-11-14 13:45:54 -0800 |
commit | 1055b5afd35526c552eafcaf26d5f1d9aac43c86 (patch) | |
tree | 807c76e26e9c98fb7e0cd40d108f126c485f07c1 /qt-ui | |
parent | b800530bcdd7779126bd623532ad8f6add852425 (diff) | |
download | subsurface-1055b5afd35526c552eafcaf26d5f1d9aac43c86.tar.gz |
Fix memleak on Pixmap cache
as we load dives and dives, new DiveEvents will be created
but the transparent pixmap never deleted, also this makes
the transparent pixmap only for the correct event, not for
all of them.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/profile/diveeventitem.cpp | 14 | ||||
-rw-r--r-- | qt-ui/profile/diveeventitem.h | 1 |
2 files changed, 7 insertions, 8 deletions
diff --git a/qt-ui/profile/diveeventitem.cpp b/qt-ui/profile/diveeventitem.cpp index 5ceb4693b..a9c3c3fd7 100644 --- a/qt-ui/profile/diveeventitem.cpp +++ b/qt-ui/profile/diveeventitem.cpp @@ -20,12 +20,6 @@ DiveEventItem::DiveEventItem(QObject *parent) : DivePixmapItem(parent), internalEvent(NULL) { setFlag(ItemIgnoresTransformations); - // create a narrow but somewhat tall, basically transparent pixmap - // that allows tooltips to work when we don't want to show a specific - // pixmap for an event, but want to show the event value in the tooltip - // (e.g. if there is heading data in every sample) - transparentPixmap = new QPixmap(4, 20); - transparentPixmap->fill(QColor::fromRgbF(1.0, 1.0, 1.0, 0.01)); } @@ -79,7 +73,13 @@ void DiveEventItem::setupPixmap() // some dive computers have heading in every sample... // set an "almost invisible" pixmap // so we get the tooltip but not the clutter - setPixmap(*transparentPixmap); + // create a narrow but somewhat tall, basically transparent pixmap + // that allows tooltips to work when we don't want to show a specific + // pixmap for an event, but want to show the event value in the tooltip + // (e.g. if there is heading data in every sample) + QPixmap transparentPixmap(4, 20); + transparentPixmap.fill(QColor::fromRgbF(1.0, 1.0, 1.0, 0.01)); + setPixmap(transparentPixmap); } else if (event_is_gaschange(internalEvent)) { if (internalEvent->gas.mix.he.permille) setPixmap(EVENT_PIXMAP_BIGGER(":gaschangeTrimix")); diff --git a/qt-ui/profile/diveeventitem.h b/qt-ui/profile/diveeventitem.h index 2657b3b50..f358fee6d 100644 --- a/qt-ui/profile/diveeventitem.h +++ b/qt-ui/profile/diveeventitem.h @@ -29,7 +29,6 @@ private: DiveCartesianAxis *hAxis; DivePlotDataModel *dataModel; struct event *internalEvent; - QPixmap *transparentPixmap; }; #endif // DIVEEVENTITEM_H |