diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index b9db9807174..58b36f40ad8 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -1073,7 +1073,7 @@ bool LanguageFilter::operator!=(const LanguageFilter &other) const return this->filePattern != other.filePattern || this->mimeTypes != other.mimeTypes; } -TextEditor::BaseTextEditor *jsonEditor() +TextEditor::BaseTextEditor *createJsonEditor(QObject *parent) { using namespace TextEditor; using namespace Utils::Text; @@ -1085,6 +1085,8 @@ TextEditor::BaseTextEditor *jsonEditor() delete editor; } QTC_ASSERT(textEditor, textEditor = createPlainTextEditor()); + textEditor->setParent(parent); + TextDocument *document = textEditor->textDocument(); TextEditorWidget *widget = textEditor->editorWidget(); widget->configureGenericHighlighter(mimeTypeForName(Utils::Constants::JSON_MIMETYPE)); @@ -1162,7 +1164,7 @@ public: setGlobalSettingsId(Constants::LANGUAGECLIENT_SETTINGS_PAGE); setExpanding(true); - TextEditor::BaseTextEditor *editor = jsonEditor(); + TextEditor::BaseTextEditor *editor = createJsonEditor(this); editor->document()->setContents(m_settings.json()); auto layout = new QVBoxLayout; diff --git a/src/plugins/languageclient/languageclientsettings.h b/src/plugins/languageclient/languageclientsettings.h index a6055577bc3..48e26cc2bab 100644 --- a/src/plugins/languageclient/languageclientsettings.h +++ b/src/plugins/languageclient/languageclientsettings.h @@ -212,7 +212,7 @@ private: QByteArray m_json; }; -LANGUAGECLIENT_EXPORT TextEditor::BaseTextEditor *jsonEditor(); +LANGUAGECLIENT_EXPORT TextEditor::BaseTextEditor *createJsonEditor(QObject *parent = nullptr); void setupLanguageClientProjectPanel(); diff --git a/src/plugins/languageclient/lspinspector.cpp b/src/plugins/languageclient/lspinspector.cpp index 1d5cba622c7..b23f16c2b5e 100644 --- a/src/plugins/languageclient/lspinspector.cpp +++ b/src/plugins/languageclient/lspinspector.cpp @@ -462,8 +462,7 @@ LspInspectorWidget::LspInspectorWidget(LspInspector *inspector) currentClientChanged(m_clients->currentText()); }); - TextEditor::BaseTextEditor *messageEditor = LanguageClient::jsonEditor(); - messageEditor->setParent(this); + TextEditor::BaseTextEditor *messageEditor = LanguageClient::createJsonEditor(this); messageEditor->editorWidget()->setVisible(false); messageEditor->document()->setContents(R"({ "jsonrpc": "2.0", diff --git a/src/plugins/python/pythonsettings.cpp b/src/plugins/python/pythonsettings.cpp index bfc411c6c2f..9e0fd837d9c 100644 --- a/src/plugins/python/pythonsettings.cpp +++ b/src/plugins/python/pythonsettings.cpp @@ -412,13 +412,11 @@ class PyLSConfigureWidget : public Core::IOptionsPageWidget { public: PyLSConfigureWidget() - : m_editor(LanguageClient::jsonEditor()) + : m_editor(LanguageClient::createJsonEditor(this)) , m_advancedLabel(new QLabel) , m_pluginsGroup(new QGroupBox(Tr::tr("Plugins:"))) , m_mainGroup(new QGroupBox(Tr::tr("Use Python Language Server"))) - { - m_editor->setParent(this); m_mainGroup->setCheckable(true); auto mainGroupLayout = new QVBoxLayout;