diff --git a/src/plugins/languageclient/languageclientoutline.cpp b/src/plugins/languageclient/languageclientoutline.cpp index ee0c2074034..bddb300fe23 100644 --- a/src/plugins/languageclient/languageclientoutline.cpp +++ b/src/plugins/languageclient/languageclientoutline.cpp @@ -274,15 +274,12 @@ private: const DocumentUri m_uri; }; -Utils::TreeViewComboBox *LanguageClientOutlineWidgetFactory::createComboBox(Client *client, - Core::IEditor *editor) +Utils::TreeViewComboBox *LanguageClientOutlineWidgetFactory::createComboBox( + Client *client, TextEditor::BaseTextEditor *editor) { - auto textEditor = qobject_cast(editor); - QTC_ASSERT(textEditor, return nullptr); - if (!client || !client->supportsDocumentSymbols(textEditor->textDocument())) - return nullptr; - - return new OutlineComboBox(client, textEditor); + if (client && client->supportsDocumentSymbols(editor->textDocument())) + return new OutlineComboBox(client, editor); + return nullptr; } OutlineComboBox::OutlineComboBox(Client *client, TextEditor::BaseTextEditor *editor) diff --git a/src/plugins/languageclient/languageclientoutline.h b/src/plugins/languageclient/languageclientoutline.h index 59a2fc70e72..d4ed8f89601 100644 --- a/src/plugins/languageclient/languageclientoutline.h +++ b/src/plugins/languageclient/languageclientoutline.h @@ -27,7 +27,10 @@ #include -namespace TextEditor { class TextDocument; } +namespace TextEditor { +class TextDocument; +class BaseTextEditor; +} // namespace TextEditor namespace Utils { class TreeViewComboBox; } namespace LanguageClient { @@ -39,7 +42,7 @@ class LanguageClientOutlineWidgetFactory : public TextEditor::IOutlineWidgetFact public: using IOutlineWidgetFactory::IOutlineWidgetFactory; - static Utils::TreeViewComboBox *createComboBox(Client *client, Core::IEditor *editor); + static Utils::TreeViewComboBox *createComboBox(Client *client, TextEditor::BaseTextEditor *editor); // IOutlineWidgetFactory interface public: bool supportsEditor(Core::IEditor *editor) const override; diff --git a/src/plugins/languageclient/languageclientutils.cpp b/src/plugins/languageclient/languageclientutils.cpp index 557f2f0f1cb..207b5623d28 100644 --- a/src/plugins/languageclient/languageclientutils.cpp +++ b/src/plugins/languageclient/languageclientutils.cpp @@ -288,10 +288,11 @@ void updateEditorToolBar(Core::IEditor *editor) } if (!extras->m_client) { - if (QWidget *comboBox = LanguageClientOutlineWidgetFactory::createComboBox(client, editor)) { + QWidget *comboBox = LanguageClientOutlineWidgetFactory::createComboBox(client, textEditor); + if (comboBox) { extras->m_client = client; extras->m_outlineAction = widget->insertExtraToolBarWidget(TextEditorWidget::Left, - comboBox); + comboBox); } } }