From 737c9ce41e3fac69f557d341bb5bbc996bfb9f67 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 13 Nov 2023 14:43:20 +0100 Subject: [PATCH] LanguageClient: Fix missing default context menu Change-Id: I7a3ae4f0af01cf05efd31082e3ac888a4613bb25 Reviewed-by: David Schulz --- .../languageclient/languageclientoutline.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/plugins/languageclient/languageclientoutline.cpp b/src/plugins/languageclient/languageclientoutline.cpp index b065754ec0d..8c45513ce9f 100644 --- a/src/plugins/languageclient/languageclientoutline.cpp +++ b/src/plugins/languageclient/languageclientoutline.cpp @@ -5,6 +5,7 @@ #include "documentsymbolcache.h" #include "languageclientmanager.h" +#include "languageclienttr.h" #include "languageclientutils.h" #include @@ -23,6 +24,7 @@ #include #include +#include #include using namespace LanguageServerProtocol; @@ -113,6 +115,8 @@ public: void restoreSettings(const QVariantMap &map) override; QVariantMap settings() const override; + void contextMenuEvent(QContextMenuEvent *event) override; + private: void handleResponse(const DocumentUri &uri, const DocumentSymbolsResult &response); void updateTextCursor(const QModelIndex &proxyIndex); @@ -204,6 +208,21 @@ QVariantMap LanguageClientOutlineWidget::settings() const return {{QString("LspOutline.Sort"), m_sorted}}; } +void LanguageClientOutlineWidget::contextMenuEvent(QContextMenuEvent *event) +{ + if (!event) + return; + + QMenu contextMenu; + QAction *action = contextMenu.addAction(Tr::tr("Expand All")); + connect(action, &QAction::triggered, &m_view, &QTreeView::expandAll); + action = contextMenu.addAction(Tr::tr("Collapse All")); + connect(action, &QAction::triggered, &m_view, &QTreeView::collapseAll); + + contextMenu.exec(event->globalPos()); + event->accept(); +} + void LanguageClientOutlineWidget::handleResponse(const DocumentUri &uri, const DocumentSymbolsResult &result) {