aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAurindam Jana <aurindam.jana@nokia.com>2012-03-14 15:28:01 +0100
committerAurindam Jana <aurindam.jana@nokia.com>2012-03-15 10:35:59 +0100
commitd97768f96b38650bbcc6420cc9db9e95ae15ee85 (patch)
tree13e36a2e0d2d286e5d4e320521e59555e8598d15
parenta0605523aee9d3e2fd88f079b189f5922d99cd2b (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.cpp23
-rw-r--r--src/plugins/debugger/qml/qmlengine.h1
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();