From 31e97d5069874bf974a2ba5c60ed9d5a195513f8 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 12 Mar 2024 10:52:19 +0100 Subject: [PATCH] ClangFormat: Don't leak editor Amends e1f7469afb32efa51d665c9211767b214cd93573 Change-Id: I862bca5a57d818e8b813d557fa7c3a4e3690dcd2 Reviewed-by: Christian Kandeler --- src/plugins/clangformat/clangformatconfigwidget.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/plugins/clangformat/clangformatconfigwidget.cpp b/src/plugins/clangformat/clangformatconfigwidget.cpp index 9adf94cafc1..e9f49a5eeec 100644 --- a/src/plugins/clangformat/clangformatconfigwidget.cpp +++ b/src/plugins/clangformat/clangformatconfigwidget.cpp @@ -101,7 +101,7 @@ private: QWidget *m_editorWidget = nullptr; QScrollArea *m_editorScrollArea = nullptr; TextEditor::SnippetEditorWidget *m_preview = nullptr; - Core::IEditor *m_editor = nullptr; + std::unique_ptr m_editor; std::unique_ptr m_config; @@ -156,8 +156,7 @@ ClangFormatConfigWidget::ClangFormatConfigWidget(TextEditor::ICodeStylePreferenc updatePreview(); } -void ClangFormatConfigWidget::slotCodeStyleChanged( - TextEditor::ICodeStylePreferences *codeStyle) +void ClangFormatConfigWidget::slotCodeStyleChanged(TextEditor::ICodeStylePreferences *codeStyle) { if (!codeStyle) return; @@ -177,7 +176,7 @@ void ClangFormatConfigWidget::initEditor(TextEditor::ICodeStylePreferences *code Core::EditorFactories factories = Core::IEditorFactory::preferredEditorTypes( m_config->filePath()); Core::IEditorFactory *factory = factories.takeFirst(); - m_editor = factory->createEditor(); + m_editor.reset(factory->createEditor()); QString errorString; m_editor->document()->open(&errorString, m_config->filePath(), m_config->filePath()); @@ -186,7 +185,7 @@ void ClangFormatConfigWidget::initEditor(TextEditor::ICodeStylePreferences *code invokeMethodForLanguageClientManager("documentOpened", Q_ARG(Core::IDocument *, m_editor->document())); invokeMethodForLanguageClientManager("editorOpened", - Q_ARG(Core::IEditor *, m_editor)); + Q_ARG(Core::IEditor *, m_editor.get())); m_editorWidget = m_editor->widget(); m_editorWidget->setEnabled(!codeStyle->isReadOnly() && !codeStyle->isTemporarilyReadOnly() @@ -221,7 +220,7 @@ void ClangFormatConfigWidget::initEditor(TextEditor::ICodeStylePreferences *code QShortcut *completionSC = new QShortcut(QKeySequence("Ctrl+Space"), this); connect(completionSC, &QShortcut::activated, this, [this] { - if (auto *editor = qobject_cast(m_editor)) + if (auto *editor = qobject_cast(m_editor.get())) editor->editorWidget()->invokeAssist(TextEditor::Completion); });