forked from qt-creator/qt-creator
LanguageClient: Fix missing default context menu
Change-Id: I7a3ae4f0af01cf05efd31082e3ac888a4613bb25 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include "documentsymbolcache.h"
|
#include "documentsymbolcache.h"
|
||||||
#include "languageclientmanager.h"
|
#include "languageclientmanager.h"
|
||||||
|
#include "languageclienttr.h"
|
||||||
#include "languageclientutils.h"
|
#include "languageclientutils.h"
|
||||||
|
|
||||||
#include <coreplugin/editormanager/ieditor.h>
|
#include <coreplugin/editormanager/ieditor.h>
|
||||||
@@ -23,6 +24,7 @@
|
|||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
#include <QBoxLayout>
|
#include <QBoxLayout>
|
||||||
|
#include <QMenu>
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
|
|
||||||
using namespace LanguageServerProtocol;
|
using namespace LanguageServerProtocol;
|
||||||
@@ -113,6 +115,8 @@ public:
|
|||||||
void restoreSettings(const QVariantMap &map) override;
|
void restoreSettings(const QVariantMap &map) override;
|
||||||
QVariantMap settings() const override;
|
QVariantMap settings() const override;
|
||||||
|
|
||||||
|
void contextMenuEvent(QContextMenuEvent *event) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void handleResponse(const DocumentUri &uri, const DocumentSymbolsResult &response);
|
void handleResponse(const DocumentUri &uri, const DocumentSymbolsResult &response);
|
||||||
void updateTextCursor(const QModelIndex &proxyIndex);
|
void updateTextCursor(const QModelIndex &proxyIndex);
|
||||||
@@ -204,6 +208,21 @@ QVariantMap LanguageClientOutlineWidget::settings() const
|
|||||||
return {{QString("LspOutline.Sort"), m_sorted}};
|
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,
|
void LanguageClientOutlineWidget::handleResponse(const DocumentUri &uri,
|
||||||
const DocumentSymbolsResult &result)
|
const DocumentSymbolsResult &result)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user