summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@nokia.com>2011-06-27 17:57:11 +0200
committerThomas Hartmann <Thomas.Hartmann@nokia.com>2011-06-27 17:57:41 +0200
commitfffafb97e9c00e34192d09327f2e894ae588eb71 (patch)
treedc4610327f3aa1fea4a6f2c1ad8ff8e7c35bef50 /src
parentdde8ef0c711f6784107a97ae6e8b34f7530c6d24 (diff)
downloadqt-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')
-rw-r--r--src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp10
-rw-r--r--src/plugins/qmldesigner/components/navigator/navigatortreemodel.h7
-rw-r--r--src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp14
-rw-r--r--src/plugins/qmldesigner/components/navigator/navigatortreeview.h3
-rw-r--r--src/plugins/qmldesigner/components/navigator/navigatorview.cpp4
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*/)