From 381bfd623c4068732c889729f76e8d554af20e8c Mon Sep 17 00:00:00 2001 From: Knud Dollereder Date: Thu, 3 Feb 2022 14:51:57 +0100 Subject: [PATCH] Remove ToolBarWidgetFactoryInterface from WidgetInfo Since it is sometimes created with new but never used, it leaked memory. Change-Id: I5adfb71f9c773be37c1cefc619236bad9f34aad1 Reviewed-by: Reviewed-by: Thomas Hartmann --- .../connectioneditor/connectionview.cpp | 1 - .../curveeditor/curveeditorview.cpp | 2 +- .../components/debugview/debugview.cpp | 2 +- .../components/edit3d/edit3dview.cpp | 2 +- .../components/formeditor/formeditorview.cpp | 2 +- .../itemlibrary/itemlibraryview.cpp | 1 - .../components/navigator/navigatorview.cpp | 1 - .../propertyeditor/propertyeditorview.cpp | 2 +- .../stateseditor/stateseditorview.cpp | 2 +- .../components/texteditor/texteditorview.cpp | 2 +- .../timelineeditor/timelineview.cpp | 1 - .../transitioneditor/transitioneditorview.cpp | 1 - .../designercore/include/abstractview.h | 26 ---------------- .../designercore/model/abstractview.cpp | 2 -- src/plugins/qmldesigner/designmodewidget.cpp | 31 ------------------- 15 files changed, 7 insertions(+), 71 deletions(-) diff --git a/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp b/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp index 6737d66d18d..9b5716da111 100644 --- a/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp +++ b/src/plugins/qmldesigner/components/connectioneditor/connectionview.cpp @@ -207,7 +207,6 @@ void ConnectionView::importsChanged(const QList & /*addedImports*/, cons WidgetInfo ConnectionView::widgetInfo() { return createWidgetInfo(m_connectionViewWidget.data(), - new WidgetInfo::ToolBarWidgetDefaultFactory(connectionViewWidget()), QLatin1String("ConnectionView"), WidgetInfo::LeftPane, 0, diff --git a/src/plugins/qmldesigner/components/curveeditor/curveeditorview.cpp b/src/plugins/qmldesigner/components/curveeditor/curveeditorview.cpp index bddb6536c7c..a6c228ccbc9 100644 --- a/src/plugins/qmldesigner/components/curveeditor/curveeditorview.cpp +++ b/src/plugins/qmldesigner/components/curveeditor/curveeditorview.cpp @@ -70,7 +70,7 @@ bool CurveEditorView::hasWidget() const WidgetInfo CurveEditorView::widgetInfo() { return createWidgetInfo( - m_editor, nullptr, "CurveEditorId", WidgetInfo::BottomPane, 0, tr("CurveEditor")); + m_editor, "CurveEditorId", WidgetInfo::BottomPane, 0, tr("CurveEditor")); } void CurveEditorView::modelAttached(Model *model) diff --git a/src/plugins/qmldesigner/components/debugview/debugview.cpp b/src/plugins/qmldesigner/components/debugview/debugview.cpp index 62626b89cd7..cb42996b129 100644 --- a/src/plugins/qmldesigner/components/debugview/debugview.cpp +++ b/src/plugins/qmldesigner/components/debugview/debugview.cpp @@ -355,7 +355,7 @@ void DebugView::rewriterEndTransaction() WidgetInfo DebugView::widgetInfo() { - return createWidgetInfo(m_debugViewWidget.data(), nullptr, QStringLiteral("DebugView"), WidgetInfo::LeftPane, 0, tr("Debug View")); + return createWidgetInfo(m_debugViewWidget.data(), QStringLiteral("DebugView"), WidgetInfo::LeftPane, 0, tr("Debug View")); } bool DebugView::hasWidget() const diff --git a/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp b/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp index 8e6d75efc37..3981be8280a 100644 --- a/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp +++ b/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp @@ -83,7 +83,7 @@ WidgetInfo Edit3DView::widgetInfo() if (!m_edit3DWidget) createEdit3DWidget(); - return createWidgetInfo(m_edit3DWidget.data(), nullptr, "Editor3D", WidgetInfo::CentralPane, 0, tr("3D Editor"), DesignerWidgetFlags::IgnoreErrors); + return createWidgetInfo(m_edit3DWidget.data(), "Editor3D", WidgetInfo::CentralPane, 0, tr("3D Editor"), DesignerWidgetFlags::IgnoreErrors); } Edit3DWidget *Edit3DView::edit3DWidget() const diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index 22fa6b8a5ac..99e2013e516 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -361,7 +361,7 @@ WidgetInfo FormEditorView::widgetInfo() if (!m_formEditorWidget) createFormEditorWidget(); - return createWidgetInfo(m_formEditorWidget.data(), nullptr, "FormEditor", WidgetInfo::CentralPane, 0, tr("Form Editor"), DesignerWidgetFlags::IgnoreErrors); + return createWidgetInfo(m_formEditorWidget.data(), "FormEditor", WidgetInfo::CentralPane, 0, tr("Form Editor"), DesignerWidgetFlags::IgnoreErrors); } FormEditorWidget *FormEditorView::formEditorWidget() diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp index 151be411ad1..e8cdb4dcd07 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp @@ -104,7 +104,6 @@ WidgetInfo ItemLibraryView::widgetInfo() } return createWidgetInfo(m_widget.data(), - new WidgetInfo::ToolBarWidgetDefaultFactory(m_widget.data()), QStringLiteral("Library"), WidgetInfo::LeftPane, 0, diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp index b1b12da2e0c..606089f6319 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp @@ -132,7 +132,6 @@ WidgetInfo NavigatorView::widgetInfo() setupWidget(); return createWidgetInfo(m_widget.data(), - new WidgetInfo::ToolBarWidgetDefaultFactory(m_widget.data()), QStringLiteral("Navigator"), WidgetInfo::LeftPane, 0, diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp index 3bdfb903c84..5ea8e9ec652 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp @@ -795,7 +795,7 @@ bool PropertyEditorView::hasWidget() const WidgetInfo PropertyEditorView::widgetInfo() { - return createWidgetInfo(m_stackedWidget, nullptr, QStringLiteral("Properties"), WidgetInfo::RightPane, 0, tr("Properties")); + return createWidgetInfo(m_stackedWidget, QStringLiteral("Properties"), WidgetInfo::RightPane, 0, tr("Properties")); } void PropertyEditorView::currentStateChanged(const ModelNode &node) diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp index cf1f3771412..001d356516b 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp @@ -77,7 +77,7 @@ WidgetInfo StatesEditorView::widgetInfo() if (!m_statesEditorWidget) m_statesEditorWidget = new StatesEditorWidget(this, m_statesEditorModel.data()); - return createWidgetInfo(m_statesEditorWidget.data(), nullptr, QLatin1String("StatesEditor"), WidgetInfo::BottomPane, 0, tr("States")); + return createWidgetInfo(m_statesEditorWidget.data(), QLatin1String("StatesEditor"), WidgetInfo::BottomPane, 0, tr("States")); } void StatesEditorView::rootNodeTypeChanged(const QString &/*type*/, int /*majorVersion*/, int /*minorVersion*/) diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp index e3a870f9801..30fcb8981c2 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp +++ b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp @@ -149,7 +149,7 @@ void TextEditorView::nodeReparented(const ModelNode &/*node*/, const NodeAbstrac WidgetInfo TextEditorView::widgetInfo() { - return createWidgetInfo(m_widget, nullptr, "TextEditor", WidgetInfo::CentralPane, 0, tr("Text Editor"), DesignerWidgetFlags::IgnoreErrors); + return createWidgetInfo(m_widget, "TextEditor", WidgetInfo::CentralPane, 0, tr("Text Editor"), DesignerWidgetFlags::IgnoreErrors); } void TextEditorView::contextHelp(const Core::IContext::HelpCallback &callback) const diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp index a8b20f83801..8c53866c1ad 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp @@ -669,7 +669,6 @@ TimelineWidget *TimelineView::createWidget() WidgetInfo TimelineView::widgetInfo() { return createWidgetInfo(createWidget(), - nullptr, QStringLiteral("Timelines"), WidgetInfo::BottomPane, 0, diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp index ccf84152b57..09eb2620943 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp @@ -323,7 +323,6 @@ TransitionEditorWidget *TransitionEditorView::createWidget() WidgetInfo TransitionEditorView::widgetInfo() { return createWidgetInfo(createWidget(), - nullptr, "TransitionEditor", WidgetInfo::BottomPane, 0, diff --git a/src/plugins/qmldesigner/designercore/include/abstractview.h b/src/plugins/qmldesigner/designercore/include/abstractview.h index 3908844dea4..89ccb2845fd 100644 --- a/src/plugins/qmldesigner/designercore/include/abstractview.h +++ b/src/plugins/qmldesigner/designercore/include/abstractview.h @@ -70,30 +70,6 @@ enum DesignerWidgetFlags { class WidgetInfo { public: - class ToolBarWidgetFactoryInterface { - public: - ToolBarWidgetFactoryInterface() = default; - - virtual QList createToolBarWidgets() = 0; - - virtual ~ToolBarWidgetFactoryInterface() = default; - }; - - template - class ToolBarWidgetDefaultFactory : public ToolBarWidgetFactoryInterface { - public: - ToolBarWidgetDefaultFactory(T *t ) : m_t(t) - {} - - QList createToolBarWidgets() override - { - return m_t->createToolBarWidgets(); - } - - private: - T * m_t; - }; - enum PlacementHint { NoPane, LeftPane, @@ -108,7 +84,6 @@ public: QWidget *widget = nullptr; int placementPriority; PlacementHint placementHint; - ToolBarWidgetFactoryInterface *toolBarWidgetFactory = nullptr; DesignerWidgetFlags widgetFlags = DesignerWidgetFlags::DisableOnError; }; @@ -311,7 +286,6 @@ protected: void setModel(Model * model); void removeModel(); static WidgetInfo createWidgetInfo(QWidget *widget = nullptr, - WidgetInfo::ToolBarWidgetFactoryInterface *toolBarWidgetFactory = nullptr, const QString &uniqueId = QString(), WidgetInfo::PlacementHint placementHint = WidgetInfo::NoPane, int placementPriority = 0, diff --git a/src/plugins/qmldesigner/designercore/model/abstractview.cpp b/src/plugins/qmldesigner/designercore/model/abstractview.cpp index 6ef3c6d5d61..27f3298125b 100644 --- a/src/plugins/qmldesigner/designercore/model/abstractview.cpp +++ b/src/plugins/qmldesigner/designercore/model/abstractview.cpp @@ -129,7 +129,6 @@ void AbstractView::removeModel() } WidgetInfo AbstractView::createWidgetInfo(QWidget *widget, - WidgetInfo::ToolBarWidgetFactoryInterface *toolBarWidgetFactory, const QString &uniqueId, WidgetInfo::PlacementHint placementHint, int placementPriority, @@ -139,7 +138,6 @@ WidgetInfo AbstractView::createWidgetInfo(QWidget *widget, WidgetInfo widgetInfo; widgetInfo.widget = widget; - widgetInfo.toolBarWidgetFactory = toolBarWidgetFactory; widgetInfo.uniqueId = uniqueId; widgetInfo.placementHint = placementHint; widgetInfo.placementPriority = placementPriority; diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 584933494b5..25de59b3c06 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -110,37 +110,6 @@ QList ItemLibrarySideBarItem::createToolBarWidgets() return qobject_cast(widget())->createToolBarWidgets(); } -class DesignerSideBarItem : public Core::SideBarItem -{ -public: - explicit DesignerSideBarItem(QWidget *widget, WidgetInfo::ToolBarWidgetFactoryInterface *createToolBarWidgets, const QString &id); - ~DesignerSideBarItem() override; - - QList createToolBarWidgets() override; - -private: - WidgetInfo::ToolBarWidgetFactoryInterface *m_toolBarWidgetFactory; - -}; - -DesignerSideBarItem::DesignerSideBarItem(QWidget *widget, WidgetInfo::ToolBarWidgetFactoryInterface *toolBarWidgetFactory, const QString &id) - : Core::SideBarItem(widget, id) , m_toolBarWidgetFactory(toolBarWidgetFactory) -{ -} - -DesignerSideBarItem::~DesignerSideBarItem() -{ - delete m_toolBarWidgetFactory; -} - -QList DesignerSideBarItem::createToolBarWidgets() -{ - if (m_toolBarWidgetFactory) - return m_toolBarWidgetFactory->createToolBarWidgets(); - - return QList(); -} - // ---------- DesignModeWidget DesignModeWidget::DesignModeWidget() : m_toolBar(new Core::EditorToolBar(this))