From 09fd3dbffaae73265e2fe89fe9aa42357ff9c202 Mon Sep 17 00:00:00 2001 From: donovaly Date: Fri, 5 Feb 2021 02:13:53 +0100 Subject: [PATCH] [Part] make pointers to the UI std::unique_ptr Same as PR #4293, just for Part as noted in https://github.com/FreeCAD/FreeCAD/pull/4271#discussion_r554673632 the pointer to the UI should be a unique pointer. This PR does this for all Part dialogs that don't already use a unique_ptr. --- src/Mod/Part/Gui/CrossSections.cpp | 4 +--- src/Mod/Part/Gui/CrossSections.h | 2 +- src/Mod/Part/Gui/DlgBooleanOperation.cpp | 1 - src/Mod/Part/Gui/DlgBooleanOperation.h | 2 +- src/Mod/Part/Gui/DlgExtrusion.cpp | 1 - src/Mod/Part/Gui/DlgExtrusion.h | 2 +- src/Mod/Part/Gui/DlgRevolution.cpp | 5 +---- src/Mod/Part/Gui/DlgRevolution.h | 2 +- src/Mod/Part/Gui/DlgSettingsGeneral.cpp | 12 +++--------- src/Mod/Part/Gui/DlgSettingsGeneral.h | 6 +++--- src/Mod/Part/Gui/Mirroring.cpp | 1 - src/Mod/Part/Gui/Mirroring.h | 2 +- src/Mod/Part/Gui/TaskAttacher.cpp | 5 ++--- src/Mod/Part/Gui/TaskAttacher.h | 2 +- 14 files changed, 16 insertions(+), 31 deletions(-) diff --git a/src/Mod/Part/Gui/CrossSections.cpp b/src/Mod/Part/Gui/CrossSections.cpp index 0703dfb275..57e43a6a46 100644 --- a/src/Mod/Part/Gui/CrossSections.cpp +++ b/src/Mod/Part/Gui/CrossSections.cpp @@ -124,9 +124,8 @@ private: } CrossSections::CrossSections(const Base::BoundBox3d& bb, QWidget* parent, Qt::WindowFlags fl) - : QDialog(parent, fl), bbox(bb) + : QDialog(parent, fl), bbox(bb), ui(new Ui_CrossSections) { - ui = new Ui_CrossSections(); ui->setupUi(this); ui->position->setRange(-DBL_MAX, DBL_MAX); ui->position->setUnit(Base::Unit::Length); @@ -151,7 +150,6 @@ CrossSections::CrossSections(const Base::BoundBox3d& bb, QWidget* parent, Qt::Wi CrossSections::~CrossSections() { // no need to delete child widgets, Qt does it all for us - delete ui; if (view) { view->getViewer()->removeViewProvider(vp); } diff --git a/src/Mod/Part/Gui/CrossSections.h b/src/Mod/Part/Gui/CrossSections.h index d73947bea8..089b0bd012 100644 --- a/src/Mod/Part/Gui/CrossSections.h +++ b/src/Mod/Part/Gui/CrossSections.h @@ -71,7 +71,7 @@ private: Plane plane() const; private: - Ui_CrossSections* ui; + std::unique_ptr ui; Base::BoundBox3d bbox; ViewProviderCrossSections* vp; QPointer view; diff --git a/src/Mod/Part/Gui/DlgBooleanOperation.cpp b/src/Mod/Part/Gui/DlgBooleanOperation.cpp index 5a0b478ee0..027a822bb1 100644 --- a/src/Mod/Part/Gui/DlgBooleanOperation.cpp +++ b/src/Mod/Part/Gui/DlgBooleanOperation.cpp @@ -102,7 +102,6 @@ DlgBooleanOperation::DlgBooleanOperation(QWidget* parent) DlgBooleanOperation::~DlgBooleanOperation() { // no need to delete child widgets, Qt does it all for us - delete ui; this->connectNewObject.disconnect(); this->connectModObject.disconnect(); } diff --git a/src/Mod/Part/Gui/DlgBooleanOperation.h b/src/Mod/Part/Gui/DlgBooleanOperation.h index 0a5a624a8c..53c915cce4 100644 --- a/src/Mod/Part/Gui/DlgBooleanOperation.h +++ b/src/Mod/Part/Gui/DlgBooleanOperation.h @@ -63,7 +63,7 @@ private Q_SLOTS: void currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*); private: - Ui_DlgBooleanOperation* ui; + std::unique_ptr ui; Connection connectNewObject; Connection connectModObject; std::list observe; diff --git a/src/Mod/Part/Gui/DlgExtrusion.cpp b/src/Mod/Part/Gui/DlgExtrusion.cpp index 2ebc8bc113..1982aa7b42 100644 --- a/src/Mod/Part/Gui/DlgExtrusion.cpp +++ b/src/Mod/Part/Gui/DlgExtrusion.cpp @@ -139,7 +139,6 @@ DlgExtrusion::~DlgExtrusion() } // no need to delete child widgets, Qt does it all for us - delete ui; } void DlgExtrusion::changeEvent(QEvent *e) diff --git a/src/Mod/Part/Gui/DlgExtrusion.h b/src/Mod/Part/Gui/DlgExtrusion.h index d1db3d860e..a4baae7238 100644 --- a/src/Mod/Part/Gui/DlgExtrusion.h +++ b/src/Mod/Part/Gui/DlgExtrusion.h @@ -91,7 +91,7 @@ private: void autoSolid(); private: - Ui_DlgExtrusion* ui; + std::unique_ptr ui; std::string document, label; class EdgeSelection; EdgeSelection* filter; diff --git a/src/Mod/Part/Gui/DlgRevolution.cpp b/src/Mod/Part/Gui/DlgRevolution.cpp index 86b2b14a73..de27f30624 100644 --- a/src/Mod/Part/Gui/DlgRevolution.cpp +++ b/src/Mod/Part/Gui/DlgRevolution.cpp @@ -101,10 +101,8 @@ public: }; DlgRevolution::DlgRevolution(QWidget* parent, Qt::WindowFlags fl) - : QDialog(parent, fl), filter(0) + : QDialog(parent, fl), filter(0), ui(new Ui_DlgRevolution) { - ui = new Ui_DlgRevolution(); - ui->setupUi(this); ui->xPos->setRange(-DBL_MAX,DBL_MAX); @@ -141,7 +139,6 @@ DlgRevolution::~DlgRevolution() { // no need to delete child widgets, Qt does it all for us Gui::Selection().rmvSelectionGate(); - delete ui; } Base::Vector3d DlgRevolution::getDirection() const diff --git a/src/Mod/Part/Gui/DlgRevolution.h b/src/Mod/Part/Gui/DlgRevolution.h index 2a8bf2bc8b..9151088aef 100644 --- a/src/Mod/Part/Gui/DlgRevolution.h +++ b/src/Mod/Part/Gui/DlgRevolution.h @@ -76,7 +76,7 @@ private: void autoSolid(); private: - Ui_DlgRevolution* ui; + std::unique_ptr ui; class EdgeSelection; EdgeSelection* filter; }; diff --git a/src/Mod/Part/Gui/DlgSettingsGeneral.cpp b/src/Mod/Part/Gui/DlgSettingsGeneral.cpp index 2dee4b9150..fbd6762478 100644 --- a/src/Mod/Part/Gui/DlgSettingsGeneral.cpp +++ b/src/Mod/Part/Gui/DlgSettingsGeneral.cpp @@ -40,9 +40,8 @@ using namespace PartGui; DlgSettingsGeneral::DlgSettingsGeneral(QWidget* parent) - : PreferencePage(parent) + : PreferencePage(parent), ui(new Ui_DlgSettingsGeneral) { - ui = new Ui_DlgSettingsGeneral(); ui->setupUi(this); } @@ -52,7 +51,6 @@ DlgSettingsGeneral::DlgSettingsGeneral(QWidget* parent) DlgSettingsGeneral::~DlgSettingsGeneral() { // no need to delete child widgets, Qt does it all for us - delete ui; } void DlgSettingsGeneral::saveSettings() @@ -87,9 +85,8 @@ void DlgSettingsGeneral::changeEvent(QEvent *e) // ---------------------------------------------------------------------------- DlgImportExportIges::DlgImportExportIges(QWidget* parent) - : PreferencePage(parent) + : PreferencePage(parent), ui(new Ui_DlgImportExportIges) { - ui = new Ui_DlgImportExportIges(); ui->setupUi(this); ui->lineEditProduct->setReadOnly(true); @@ -113,7 +110,6 @@ DlgImportExportIges::DlgImportExportIges(QWidget* parent) DlgImportExportIges::~DlgImportExportIges() { // no need to delete child widgets, Qt does it all for us - delete ui; } void DlgImportExportIges::saveSettings() @@ -193,9 +189,8 @@ void DlgImportExportIges::changeEvent(QEvent *e) // ---------------------------------------------------------------------------- DlgImportExportStep::DlgImportExportStep(QWidget* parent) - : PreferencePage(parent) + : PreferencePage(parent), ui(new Ui_DlgImportExportStep) { - ui = new Ui_DlgImportExportStep(); ui->setupUi(this); ui->comboBoxSchema->setItemData(0, QByteArray("AP203")); @@ -229,7 +224,6 @@ DlgImportExportStep::DlgImportExportStep(QWidget* parent) DlgImportExportStep::~DlgImportExportStep() { // no need to delete child widgets, Qt does it all for us - delete ui; } void DlgImportExportStep::saveSettings() diff --git a/src/Mod/Part/Gui/DlgSettingsGeneral.h b/src/Mod/Part/Gui/DlgSettingsGeneral.h index fc995cce3f..0054d24f16 100644 --- a/src/Mod/Part/Gui/DlgSettingsGeneral.h +++ b/src/Mod/Part/Gui/DlgSettingsGeneral.h @@ -45,7 +45,7 @@ protected: void changeEvent(QEvent *e); private: - Ui_DlgSettingsGeneral* ui; + std::unique_ptr ui; }; class Ui_DlgImportExportIges; @@ -63,7 +63,7 @@ protected: void changeEvent(QEvent *e); private: - Ui_DlgImportExportIges* ui; + std::unique_ptr ui; QButtonGroup* bg; }; @@ -82,7 +82,7 @@ protected: void changeEvent(QEvent *e); private: - Ui_DlgImportExportStep* ui; + std::unique_ptr ui; }; } // namespace Gui diff --git a/src/Mod/Part/Gui/Mirroring.cpp b/src/Mod/Part/Gui/Mirroring.cpp index 94beb847b2..14f413f199 100644 --- a/src/Mod/Part/Gui/Mirroring.cpp +++ b/src/Mod/Part/Gui/Mirroring.cpp @@ -77,7 +77,6 @@ Mirroring::Mirroring(QWidget* parent) Mirroring::~Mirroring() { // no need to delete child widgets, Qt does it all for us - delete ui; } void Mirroring::changeEvent(QEvent *e) diff --git a/src/Mod/Part/Gui/Mirroring.h b/src/Mod/Part/Gui/Mirroring.h index 2f8cad91e9..768704b450 100644 --- a/src/Mod/Part/Gui/Mirroring.h +++ b/src/Mod/Part/Gui/Mirroring.h @@ -52,7 +52,7 @@ private: private: QString document; - Ui_Mirroring* ui; + std::unique_ptr ui; }; class TaskMirroring : public Gui::TaskView::TaskDialog diff --git a/src/Mod/Part/Gui/TaskAttacher.cpp b/src/Mod/Part/Gui/TaskAttacher.cpp index 682443e34d..393623b895 100644 --- a/src/Mod/Part/Gui/TaskAttacher.cpp +++ b/src/Mod/Part/Gui/TaskAttacher.cpp @@ -114,7 +114,8 @@ TaskAttacher::TaskAttacher(Gui::ViewProviderDocumentObject *ViewProvider, QWidge : TaskBox(Gui::BitmapFactory().pixmap(picture.toLatin1()), text, true, parent), SelectionObserver(ViewProvider), ViewProvider(ViewProvider), - visibilityFunc(visFunc) + visibilityFunc(visFunc), + ui(new Ui_TaskAttacher) { //check if we are attachable if (!ViewProvider->getObject()->hasExtension(Part::AttachExtension::getExtensionClassTypeId())) @@ -122,7 +123,6 @@ TaskAttacher::TaskAttacher(Gui::ViewProviderDocumentObject *ViewProvider, QWidge // we need a separate container widget to add all controls to proxy = new QWidget(this); - ui = new Ui_TaskAttacher(); ui->setupUi(proxy); QMetaObject::connectSlotsByName(this); @@ -235,7 +235,6 @@ TaskAttacher::~TaskAttacher() connectDelObject.disconnect(); connectDelDocument.disconnect(); - delete ui; } void TaskAttacher::objectDeleted(const Gui::ViewProviderDocumentObject& view) diff --git a/src/Mod/Part/Gui/TaskAttacher.h b/src/Mod/Part/Gui/TaskAttacher.h index ee1a4a3abc..bdbaa9ad90 100644 --- a/src/Mod/Part/Gui/TaskAttacher.h +++ b/src/Mod/Part/Gui/TaskAttacher.h @@ -130,7 +130,7 @@ protected: private: QWidget* proxy; - Ui_TaskAttacher* ui; + std::unique_ptr ui; VisibilityFunction visibilityFunc; // TODO fix documentation here (2015-11-10, Fat-Zer)