From a8dae3ad0bc6377c695326e48d3c0db9f73107db Mon Sep 17 00:00:00 2001 From: Ivan Komissarov Date: Mon, 22 Oct 2018 19:53:53 +0200 Subject: [PATCH] qgraphicslayoutstyleinfo: Improve memory handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I3d699a89e8833570132cbd03aa575e4f4cf9249b Reviewed-by: Jan Arve Sæther --- src/widgets/graphicsview/qgraphicslayoutstyleinfo.cpp | 7 +++---- src/widgets/graphicsview/qgraphicslayoutstyleinfo_p.h | 4 +++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/widgets/graphicsview/qgraphicslayoutstyleinfo.cpp b/src/widgets/graphicsview/qgraphicslayoutstyleinfo.cpp index 8b4861bf45..da2510a8cb 100644 --- a/src/widgets/graphicsview/qgraphicslayoutstyleinfo.cpp +++ b/src/widgets/graphicsview/qgraphicslayoutstyleinfo.cpp @@ -50,14 +50,13 @@ QT_BEGIN_NAMESPACE QGraphicsLayoutStyleInfo::QGraphicsLayoutStyleInfo(const QGraphicsLayoutPrivate *layout) : m_layout(layout), m_style(0) { - m_widget = new QWidget; // pixelMetric might need a widget ptr - m_styleOption.initFrom(m_widget); + m_widget.reset(new QWidget); // pixelMetric might need a widget ptr + m_styleOption.initFrom(m_widget.get()); m_isWindow = m_styleOption.state & QStyle::State_Window; } QGraphicsLayoutStyleInfo::~QGraphicsLayoutStyleInfo() { - delete m_widget; } qreal QGraphicsLayoutStyleInfo::combinedLayoutSpacing(QLayoutPolicy::ControlTypes controls1, @@ -92,7 +91,7 @@ qreal QGraphicsLayoutStyleInfo::windowMargin(Qt::Orientation orientation) const const_cast(&m_styleOption), widget()); } -QWidget *QGraphicsLayoutStyleInfo::widget() const { return m_widget; } +QWidget *QGraphicsLayoutStyleInfo::widget() const { return m_widget.get(); } QStyle *QGraphicsLayoutStyleInfo::style() const { diff --git a/src/widgets/graphicsview/qgraphicslayoutstyleinfo_p.h b/src/widgets/graphicsview/qgraphicslayoutstyleinfo_p.h index 7886de432c..c3af9f4554 100644 --- a/src/widgets/graphicsview/qgraphicslayoutstyleinfo_p.h +++ b/src/widgets/graphicsview/qgraphicslayoutstyleinfo_p.h @@ -54,6 +54,8 @@ #include #include +#include + QT_REQUIRE_CONFIG(graphicsview); QT_BEGIN_NAMESPACE @@ -93,7 +95,7 @@ private: const QGraphicsLayoutPrivate *m_layout; mutable QStyle *m_style; QStyleOption m_styleOption; - QWidget *m_widget; + std::unique_ptr m_widget; }; QT_END_NAMESPACE