LanguageClient: Fix missing default context menu

Change-Id: I7a3ae4f0af01cf05efd31082e3ac888a4613bb25
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Stenger
2023-11-13 14:43:20 +01:00
parent cf6b6b5a8a
commit 737c9ce41e

View File

@@ -5,6 +5,7 @@
#include "documentsymbolcache.h"
#include "languageclientmanager.h"
#include "languageclienttr.h"
#include "languageclientutils.h"
#include <coreplugin/editormanager/ieditor.h>
@@ -23,6 +24,7 @@
#include <QAction>
#include <QBoxLayout>
#include <QMenu>
#include <QSortFilterProxyModel>
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)
{