From bf75e5c08565106a24c804196f92aa8c6999bb74 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 5 Mar 2014 11:52:24 +0100 Subject: [PATCH] Add GL error handling to welcome page. Handle the sceneGraphError() so that the application does not crash. ==[ Subject: One line only short meaningful description for logs ]===| Change-Id: I04e7e92d78795969f5686709522edfc6004cd932 Reviewed-by: Thomas Hartmann --- src/plugins/welcome/welcomeplugin.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp index 37297cde4e6..88a7d569d14 100644 --- a/src/plugins/welcome/welcomeplugin.cpp +++ b/src/plugins/welcome/welcomeplugin.cpp @@ -50,6 +50,7 @@ #include #include #include +#include #include #include @@ -116,6 +117,9 @@ signals: private slots: void welcomePluginAdded(QObject*); +#if QT_VERSION >= 0x050300 + void sceneGraphError(QQuickWindow::SceneGraphError, const QString &message); +#endif private: void facilitateQml(QQmlEngine *engine); @@ -144,6 +148,10 @@ WelcomeMode::WelcomeMode() : setContext(Core::Context(Core::Constants::C_WELCOME_MODE)); m_welcomePage = new QQuickView; +#if QT_VERSION >= 0x050300 + connect(m_welcomePage, SIGNAL(sceneGraphError(QQuickWindow::SceneGraphError,QString)), + this, SLOT(sceneGraphError(QQuickWindow::SceneGraphError,QString))); +#endif // Qt 5.3 m_welcomePage->setObjectName(QLatin1String("WelcomePage")); m_welcomePage->setResizeMode(QQuickView::SizeRootObjectToView); @@ -187,6 +195,19 @@ WelcomeMode::~WelcomeMode() delete m_networkAccessManagerFactory; } +#if QT_VERSION >= 0x050300 +void WelcomeMode::sceneGraphError(QQuickWindow::SceneGraphError, const QString &message) +{ + QMessageBox *messageBox = + new QMessageBox(QMessageBox::Warning, + tr("Welcome Mode Load Error"), message, + QMessageBox::Close, m_modeWidget); + messageBox->setModal(false); + messageBox->setAttribute(Qt::WA_DeleteOnClose); + messageBox->show(); +} +#endif // Qt 5.3 + bool sortFunction(Utils::IWelcomePage * a, Utils::IWelcomePage *b) { return a->priority() < b->priority();