diff --git a/src/plugins/debugger/qml/qmladapter.cpp b/src/plugins/debugger/qml/qmladapter.cpp index a322b807f093828099e1d4e20e10ff93cba3eb30..615dd5aa294e2d727800361729a1078cf9409e12 100644 --- a/src/plugins/debugger/qml/qmladapter.cpp +++ b/src/plugins/debugger/qml/qmladapter.cpp @@ -99,7 +99,7 @@ bool QmlAdapter::connectToViewer() connect(m_conn, SIGNAL(stateChanged(QAbstractSocket::SocketState)), SLOT(connectionStateChanged())); connect(m_conn, SIGNAL(error(QAbstractSocket::SocketError)), - SLOT(connectionErrorOccurred())); + SLOT(connectionErrorOccurred(QAbstractSocket::SocketError))); QString address = m_engine.data()->startParameters().qmlServerAddress; QString port = QString::number(m_engine.data()->startParameters().qmlServerPort); @@ -114,14 +114,14 @@ bool QmlAdapter::connectToViewer() return true; } -void QmlAdapter::connectionErrorOccurred() +void QmlAdapter::connectionErrorOccurred(QAbstractSocket::SocketError socketError) { showConnectionErrorMessage(tr("Error: (%1) %2", "%1=error code, %2=error message") .arg(m_conn->error()).arg(m_conn->errorString())); // this is only an error if we are already connected and something goes wrong. if (isConnected()) - emit connectionError(); + emit connectionError(socketError); } void QmlAdapter::connectionStateChanged() diff --git a/src/plugins/debugger/qml/qmladapter.h b/src/plugins/debugger/qml/qmladapter.h index 0bed65885386ed329e4eedb88a55e0c4094fb93c..c27c6a48d16d3723d8b580a786f581c9177b1c1f 100644 --- a/src/plugins/debugger/qml/qmladapter.h +++ b/src/plugins/debugger/qml/qmladapter.h @@ -67,10 +67,10 @@ signals: void connected(); void disconnected(); void connectionStartupFailed(); - void connectionError(); + void connectionError(QAbstractSocket::SocketError socketError); private slots: - void connectionErrorOccurred(); + void connectionErrorOccurred(QAbstractSocket::SocketError socketError); void connectionStateChanged(); void pollInferior(); diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index a344ffa7cec4d691303aef344c9da91d190c7394..5c135d861f59eea78b20fcd6c12ac9f56ad5bf82 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -166,9 +166,10 @@ void QmlEngine::connectionStartupFailed() notifyEngineRunFailed(); } -void QmlEngine::connectionError() +void QmlEngine::connectionError(QAbstractSocket::SocketError socketError) { - // do nothing for now - only exit the debugger when inferior exits. + if (socketError ==QAbstractSocket::RemoteHostClosedError) + plugin()->showMessage(tr("QML Debugger: Remote host closed connection."), StatusBar); } void QmlEngine::runEngine() @@ -251,13 +252,15 @@ void QmlEngine::shutdownEngine() shutdownEngineAsSlave(); notifyEngineShutdownOk(); + plugin()->showMessage(QString(), StatusBar); } void QmlEngine::setupEngine() { m_adapter->setMaxConnectionAttempts(MaxConnectionAttempts); m_adapter->setConnectionAttemptInterval(ConnectionAttemptDefaultInterval); - connect(m_adapter, SIGNAL(connectionError()), SLOT(connectionError())); + connect(m_adapter, SIGNAL(connectionError(QAbstractSocket::SocketError)), + SLOT(connectionError(QAbstractSocket::SocketError))); connect(m_adapter, SIGNAL(connected()), SLOT(connectionEstablished())); connect(m_adapter, SIGNAL(connectionStartupFailed()), SLOT(connectionStartupFailed())); diff --git a/src/plugins/debugger/qml/qmlengine.h b/src/plugins/debugger/qml/qmlengine.h index 3088af478e77c287d1204db6336f11b13c0f9b73..fee77d95e584d9e5d984b895d7ac8d1bb48a0098 100644 --- a/src/plugins/debugger/qml/qmlengine.h +++ b/src/plugins/debugger/qml/qmlengine.h @@ -122,7 +122,7 @@ signals: private slots: void connectionEstablished(); void connectionStartupFailed(); - void connectionError(); + void connectionError(QAbstractSocket::SocketError error); void slotMessage(QString, bool); void slotAddToOutputWindow(QString, bool);