From 9be434b3b1e540e89da5ca3cf5da928f1eaf7c08 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 31 Dec 2024 10:03:41 +0100 Subject: [PATCH] sqlbrowser example: use unique_ptr to hold m_ui The old code used manual memory mangement (raw new/delete) to (de)allocate the Ui struct. This is so 80s. Use an owning smart pointer to manage the memory. Ordinarily, this would have been QScopedPointer, but seeing as that doesn't have a create() method to hide the raw new, use std::unique_ptr and std::make_unique() instead. Amends 2690822428deec4f0c08f4d118d69a7c6036369e. Change-Id: Icabb9154eb38630855e14094b958af0214516f6b Reviewed-by: Volker Hilsheimer (cherry picked from commit 0da2c2c4ef2219967db87021eece2a60b6e207af) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 88600c30964bc1d11ed09e3dddd4cbe4477f02d3) --- examples/sql/sqlbrowser/browser.cpp | 6 ++---- examples/sql/sqlbrowser/browser.h | 4 +++- examples/sql/sqlbrowser/qsqlconnectiondialog.cpp | 6 ++---- examples/sql/sqlbrowser/qsqlconnectiondialog.h | 4 +++- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/sql/sqlbrowser/browser.cpp b/examples/sql/sqlbrowser/browser.cpp index 9a99999702b..3aad9fb890b 100644 --- a/examples/sql/sqlbrowser/browser.cpp +++ b/examples/sql/sqlbrowser/browser.cpp @@ -18,7 +18,7 @@ Browser::Browser(QWidget *parent) : QWidget(parent) - , m_ui(new Ui::Browser) + , m_ui{std::make_unique()} { m_ui->setupUi(this); @@ -60,9 +60,7 @@ Browser::Browser(QWidget *parent) } Browser::~Browser() -{ - delete m_ui; -} + = default; void Browser::exec() { diff --git a/examples/sql/sqlbrowser/browser.h b/examples/sql/sqlbrowser/browser.h index c61048c84ae..95c7079539d 100644 --- a/examples/sql/sqlbrowser/browser.h +++ b/examples/sql/sqlbrowser/browser.h @@ -7,6 +7,8 @@ #include #include +#include + QT_FORWARD_DECLARE_CLASS(QSqlError) QT_BEGIN_NAMESPACE @@ -50,7 +52,7 @@ signals: void statusMessage(const QString &message); private: - Ui::Browser *m_ui; + const std::unique_ptr m_ui; }; class CustomModel : public QSqlTableModel diff --git a/examples/sql/sqlbrowser/qsqlconnectiondialog.cpp b/examples/sql/sqlbrowser/qsqlconnectiondialog.cpp index 21c22b84d9b..9f6b8c8169a 100644 --- a/examples/sql/sqlbrowser/qsqlconnectiondialog.cpp +++ b/examples/sql/sqlbrowser/qsqlconnectiondialog.cpp @@ -11,7 +11,7 @@ QSqlConnectionDialog::QSqlConnectionDialog(QWidget *parent) : QDialog(parent) - , m_ui(new Ui::QSqlConnectionDialogUi) + , m_ui{std::make_unique()} { m_ui->setupUi(this); @@ -24,9 +24,7 @@ QSqlConnectionDialog::QSqlConnectionDialog(QWidget *parent) } QSqlConnectionDialog::~QSqlConnectionDialog() -{ - delete m_ui; -} + = default; QString QSqlConnectionDialog::driverName() const { diff --git a/examples/sql/sqlbrowser/qsqlconnectiondialog.h b/examples/sql/sqlbrowser/qsqlconnectiondialog.h index b5654ea9133..70dec9e9a86 100644 --- a/examples/sql/sqlbrowser/qsqlconnectiondialog.h +++ b/examples/sql/sqlbrowser/qsqlconnectiondialog.h @@ -6,6 +6,8 @@ #include +#include + QT_BEGIN_NAMESPACE namespace Ui { @@ -31,7 +33,7 @@ public: void accept() override; private: - Ui::QSqlConnectionDialogUi *m_ui; + const std::unique_ptr m_ui; }; #endif