OSDN Git Service

QmlDesigner.formEditor: add reset button
authorThomas Hartmann <Thomas.Hartmann@nokia.com>
Mon, 21 Mar 2011 11:22:20 +0000 (12:22 +0100)
committerThomas Hartmann <Thomas.Hartmann@nokia.com>
Mon, 21 Mar 2011 13:05:36 +0000 (14:05 +0100)
Adding a button that allows reseting the view.

src/plugins/qmldesigner/components/formeditor/formeditor.qrc
src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp
src/plugins/qmldesigner/components/formeditor/formeditorwidget.h
src/plugins/qmldesigner/components/formeditor/reset.png [new file with mode: 0644]
src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp

index 5881bb0..6086ac2 100644 (file)
@@ -15,4 +15,7 @@
     <qresource prefix="/icon/selection">
         <file>selectonlycontentitems.png</file>
     </qresource>
+    <qresource prefix="/icon">
+        <file>reset.png</file>
+    </qresource>
 </RCC>
index b2f6108..c74098f 100644 (file)
@@ -166,6 +166,15 @@ FormEditorWidget::FormEditorWidget(FormEditorView *view)
     addAction(m_zoomAction.data());
     upperActions.append(m_zoomAction.data());
     m_toolBox->addRightSideAction(m_zoomAction.data());
+
+    m_resetAction = new QAction(tr("Reset view (R)"), this);
+    m_resetAction->setShortcut(Qt::Key_R);
+    m_resetAction->setShortcutContext(Qt::WidgetWithChildrenShortcut);
+    m_resetAction->setIcon(QPixmap(":/icon/reset.png"));
+    connect(m_resetAction.data(), SIGNAL(triggered(bool)), this, SLOT(resetNodeInstanceView()));
+    addAction(m_resetAction.data());
+    upperActions.append(m_resetAction.data());
+    m_toolBox->addRightSideAction(m_resetAction.data());
 }
 
 void FormEditorWidget::enterEvent(QEvent *event)
@@ -203,6 +212,12 @@ void FormEditorWidget::changeRootItemHeight(const QString &heighText)
     }
 }
 
+void FormEditorWidget::resetNodeInstanceView()
+{
+    m_formEditorView->setCurrentState(m_formEditorView->baseState());
+    m_formEditorView->emitCustomNotification(QLatin1String("reset QmlPuppet"));
+}
+
 void FormEditorWidget::changeAnchorTool(bool checked)
 {
     if (checked && m_formEditorView->currentState().isBaseState())
index 7daa794..25bf2aa 100644 (file)
@@ -95,6 +95,7 @@ private slots:
     void setZoomLevel(double zoomLevel);
     void changeRootItemWidth(const QString &widthText);
     void changeRootItemHeight(const QString &heightText);
+    void resetNodeInstanceView();
 
 private:
     QWeakPointer<FormEditorView> m_formEditorView;
@@ -111,6 +112,7 @@ private:
     QWeakPointer<QAction> m_selectOnlyContentItemsAction;
     QWeakPointer<LineEditAction> m_rootWidthAction;
     QWeakPointer<LineEditAction> m_rootHeightAction;
+    QWeakPointer<QAction> m_resetAction;
 };
 
 
diff --git a/src/plugins/qmldesigner/components/formeditor/reset.png b/src/plugins/qmldesigner/components/formeditor/reset.png
new file mode 100644 (file)
index 0000000..27442ef
Binary files /dev/null and b/src/plugins/qmldesigner/components/formeditor/reset.png differ
index 987d2cf..bb277d2 100644 (file)
@@ -109,6 +109,7 @@ public:
     void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
     void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
     void auxiliaryDataChanged(const ModelNode &node, const QString &name, const QVariant &data);
+    void customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data);
 
     void rewriterBeginTransaction();
     void rewriterEndTransaction();
index 994e078..9e04463 100644 (file)
@@ -496,6 +496,12 @@ void NodeInstanceView::auxiliaryDataChanged(const ModelNode &node, const QString
     }
 }
 
+void NodeInstanceView::customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &, const QList<QVariant> &)
+{
+    if (view && identifier == QLatin1String("reset QmlPuppet"))
+        restartProcess();
+}
+
 void NodeInstanceView::rewriterBeginTransaction()
 {