summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-03-01 21:29:14 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-03-02 08:44:43 +0000
commit3661b135306f00e3e4dede8181e0015bcc60d5be (patch)
tree1bd78cc89a6b9f565c1b7aefe58878a7556abc23
parent29b99b3efc324290a12ee02c748f9c1240f9733c (diff)
graphgallery example: Fix leaking modifier classes
The modifier classes were leaking. Pass a parent to ensure their destruction. Remove the deletion of the graphs from their destructors since they are QWindows, which are deleted by QtGui. Task-number: QTBUG-110698 Change-Id: Ied32dad62c93b730f63fa95994c4fc281254c800 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> (cherry picked from commit f289b0b14d174d7c891a225c4e81f67573d8c555) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--examples/datavisualization/graphgallery/bargraph.cpp2
-rw-r--r--examples/datavisualization/graphgallery/graphmodifier.cpp4
-rw-r--r--examples/datavisualization/graphgallery/graphmodifier.h2
-rw-r--r--examples/datavisualization/graphgallery/scatterdatamodifier.cpp10
-rw-r--r--examples/datavisualization/graphgallery/scatterdatamodifier.h3
-rw-r--r--examples/datavisualization/graphgallery/scattergraph.cpp2
-rw-r--r--examples/datavisualization/graphgallery/surfacegraph.cpp2
-rw-r--r--examples/datavisualization/graphgallery/surfacegraphmodifier.cpp10
-rw-r--r--examples/datavisualization/graphgallery/surfacegraphmodifier.h3
9 files changed, 14 insertions, 24 deletions
diff --git a/examples/datavisualization/graphgallery/bargraph.cpp b/examples/datavisualization/graphgallery/bargraph.cpp
index ef5112f2..5bb04c01 100644
--- a/examples/datavisualization/graphgallery/bargraph.cpp
+++ b/examples/datavisualization/graphgallery/bargraph.cpp
@@ -245,7 +245,7 @@ bool BarGraph::initialize()
vLayout->addWidget(modeCustomProxy, 1, Qt::AlignTop);
//! [2]
- GraphModifier *modifier = new GraphModifier(m_barsGraph);
+ GraphModifier *modifier = new GraphModifier(m_barsGraph, this);
//! [2]
//! [5]
diff --git a/examples/datavisualization/graphgallery/graphmodifier.cpp b/examples/datavisualization/graphgallery/graphmodifier.cpp
index 99bd24c9..1c488393 100644
--- a/examples/datavisualization/graphgallery/graphmodifier.cpp
+++ b/examples/datavisualization/graphgallery/graphmodifier.cpp
@@ -19,7 +19,8 @@ using namespace Qt::StringLiterals;
// TODO: Many of the values do not affect custom proxy series now - should be fixed
//! [0]
-GraphModifier::GraphModifier(Q3DBars *bargraph) :
+GraphModifier::GraphModifier(Q3DBars *bargraph, QObject *parent) :
+ QObject(parent),
m_graph(bargraph),
//! [0]
//! [1]
@@ -127,7 +128,6 @@ GraphModifier::GraphModifier(Q3DBars *bargraph) :
GraphModifier::~GraphModifier()
{
delete m_customData;
- delete m_graph;
}
void GraphModifier::resetTemperatureData()
diff --git a/examples/datavisualization/graphgallery/graphmodifier.h b/examples/datavisualization/graphgallery/graphmodifier.h
index deba00c5..7b91c049 100644
--- a/examples/datavisualization/graphgallery/graphmodifier.h
+++ b/examples/datavisualization/graphgallery/graphmodifier.h
@@ -15,7 +15,7 @@ class GraphModifier : public QObject
{
Q_OBJECT
public:
- explicit GraphModifier(Q3DBars *bargraph);
+ explicit GraphModifier(Q3DBars *bargraph, QObject *parent);
~GraphModifier();
void resetTemperatureData();
diff --git a/examples/datavisualization/graphgallery/scatterdatamodifier.cpp b/examples/datavisualization/graphgallery/scatterdatamodifier.cpp
index 93c844c9..f018c81b 100644
--- a/examples/datavisualization/graphgallery/scatterdatamodifier.cpp
+++ b/examples/datavisualization/graphgallery/scatterdatamodifier.cpp
@@ -21,8 +21,9 @@ const float curveDivider = 7.5f;
const int lowerNumberOfItems = 900;
const float lowerCurveDivider = 0.75f;
-ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter)
- : m_graph(scatter),
+ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter, QObject *parent) :
+ QObject(parent),
+ m_graph(scatter),
m_itemCount(lowerNumberOfItems),
m_curveDivider(lowerCurveDivider),
//! [7]
@@ -59,11 +60,6 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter)
//! [2]
}
-ScatterDataModifier::~ScatterDataModifier()
-{
- delete m_graph;
-}
-
void ScatterDataModifier::addData()
{
// Configure the axes according to the data
diff --git a/examples/datavisualization/graphgallery/scatterdatamodifier.h b/examples/datavisualization/graphgallery/scatterdatamodifier.h
index 5b6a1c9f..2238b9e7 100644
--- a/examples/datavisualization/graphgallery/scatterdatamodifier.h
+++ b/examples/datavisualization/graphgallery/scatterdatamodifier.h
@@ -13,8 +13,7 @@ class ScatterDataModifier : public QObject
{
Q_OBJECT
public:
- explicit ScatterDataModifier(Q3DScatter *scatter);
- ~ScatterDataModifier();
+ explicit ScatterDataModifier(Q3DScatter *scatter, QObject *parent);
void addData();
diff --git a/examples/datavisualization/graphgallery/scattergraph.cpp b/examples/datavisualization/graphgallery/scattergraph.cpp
index ae20d609..043d43ac 100644
--- a/examples/datavisualization/graphgallery/scattergraph.cpp
+++ b/examples/datavisualization/graphgallery/scattergraph.cpp
@@ -110,7 +110,7 @@ bool ScatterGraph::initialize()
vLayout->addWidget(new QLabel(u"Adjust shadow quality"_s));
vLayout->addWidget(shadowQuality, 1, Qt::AlignTop);
- ScatterDataModifier *modifier = new ScatterDataModifier(m_scatterGraph);
+ ScatterDataModifier *modifier = new ScatterDataModifier(m_scatterGraph, this);
QObject::connect(cameraButton, &QCommandLinkButton::clicked, modifier,
&ScatterDataModifier::changePresetCamera);
diff --git a/examples/datavisualization/graphgallery/surfacegraph.cpp b/examples/datavisualization/graphgallery/surfacegraph.cpp
index 86ff4145..5de2b7cd 100644
--- a/examples/datavisualization/graphgallery/surfacegraph.cpp
+++ b/examples/datavisualization/graphgallery/surfacegraph.cpp
@@ -253,7 +253,7 @@ bool SurfaceGraph::initialize()
vLayout->addWidget(enableTexture);
// Create the controller
- SurfaceGraphModifier *modifier = new SurfaceGraphModifier(m_surfaceGraph, labelSelectedItem);
+ SurfaceGraphModifier *modifier = new SurfaceGraphModifier(m_surfaceGraph, labelSelectedItem, this);
// Connect widget controls to controller
QObject::connect(heightMapModelRB, &QRadioButton::toggled,
diff --git a/examples/datavisualization/graphgallery/surfacegraphmodifier.cpp b/examples/datavisualization/graphgallery/surfacegraphmodifier.cpp
index 005c27fc..3ab9f7eb 100644
--- a/examples/datavisualization/graphgallery/surfacegraphmodifier.cpp
+++ b/examples/datavisualization/graphgallery/surfacegraphmodifier.cpp
@@ -25,8 +25,9 @@ const float areaHeight = 8000.f;
const float aspectRatio = 0.1389f;
const float minRange = areaWidth * 0.49f;
-SurfaceGraphModifier::SurfaceGraphModifier(Q3DSurface *surface, QLabel *label)
- : m_graph(surface),
+SurfaceGraphModifier::SurfaceGraphModifier(Q3DSurface *surface, QLabel *label, QObject *parent) :
+ QObject(parent),
+ m_graph(surface),
m_textField(label)
{
m_graph->scene()->activeCamera()->setZoomLevel(85.f);
@@ -145,11 +146,6 @@ SurfaceGraphModifier::SurfaceGraphModifier(Q3DSurface *surface, QLabel *label)
m_customInputHandler->setAspectRatio(aspectRatio);
}
-SurfaceGraphModifier::~SurfaceGraphModifier()
-{
- delete m_graph;
-}
-
void SurfaceGraphModifier::fillSqrtSinProxy()
{
float stepX = (sampleMax - sampleMin) / float(sampleCountX - 1);
diff --git a/examples/datavisualization/graphgallery/surfacegraphmodifier.h b/examples/datavisualization/graphgallery/surfacegraphmodifier.h
index 19ae04b2..0c01d986 100644
--- a/examples/datavisualization/graphgallery/surfacegraphmodifier.h
+++ b/examples/datavisualization/graphgallery/surfacegraphmodifier.h
@@ -23,8 +23,7 @@ class SurfaceGraphModifier : public QObject
{
Q_OBJECT
public:
- explicit SurfaceGraphModifier(Q3DSurface *surface, QLabel *label);
- ~SurfaceGraphModifier();
+ explicit SurfaceGraphModifier(Q3DSurface *surface, QLabel *label, QObject *parent);
//! [0]
void toggleModeNone() { m_graph->setSelectionMode(QAbstract3DGraph::SelectionNone); }