diff options
author | Aurindam Jana <aurindam.jana@nokia.com> | 2012-03-14 15:28:01 +0100 |
---|---|---|
committer | Aurindam Jana <aurindam.jana@nokia.com> | 2012-03-15 10:35:59 +0100 |
commit | d97768f96b38650bbcc6420cc9db9e95ae15ee85 (patch) | |
tree | 13e36a2e0d2d286e5d4e320521e59555e8598d15 | |
parent | a0605523aee9d3e2fd88f079b189f5922d99cd2b (diff) |
QmlDebugging: Connect for Run In Terminal
Connect to Qml Debug Server for Run In Terminal.
Task-number: QTCREATORBUG-7057
Change-Id: Ieb166e4fc74cad2ef7a3774e0156cdbf07e8dc56
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
-rw-r--r-- | src/plugins/debugger/qml/qmlengine.cpp | 23 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qmlengine.h | 1 |
2 files changed, 21 insertions, 3 deletions
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index b329fa777e..3e31aeddc4 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -119,11 +119,13 @@ private: InteractiveInterpreter m_interpreter; bool m_validContext; QHash<QString,BreakpointModelId> pendingBreakpoints; + bool m_retryOnConnectFail; }; QmlEnginePrivate::QmlEnginePrivate(QmlEngine *q) : m_adapter(q), - m_validContext(false) + m_validContext(false), + m_retryOnConnectFail(false) {} class ASTWalker: public Visitor @@ -344,7 +346,7 @@ QmlEngine::QmlEngine(const DebuggerStartParameters &startParameters, connect(&d->m_outputParser, SIGNAL(waitingForConnectionViaOst()), this, SLOT(beginConnection())); connect(&d->m_outputParser, SIGNAL(noOutputMessage()), - this, SLOT(beginConnection())); + this, SLOT(tryToConnect())); connect(&d->m_outputParser, SIGNAL(errorMessage(QString)), this, SLOT(appStartupFailed(QString))); @@ -352,7 +354,7 @@ QmlEngine::QmlEngine(const DebuggerStartParameters &startParameters, // (application output might be redirected / blocked) d->m_noDebugOutputTimer.setSingleShot(true); d->m_noDebugOutputTimer.setInterval(8000); - connect(&d->m_noDebugOutputTimer, SIGNAL(timeout()), this, SLOT(beginConnection())); + connect(&d->m_noDebugOutputTimer, SIGNAL(timeout()), this, SLOT(tryToConnect())); qtMessageLogHandler()->setHasEditableRow(true); @@ -360,6 +362,9 @@ QmlEngine::QmlEngine(const DebuggerStartParameters &startParameters, SIGNAL(documentUpdated(QmlJS::Document::Ptr)), this, SLOT(documentUpdated(QmlJS::Document::Ptr))); + + // we won't get any debug output + d->m_retryOnConnectFail = startParameters.useTerminal; } QmlEngine::~QmlEngine() @@ -409,6 +414,12 @@ void QmlEngine::connectionEstablished() notifyEngineRunAndInferiorRunOk(); } +void QmlEngine::tryToConnect(quint16 port) +{ + d->m_retryOnConnectFail = true; + beginConnection(port); +} + void QmlEngine::beginConnection(quint16 port) { d->m_noDebugOutputTimer.stop(); @@ -443,6 +454,10 @@ void QmlEngine::connectionStartupFailed() return; } } + if (d->m_retryOnConnectFail) { + beginConnection(); + return; + } QMessageBox *infoBox = new QMessageBox(Core::ICore::mainWindow()); infoBox->setIcon(QMessageBox::Critical); @@ -584,6 +599,8 @@ void QmlEngine::runEngine() beginConnection(); else startApplicationLauncher(); + } else { + d->m_noDebugOutputTimer.start(); } } diff --git a/src/plugins/debugger/qml/qmlengine.h b/src/plugins/debugger/qml/qmlengine.h index 4e1bb26082..48ebf238da 100644 --- a/src/plugins/debugger/qml/qmlengine.h +++ b/src/plugins/debugger/qml/qmlengine.h @@ -161,6 +161,7 @@ signals: TextEditor::ITextEditor *editor, int cursorPos); private slots: + void tryToConnect(quint16 port = 0); void beginConnection(quint16 port = 0); void connectionEstablished(); void connectionStartupFailed(); |