diff --git a/src/plugins/debugger/qml/qmladapter.cpp b/src/plugins/debugger/qml/qmladapter.cpp index 9f794ac1f7b..af082e1cbc8 100644 --- a/src/plugins/debugger/qml/qmladapter.cpp +++ b/src/plugins/debugger/qml/qmladapter.cpp @@ -114,9 +114,9 @@ void QmlAdapter::pollInferior() d->m_connectionTimer.stop(); d->m_connectionAttempts = 0; } else if (d->m_connectionAttempts == d->m_maxConnectionAttempts) { - emit connectionStartupFailed(); d->m_connectionTimer.stop(); d->m_connectionAttempts = 0; + emit connectionStartupFailed(); } else { connectToViewer(); } diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index fa52017eef1..4c5071324ca 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -57,6 +57,8 @@ #include #include +#include + #include #include #include @@ -239,11 +241,28 @@ void QmlEngine::connectionEstablished() void QmlEngine::connectionStartupFailed() { - QMessageBox::critical(0, tr("Failed to connect to debugger"), - tr("Could not connect to QML debugger server at %1:%2.") - .arg(startParameters().qmlServerAddress) - .arg(startParameters().qmlServerPort)); - notifyEngineRunFailed(); + QMessageBox::Button button = + QMessageBox::critical(0, tr("Failed to connect to QML debugger"), + tr("Qt Creator could not connect to the in-process debugger at %1:%2.\n" + "Do you want to retry?") + .arg(startParameters().qmlServerAddress) + .arg(startParameters().qmlServerPort), + QMessageBox::Retry | QMessageBox::Cancel | QMessageBox::Help, + QMessageBox::Retry); + + switch (button) { + case QMessageBox::Retry: { + d->m_adapter.beginConnection(); + break; + } + case QMessageBox::Help: { + Core::HelpManager *helpManager = Core::HelpManager::instance(); + helpManager->handleHelpRequest("qthelp://com.nokia.qtcreator/doc/creator-debugging-qml.html"); + break; + } + default: + notifyEngineRunFailed(); + } } void QmlEngine::connectionError(QAbstractSocket::SocketError socketError)