From 32f69b9b7790a71f182e4676337f98b0c1f181b0 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Mon, 20 Dec 2010 09:15:49 +0100 Subject: Outline: Add context menu for collapsing/expanding tree Task-number: QTCREATORBUG-2976 --- src/plugins/qmljseditor/qmljsoutlinetreeview.cpp | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/plugins/qmljseditor/qmljsoutlinetreeview.cpp') diff --git a/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp b/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp index e0828ab840..b4da65cce6 100644 --- a/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp +++ b/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp @@ -2,6 +2,7 @@ #include "qmloutlinemodel.h" #include +#include namespace QmlJSEditor { namespace Internal { @@ -26,5 +27,31 @@ QmlJSOutlineTreeView::QmlJSOutlineTreeView(QWidget *parent) : setItemDelegateForColumn(0, itemDelegate); } +void QmlJSOutlineTreeView::contextMenuEvent(QContextMenuEvent *event) +{ + if (!event) + return; + + QMenu contextMenu; + + contextMenu.addAction(tr("Expand All"), this, SLOT(expandAll())); + contextMenu.addAction(tr("Collapse All"), this, SLOT(collapseAllExceptRoot())); + + contextMenu.exec(event->globalPos()); + + event->accept(); +} + +void QmlJSOutlineTreeView::collapseAllExceptRoot() +{ + if (!model()) + return; + const QModelIndex rootElementIndex = model()->index(0, 0, rootIndex()); + int rowCount = model()->rowCount(rootElementIndex); + for (int i = 0; i < rowCount; ++i) { + collapse(model()->index(i, 0, rootElementIndex)); + } +} + } // namespace Internal } // namespace QmlJSEditor -- cgit v1.2.1