summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2014-11-14 17:52:55 -0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-11-14 13:45:54 -0800
commit1055b5afd35526c552eafcaf26d5f1d9aac43c86 (patch)
tree807c76e26e9c98fb7e0cd40d108f126c485f07c1 /qt-ui
parentb800530bcdd7779126bd623532ad8f6add852425 (diff)
downloadsubsurface-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.cpp14
-rw-r--r--qt-ui/profile/diveeventitem.h1
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