From 2c40765e86de65d93ccfcb6fd10f8f256bd6acaa Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 3 Jul 2024 14:55:42 +0200 Subject: [PATCH] Core: Add a static IContext::attach() function ... to simplify the user code. Some, but not all, potential beneficiaries are adapted. Change-Id: Ia7d514a0114a4f99f8ee745523435f5b990bd095 Reviewed-by: Eike Ziller --- src/plugins/autotest/testtreeview.cpp | 8 ++------ src/plugins/autotest/testtreeview.h | 7 ------- src/plugins/coreplugin/editmode.cpp | 8 ++------ src/plugins/coreplugin/editormanager/editorarea.cpp | 8 +------- src/plugins/coreplugin/editormanager/editorarea.h | 10 ++-------- src/plugins/coreplugin/find/findplugin.cpp | 5 +---- src/plugins/coreplugin/foldernavigationwidget.cpp | 5 +---- src/plugins/coreplugin/icontext.cpp | 13 +++++++++++++ src/plugins/coreplugin/icontext.h | 4 ++++ src/plugins/coreplugin/ioutputpane.h | 2 -- src/plugins/coreplugin/outputpanemanager.cpp | 6 +----- src/plugins/coreplugin/outputwindow.cpp | 5 +---- src/plugins/coreplugin/windowsupport.cpp | 5 +---- src/plugins/coreplugin/windowsupport.h | 1 - src/plugins/debugger/debuggerplugin.cpp | 5 +---- src/plugins/diffeditor/diffeditor.cpp | 5 +---- .../diffeditor/sidebysidediffeditorwidget.cpp | 6 ++---- src/plugins/diffeditor/unifieddiffeditorwidget.cpp | 5 +---- src/plugins/projectexplorer/projecttreewidget.cpp | 5 +---- .../bindingeditor/bindingeditorwidget.cpp | 6 +----- .../components/bindingeditor/bindingeditorwidget.h | 1 - src/plugins/scxmleditor/scxmleditor.cpp | 6 +----- src/plugins/squish/squishtesttreeview.cpp | 6 +----- src/plugins/squish/squishtesttreeview.h | 3 --- src/plugins/studiowelcome/studiowelcomeplugin.cpp | 5 +---- src/plugins/terminal/terminalwidget.cpp | 6 ++---- src/plugins/texteditor/bookmarkmanager.cpp | 7 +------ src/plugins/texteditor/markdowneditor.cpp | 6 ++---- 28 files changed, 44 insertions(+), 115 deletions(-) diff --git a/src/plugins/autotest/testtreeview.cpp b/src/plugins/autotest/testtreeview.cpp index 8270e5bb07d..baf96721493 100644 --- a/src/plugins/autotest/testtreeview.cpp +++ b/src/plugins/autotest/testtreeview.cpp @@ -7,19 +7,15 @@ #include "testtreemodel.h" #include -#include namespace Autotest { namespace Internal { TestTreeView::TestTreeView(QWidget *parent) - : NavigationTreeView(parent), - m_context(new Core::IContext(this)) + : NavigationTreeView(parent) { setExpandsOnDoubleClick(false); - m_context->setWidget(this); - m_context->setContext(Core::Context(Constants::AUTOTEST_CONTEXT)); - Core::ICore::addContextObject(m_context); + Core::IContext::attach(this, Core::Context(Constants::AUTOTEST_CONTEXT)); } static void changeCheckStateAll(const Qt::CheckState checkState) diff --git a/src/plugins/autotest/testtreeview.h b/src/plugins/autotest/testtreeview.h index cfe538a32ea..5c1016712ff 100644 --- a/src/plugins/autotest/testtreeview.h +++ b/src/plugins/autotest/testtreeview.h @@ -5,10 +5,6 @@ #include -namespace Core { -class IContext; -} - namespace Autotest { namespace Internal { @@ -21,9 +17,6 @@ public: void selectAll() override; void deselectAll(); - -private: - Core::IContext *m_context; }; } // namespace Internal diff --git a/src/plugins/coreplugin/editmode.cpp b/src/plugins/coreplugin/editmode.cpp index 684170a9cba..d5d396bdf1b 100644 --- a/src/plugins/coreplugin/editmode.cpp +++ b/src/plugins/coreplugin/editmode.cpp @@ -66,14 +66,10 @@ EditMode::EditMode() : this, &EditMode::grabEditorManager); m_splitter->setFocusProxy(editorPlaceHolder); - auto modeContextObject = new IContext(this); - modeContextObject->setContext(Context(Constants::C_EDITORMANAGER)); - modeContextObject->setWidget(m_splitter); - ICore::addContextObject(modeContextObject); + IContext::attach(m_splitter, Context(Constants::C_EDITORMANAGER)); setWidget(m_splitter); - setContext(Context(Constants::C_EDIT_MODE, - Constants::C_NAVIGATION_PANE)); + setContext(Context(Constants::C_EDIT_MODE, Constants::C_NAVIGATION_PANE)); } EditMode::~EditMode() diff --git a/src/plugins/coreplugin/editormanager/editorarea.cpp b/src/plugins/coreplugin/editormanager/editorarea.cpp index cb311320cde..6101289b889 100644 --- a/src/plugins/coreplugin/editormanager/editorarea.cpp +++ b/src/plugins/coreplugin/editormanager/editorarea.cpp @@ -8,7 +8,6 @@ #include "../coreconstants.h" #include "../icontext.h" -#include "../icore.h" #include "../idocument.h" #include @@ -20,10 +19,7 @@ namespace Internal { EditorArea::EditorArea() { - m_context = new IContext; - m_context->setContext(Context(Constants::C_EDITORMANAGER)); - m_context->setWidget(this); - ICore::addContextObject(m_context); + IContext::attach(this, Context(Constants::C_EDITORMANAGER)); setCurrentView(view()); updateCloseSplitButton(); @@ -39,8 +35,6 @@ EditorArea::~EditorArea() setCurrentView(nullptr); disconnect(qApp, &QApplication::focusChanged, this, &EditorArea::focusChanged); - - delete m_context; } IDocument *EditorArea::currentDocument() const diff --git a/src/plugins/coreplugin/editormanager/editorarea.h b/src/plugins/coreplugin/editormanager/editorarea.h index f4cc6e62c2f..0611820a29f 100644 --- a/src/plugins/coreplugin/editormanager/editorarea.h +++ b/src/plugins/coreplugin/editormanager/editorarea.h @@ -7,11 +7,7 @@ #include -namespace Core { - -class IContext; - -namespace Internal { +namespace Core::Internal { class EditorArea : public SplitterOrView { @@ -35,10 +31,8 @@ private: void updateCloseSplitButton(); void hideEvent(QHideEvent *) override; - IContext *m_context; QPointer m_currentView; QPointer m_currentDocument; }; -} // Internal -} // Core +} // Core::Internal diff --git a/src/plugins/coreplugin/find/findplugin.cpp b/src/plugins/coreplugin/find/findplugin.cpp index 56042cb478c..7fbd37dc2ab 100644 --- a/src/plugins/coreplugin/find/findplugin.cpp +++ b/src/plugins/coreplugin/find/findplugin.cpp @@ -247,10 +247,7 @@ void Find::initialize() d->m_currentDocumentFind = new Internal::CurrentDocumentFind; d->m_findToolBar = new Internal::FindToolBar(d->m_currentDocumentFind); - auto *findToolBarContext = new IContext(m_instance); - findToolBarContext->setWidget(d->m_findToolBar); - findToolBarContext->setContext(Context(Constants::C_FINDTOOLBAR)); - ICore::addContextObject(findToolBarContext); + IContext::attach(d->m_findToolBar, Context(Constants::C_FINDTOOLBAR)); d->m_findDialog = new Internal::FindToolWindow; d->m_searchResultWindow = new SearchResultWindow(d->m_findDialog); diff --git a/src/plugins/coreplugin/foldernavigationwidget.cpp b/src/plugins/coreplugin/foldernavigationwidget.cpp index fb1076349fd..8afb302ee83 100644 --- a/src/plugins/coreplugin/foldernavigationwidget.cpp +++ b/src/plugins/coreplugin/foldernavigationwidget.cpp @@ -256,10 +256,7 @@ FolderNavigationWidget::FolderNavigationWidget(QWidget *parent) : QWidget(parent m_crumbContainer(new QWidget(this)), m_crumbLabel(new DelayedFileCrumbLabel(this)) { - auto context = new IContext(this); - context->setContext(Context(C_FOLDERNAVIGATIONWIDGET)); - context->setWidget(this); - ICore::addContextObject(context); + IContext::attach(this, Context(C_FOLDERNAVIGATIONWIDGET)); setBackgroundRole(QPalette::Base); setAutoFillBackground(true); diff --git a/src/plugins/coreplugin/icontext.cpp b/src/plugins/coreplugin/icontext.cpp index 6dc99400f14..d924dc3058b 100644 --- a/src/plugins/coreplugin/icontext.cpp +++ b/src/plugins/coreplugin/icontext.cpp @@ -3,9 +3,21 @@ #include "icontext.h" +#include "icore.h" + #include namespace Core { + +void IContext::attach(QWidget *widget, const Context &context, const HelpItem &help) +{ + auto icontext = new IContext(widget); // As QObject parent. + icontext->setContext(context); + icontext->setWidget(widget); + icontext->setContextHelp(help); + ICore::addContextObject(icontext); +} + QDebug operator<<(QDebug debug, const Core::Context &context) { debug.nospace() << "Context("; @@ -23,6 +35,7 @@ QDebug operator<<(QDebug debug, const Core::Context &context) return debug; } + } // namespace Core /*! diff --git a/src/plugins/coreplugin/icontext.h b/src/plugins/coreplugin/icontext.h index b1a05276e40..45d53ccddcb 100644 --- a/src/plugins/coreplugin/icontext.h +++ b/src/plugins/coreplugin/icontext.h @@ -60,6 +60,10 @@ public: virtual void setWidget(QWidget *widget) { m_widget = widget; } virtual void setContextHelp(const HelpItem &id) { m_contextHelp = id; } + static void attach(QWidget *widget, + const Context &context, + const HelpItem &contextHelp = {}); + friend CORE_EXPORT QDebug operator<<(QDebug debug, const Core::Context &context); protected: diff --git a/src/plugins/coreplugin/ioutputpane.h b/src/plugins/coreplugin/ioutputpane.h index 18cf530005d..76d196a382f 100644 --- a/src/plugins/coreplugin/ioutputpane.h +++ b/src/plugins/coreplugin/ioutputpane.h @@ -87,8 +87,6 @@ protected: void setupContext(const Context &context, QWidget *widget); void setZoomButtonsEnabled(bool enabled); - IContext *m_context = nullptr; - private: virtual void updateFilter(); diff --git a/src/plugins/coreplugin/outputpanemanager.cpp b/src/plugins/coreplugin/outputpanemanager.cpp index a36b55a9021..0b141df46e9 100644 --- a/src/plugins/coreplugin/outputpanemanager.cpp +++ b/src/plugins/coreplugin/outputpanemanager.cpp @@ -224,11 +224,7 @@ void IOutputPane::setupContext(const char *context, QWidget *widget) void IOutputPane::setupContext(const Context &context, QWidget *widget) { - QTC_ASSERT(!m_context, return); - m_context = new IContext(this); - m_context->setContext(context); - m_context->setWidget(widget); - ICore::addContextObject(m_context); + IContext::attach(widget, context); ActionBuilder(this, Constants::ZOOM_IN) .setContext(context) diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp index 4183a8457ca..9bf8b35e095 100644 --- a/src/plugins/coreplugin/outputwindow.cpp +++ b/src/plugins/coreplugin/outputwindow.cpp @@ -98,10 +98,7 @@ OutputWindow::OutputWindow(Context context, const Key &settingsKey, QWidget *par d->settingsKey = settingsKey; - auto outputWindowContext = new IContext(this); - outputWindowContext->setContext(context); - outputWindowContext->setWidget(this); - ICore::addContextObject(outputWindowContext); + IContext::attach(this, context); auto undoAction = new QAction(this); auto redoAction = new QAction(this); diff --git a/src/plugins/coreplugin/windowsupport.cpp b/src/plugins/coreplugin/windowsupport.cpp index e166b573401..bd4a236b9c6 100644 --- a/src/plugins/coreplugin/windowsupport.cpp +++ b/src/plugins/coreplugin/windowsupport.cpp @@ -34,10 +34,7 @@ WindowSupport::WindowSupport(QWidget *window, const Context &context, const Cont { m_window->installEventFilter(this); - m_contextObject = new IContext(this); - m_contextObject->setWidget(window); - m_contextObject->setContext(context); - ICore::addContextObject(m_contextObject); + IContext::attach(window, context); const Context ac = actionContext.isEmpty() ? context : actionContext; if (useMacShortcuts) { diff --git a/src/plugins/coreplugin/windowsupport.h b/src/plugins/coreplugin/windowsupport.h index 8b7eb026afd..a845a38e43b 100644 --- a/src/plugins/coreplugin/windowsupport.h +++ b/src/plugins/coreplugin/windowsupport.h @@ -54,7 +54,6 @@ private: void updateFullScreenAction(); QWidget *m_window; - IContext *m_contextObject; QAction *m_minimizeAction; QAction *m_zoomAction; QAction *m_closeAction; diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 527c6649209..71b4f4051bb 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -683,7 +683,6 @@ public: QStringList m_arguments; QList m_optionPages; - IContext m_debugModeContext; Perspective m_perspective{Constants::PRESET_PERSPECTIVE_ID, Tr::tr("Debugger")}; Perspective m_perspectiveDap{Constants::DAP_PERSPECTIVE_ID, Tr::tr("DAP")}; @@ -1165,9 +1164,7 @@ DebuggerPluginPrivate::DebuggerPluginPrivate(const QStringList &arguments) // Debug mode setup m_mode = new DebugMode; - m_debugModeContext.setContext(Context(CC::C_EDITORMANAGER)); - m_debugModeContext.setWidget(m_mode->widget()); - ICore::addContextObject(&m_debugModeContext); + IContext::attach(m_mode->widget(), Context(CC::C_EDITORMANAGER)); // // Connections diff --git a/src/plugins/diffeditor/diffeditor.cpp b/src/plugins/diffeditor/diffeditor.cpp index 593be406389..72e42c5a703 100644 --- a/src/plugins/diffeditor/diffeditor.cpp +++ b/src/plugins/diffeditor/diffeditor.cpp @@ -88,10 +88,7 @@ DescriptionEditorWidget::DescriptionEditorWidget(QWidget *parent) setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - auto context = new IContext(this); - context->setWidget(this); - context->setContext(Context(Constants::C_DIFF_EDITOR_DESCRIPTION)); - ICore::addContextObject(context); + IContext::attach(this, Context(Constants::C_DIFF_EDITOR_DESCRIPTION)); textDocument()->resetSyntaxHighlighter([] { return new SyntaxHighlighter(); }); } diff --git a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp index 65fde112c36..1013adc9e94 100644 --- a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp +++ b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp @@ -716,10 +716,8 @@ SideBySideDiffEditorWidget::SideBySideDiffEditorWidget(QWidget *parent) connect(m_editor[side]->horizontalScrollBar(), &QAbstractSlider::rangeChanged, this, &SideBySideDiffEditorWidget::syncHorizontalScrollBarPolicy); - auto context = new IContext(this); - context->setWidget(m_editor[side]); - context->setContext(Context(Id(Constants::SIDE_BY_SIDE_VIEW_ID).withSuffix(side + 1))); - ICore::addContextObject(context); + IContext::attach(m_editor[side], + Context(Id(Constants::SIDE_BY_SIDE_VIEW_ID).withSuffix(side + 1))); }; setupEditor(LeftSide); setupEditor(RightSide); diff --git a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp index 0b34db53d97..2a9e04ba90b 100644 --- a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp +++ b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp @@ -43,10 +43,7 @@ UnifiedDiffEditorWidget::UnifiedDiffEditorWidget(QWidget *parent) connect(this, &QPlainTextEdit::cursorPositionChanged, this, &UnifiedDiffEditorWidget::slotCursorPositionChangedInEditor); - auto context = new IContext(this); - context->setWidget(this); - context->setContext(Context(Constants::UNIFIED_VIEW_ID)); - ICore::addContextObject(context); + IContext::attach(this, Context(Constants::UNIFIED_VIEW_ID)); } UnifiedDiffEditorWidget::~UnifiedDiffEditorWidget() = default; diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp index 8858d2252ce..e1797a8d495 100644 --- a/src/plugins/projectexplorer/projecttreewidget.cpp +++ b/src/plugins/projectexplorer/projecttreewidget.cpp @@ -142,11 +142,8 @@ public: setDragDropMode(QAbstractItemView::DragDrop); viewport()->setAcceptDrops(true); setDropIndicatorShown(true); - auto context = new IContext(this); - context->setContext(Context(ProjectExplorer::Constants::C_PROJECT_TREE)); - context->setWidget(this); - ICore::addContextObject(context); + IContext::attach(this, Context(ProjectExplorer::Constants::C_PROJECT_TREE)); connect(this, &ProjectTreeView::expanded, this, &ProjectTreeView::invalidateSize); diff --git a/src/plugins/qmldesigner/components/bindingeditor/bindingeditorwidget.cpp b/src/plugins/qmldesigner/components/bindingeditor/bindingeditorwidget.cpp index b067dc8d46f..9c3fccebc2f 100644 --- a/src/plugins/qmldesigner/components/bindingeditor/bindingeditorwidget.cpp +++ b/src/plugins/qmldesigner/components/bindingeditor/bindingeditorwidget.cpp @@ -7,7 +7,6 @@ #include #include -#include #include @@ -30,14 +29,11 @@ namespace QmlDesigner { BindingEditorWidget::BindingEditorWidget() - : m_context(new Core::IContext(this)) { Core::Context context(BINDINGEDITOR_CONTEXT_ID, ProjectExplorer::Constants::QMLJS_LANGUAGE_ID); - m_context->setWidget(this); - m_context->setContext(context); - Core::ICore::addContextObject(m_context); + Core::IContext::attach(this, context); Utils::TransientScrollAreaSupport::support(this); diff --git a/src/plugins/qmldesigner/components/bindingeditor/bindingeditorwidget.h b/src/plugins/qmldesigner/components/bindingeditor/bindingeditorwidget.h index 5433996110a..65fadb26607 100644 --- a/src/plugins/qmldesigner/components/bindingeditor/bindingeditorwidget.h +++ b/src/plugins/qmldesigner/components/bindingeditor/bindingeditorwidget.h @@ -39,7 +39,6 @@ signals: public: QmlJSEditor::QmlJSEditorDocument *qmljsdocument = nullptr; - Core::IContext *m_context = nullptr; QAction *m_completionAction = nullptr; bool m_isMultiline = false; }; diff --git a/src/plugins/scxmleditor/scxmleditor.cpp b/src/plugins/scxmleditor/scxmleditor.cpp index 9a2320246bd..36bf675c32b 100644 --- a/src/plugins/scxmleditor/scxmleditor.cpp +++ b/src/plugins/scxmleditor/scxmleditor.cpp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include @@ -218,10 +217,7 @@ void ScxmlEditorData::fullInit() Context scxmlContexts = m_contexts; scxmlContexts.add(Core::Constants::C_EDITORMANAGER); - auto context = new IContext(this); - context->setContext(scxmlContexts); - context->setWidget(m_modeWidget); - ICore::addContextObject(context); + IContext::attach(m_modeWidget, scxmlContexts); DesignMode::registerDesignWidget(m_modeWidget, QStringList(Utils::Constants::SCXML_MIMETYPE), m_contexts); } diff --git a/src/plugins/squish/squishtesttreeview.cpp b/src/plugins/squish/squishtesttreeview.cpp index 950789312fc..e6dd495aea9 100644 --- a/src/plugins/squish/squishtesttreeview.cpp +++ b/src/plugins/squish/squishtesttreeview.cpp @@ -11,7 +11,6 @@ #include #include -#include #include #include @@ -23,12 +22,9 @@ namespace Squish::Internal { SquishTestTreeView::SquishTestTreeView(QWidget *parent) : Utils::NavigationTreeView(parent) - , m_context(new Core::IContext(this)) { setExpandsOnDoubleClick(false); - m_context->setWidget(this); - m_context->setContext(Core::Context(Constants::SQUISH_CONTEXT)); - Core::ICore::addContextObject(m_context); + Core::IContext::attach(this, Core::Context(Constants::SQUISH_CONTEXT)); } void SquishTestTreeView::resizeEvent(QResizeEvent *event) diff --git a/src/plugins/squish/squishtesttreeview.h b/src/plugins/squish/squishtesttreeview.h index 531d97f72b3..a2b7d86847c 100644 --- a/src/plugins/squish/squishtesttreeview.h +++ b/src/plugins/squish/squishtesttreeview.h @@ -8,8 +8,6 @@ #include #include -namespace Core { class IContext; } - namespace Squish { namespace Internal { @@ -29,7 +27,6 @@ signals: void recordTestCase(const QString &suiteName, const QString &testCaseName); private: - Core::IContext *m_context; QModelIndex m_lastMousePressedIndex; }; diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp index 0bd15bf9be3..e9dcb715a33 100644 --- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -809,10 +809,7 @@ WelcomeMode::WelcomeMode() m_modeWidget = new QWidget; m_modeWidget->setLayout(boxLayout); boxLayout->addWidget(m_quickWidget); - auto context = new IContext(m_modeWidget); - context->setWidget(m_modeWidget); - context->setContextHelp("Qt Design Studio Manual"); - ICore::addContextObject(context); + IContext::attach(m_modeWidget, {}, "Qt Design Studio Manual"); setWidget(m_modeWidget); QStringList designStudioQchPathes diff --git a/src/plugins/terminal/terminalwidget.cpp b/src/plugins/terminal/terminalwidget.cpp index c6c97ae9bde..3ca0cfd8d25 100644 --- a/src/plugins/terminal/terminalwidget.cpp +++ b/src/plugins/terminal/terminalwidget.cpp @@ -52,15 +52,13 @@ using namespace Utils::Terminal; using namespace Core; namespace Terminal { + TerminalWidget::TerminalWidget(QWidget *parent, const OpenTerminalParameters &openParameters) : Core::SearchableTerminal(parent) , m_context(Utils::Id("TerminalWidget_").withSuffix(QString::number((uintptr_t) this))) , m_openParameters(openParameters) { - auto contextObj = new IContext(this); - contextObj->setWidget(this); - contextObj->setContext(m_context); - ICore::addContextObject(contextObj); + IContext::attach(this, m_context); setupFont(); setupColors(); diff --git a/src/plugins/texteditor/bookmarkmanager.cpp b/src/plugins/texteditor/bookmarkmanager.cpp index 625eca0c251..9e3423a2423 100644 --- a/src/plugins/texteditor/bookmarkmanager.cpp +++ b/src/plugins/texteditor/bookmarkmanager.cpp @@ -192,19 +192,14 @@ protected: void keyPressEvent(QKeyEvent *event) final; private: - Core::IContext *m_bookmarkContext; QModelIndex m_contextMenuIndex; }; BookmarkView::BookmarkView() - : m_bookmarkContext(new IContext(this)) { setWindowTitle(Tr::tr("Bookmarks")); - m_bookmarkContext->setWidget(this); - m_bookmarkContext->setContext(Context(BOOKMARKS_CONTEXT)); - - ICore::addContextObject(m_bookmarkContext); + IContext::attach(this, Context(BOOKMARKS_CONTEXT)); ListView::setModel(&bookmarkManager()); diff --git a/src/plugins/texteditor/markdowneditor.cpp b/src/plugins/texteditor/markdowneditor.cpp index 93b580a935e..71607dced62 100644 --- a/src/plugins/texteditor/markdowneditor.cpp +++ b/src/plugins/texteditor/markdowneditor.cpp @@ -125,10 +125,8 @@ public: &TextEditorWidget::addCurrentStateToNavigationHistory, this, &MarkdownEditor::addCurrentStateToNavigationHistory); - auto context = new IContext(this); - context->setWidget(m_textEditorWidget); - context->setContext(Context(MARKDOWNVIEWER_TEXT_CONTEXT)); - ICore::addContextObject(context); + + IContext::attach(m_textEditorWidget, Context(MARKDOWNVIEWER_TEXT_CONTEXT)); m_splitter->addWidget(m_textEditorWidget); // sets splitter->focusWidget() on non-Windows m_splitter->addWidget(m_previewWidget);