diff options
author | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2011-06-27 17:57:11 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2011-06-27 17:57:41 +0200 |
commit | fffafb97e9c00e34192d09327f2e894ae588eb71 (patch) | |
tree | dc4610327f3aa1fea4a6f2c1ad8ff8e7c35bef50 /src | |
parent | dde8ef0c711f6784107a97ae6e8b34f7530c6d24 (diff) | |
download | qt-creator-fffafb97e9c00e34192d09327f2e894ae588eb71.tar.gz |
QmlDesigner.navigator: adding context menu to navigator
Change-Id: I1e0993c4e4adf7c797a659665c5c515fc390b950
Reviewed-on: http://codereview.qt.nokia.com/791
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Diffstat (limited to 'src')
5 files changed, 31 insertions, 7 deletions
diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 3ccfaf045e..19c323f3db 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -37,7 +37,7 @@ #include <nodeproperty.h> #include <metainfo.h> #include <qgraphicswidget.h> -#include <abstractview.h> +#include <qmlmodelview.h> #include <rewriterview.h> #include <invalididexception.h> #include <rewritingexception.h> @@ -376,7 +376,7 @@ NavigatorTreeModel::ItemRow NavigatorTreeModel::itemRowForNode(const ModelNode & return m_nodeItemHash.value(node); } -void NavigatorTreeModel::setView(AbstractView *view) +void NavigatorTreeModel::setView(QmlModelView *view) { m_view = view; m_hiddenProperties.clear(); @@ -641,4 +641,10 @@ void NavigatorTreeModel::setVisible(const QModelIndex &index, bool visible) itemRow.visibilityItem->setCheckState(visible ? Qt::Checked : Qt::Unchecked); } +void NavigatorTreeModel::openContextMenu(const QPoint &p) +{ + if (m_view) + m_view->showContextMenu(p, QPoint(), false); +} + } // QmlDesigner diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h index 3f4584da6d..cd079f5d2e 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h @@ -42,7 +42,7 @@ namespace QmlDesigner { class Model; -class AbstractView; +class QmlModelView; class ModelNode; class NavigatorTreeModel : public QStandardItemModel @@ -98,7 +98,7 @@ public: int column, const QModelIndex &parent); - void setView(AbstractView *view); + void setView(QmlModelView *view); void clearView(); QModelIndex indexForNode(const ModelNode &node) const; @@ -117,6 +117,7 @@ public: void setId(const QModelIndex &index, const QString &id); void setVisible(const QModelIndex &index, bool visible); + void openContextMenu(const QPoint &p); private slots: void handleChangedItem(QStandardItem *item); @@ -142,7 +143,7 @@ private: private: QHash<ModelNode, ItemRow> m_nodeItemHash; QHash<uint, ModelNode> m_nodeHash; - QWeakPointer<AbstractView> m_view; + QWeakPointer<QmlModelView> m_view; bool m_blockItemChangedSignal; diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp index a0117ef9ab..5bc63df970 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp @@ -44,6 +44,7 @@ #include <QLineEdit> #include <QPen> #include <QPixmapCache> +#include <QMouseEvent> static QPixmap generateWavyPixmap(qreal maxRadius, const QPen &pen) @@ -179,6 +180,19 @@ NavigatorTreeView::NavigatorTreeView(QWidget *parent) style->setParent(this); } +bool NameItemDelegate::editorEvent(QEvent *event, QAbstractItemModel *, const QStyleOptionViewItem &, const QModelIndex &) +{ + if (event->type() == QEvent::MouseButtonRelease) { + QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event); + if (mouseEvent->button() == Qt::RightButton) { + m_TreeModel->openContextMenu(mouseEvent->globalPos()); + mouseEvent->accept(); + return true; + } + } + return false; +} + QSize IconCheckboxItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreeview.h b/src/plugins/qmldesigner/components/navigator/navigatortreeview.h index d2b0635b49..f7df044656 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreeview.h +++ b/src/plugins/qmldesigner/components/navigator/navigatortreeview.h @@ -84,6 +84,9 @@ class NameItemDelegate : public QStyledItemDelegate QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const; void setEditorData(QWidget *editor, const QModelIndex &index) const; void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const; + + protected: + bool editorEvent ( QEvent * event, QAbstractItemModel * model, const QStyleOptionViewItem & option, const QModelIndex & index ); void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const; private: diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp index ac0c8e657a..54609ff6ab 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp @@ -93,7 +93,7 @@ NavigatorWidget *NavigatorView::widget() void NavigatorView::modelAttached(Model *model) { - AbstractView::modelAttached(model); + QmlModelView::modelAttached(model); m_treeModel->setView(this); @@ -112,7 +112,7 @@ void NavigatorView::modelAttached(Model *model) void NavigatorView::modelAboutToBeDetached(Model *model) { m_treeModel->clearView(); - AbstractView::modelAboutToBeDetached(model); + QmlModelView::modelAboutToBeDetached(model); } void NavigatorView::importsChanged(const QList<Import> &/*addedImports*/, const QList<Import> &/*removedImports*/) |