diff options
author | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2011-04-13 17:52:17 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2011-04-15 12:37:17 +0200 |
commit | 12a810bb68eb94f2a0a7f2fc738ab8ccdaaacac0 (patch) | |
tree | d79a22a8e5d92bc33bab60a635eed176ed70cb90 | |
parent | 29a544bb68ac5f0c926a224147f2935814829b5b (diff) |
QmlDesigner.nodeInstances: show warning if qml pupped crashes
If the qml puppetcrahes 3 times in a row we show a warning.
Reviewed-by: Marco Bubke
4 files changed, 14 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h index 6449b6fb229..31b9df91e15 100644 --- a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h +++ b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h @@ -138,6 +138,9 @@ public: QImage statePreviewImage(const ModelNode &stateNode) const; +signals: + void qmlPuppetCrashed(); + private: // functions NodeInstance rootNodeInstance() const; diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index ce960610246..1e0ad0baf63 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -180,7 +180,7 @@ void NodeInstanceView::handleChrash() if (elaspsedTimeSinceLastCrash > 2000) { restartProcess(); } else { - emitCustomNotification("QmlPuppet crashed"); + emit qmlPuppetCrashed(); } } diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index db03b1f9e0c..da475718607 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -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) diff --git a/src/plugins/qmldesigner/designmodewidget.h b/src/plugins/qmldesigner/designmodewidget.h index 93074b10a98..a49c604fe41 100644 --- a/src/plugins/qmldesigner/designmodewidget.h +++ b/src/plugins/qmldesigner/designmodewidget.h @@ -154,6 +154,7 @@ private slots: void updateAvailableSidebarItemsRight(); void deleteSidebarWidgets(); + void qmlPuppetCrashed(); protected: void resizeEvent(QResizeEvent *event); |