OSDN Git Service

QmlDesigner.nodeInstances: show warning if qml pupped crashes
authorThomas Hartmann <Thomas.Hartmann@nokia.com>
Wed, 13 Apr 2011 15:52:17 +0000 (17:52 +0200)
committerThomas Hartmann <Thomas.Hartmann@nokia.com>
Fri, 15 Apr 2011 10:37:17 +0000 (12:37 +0200)
If the qml puppetcrahes 3 times in a row we show a warning.

Reviewed-by: Marco Bubke
src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
src/plugins/qmldesigner/designmodewidget.cpp
src/plugins/qmldesigner/designmodewidget.h

index 6449b6f..31b9df9 100644 (file)
@@ -138,6 +138,9 @@ public:
 
     QImage statePreviewImage(const ModelNode &stateNode) const;
 
+signals:
+    void qmlPuppetCrashed();
+
 private: // functions
     NodeInstance rootNodeInstance() const;
 
index ce96061..1e0ad0b 100644 (file)
@@ -180,7 +180,7 @@ void NodeInstanceView::handleChrash()
     if (elaspsedTimeSinceLastCrash > 2000) {
         restartProcess();
     } else {
-        emitCustomNotification("QmlPuppet crashed");
+        emit  qmlPuppetCrashed();
     }
 }
 
index db03b1f..da47571 100644 (file)
@@ -648,6 +648,7 @@ void DesignModeWidget::setup()
     }
 
     m_nodeInstanceView = new NodeInstanceView(this);
+    connect(m_nodeInstanceView.data(), SIGNAL(qmlPuppetCrashed()), this, SLOT(qmlPuppetCrashed()));
      // Sidebar takes ownership
     m_navigator = new NavigatorView;
     m_allPropertiesBox = new AllPropertiesBox;
@@ -773,6 +774,14 @@ void DesignModeWidget::deleteSidebarWidgets()
     m_rightSideBar = 0;
 }
 
+void DesignModeWidget::qmlPuppetCrashed()
+{
+    QList<RewriterView::Error> errorList;
+    RewriterView::Error error(tr("Qt Quick emulation layer crashed"));
+    errorList << error;
+    disable(errorList);
+}
+
 void DesignModeWidget::resizeEvent(QResizeEvent *event)
 {
     if (m_warningWidget)
index 93074b1..a49c604 100644 (file)
@@ -154,6 +154,7 @@ private slots:
     void updateAvailableSidebarItemsRight();
 
     void deleteSidebarWidgets();
+    void qmlPuppetCrashed();
 
 protected:
     void resizeEvent(QResizeEvent *event);