Debugger: Change semantics of DebuggerEngine::masterEngine()

Make it return 'this' if 'this' is the master engine itself.
Adapt users.

Also do not let the QmlEngine try to beginConnection() when
the combined engine was isDying() already.

Change-Id: I308deae14a3c4966be381f321c0d9dfaf82c40d6
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
hjk
2017-12-14 10:12:17 +01:00
parent ff04632b92
commit d47fdb934d
4 changed files with 8 additions and 17 deletions

View File

@@ -348,12 +348,9 @@ void QmlEngine::tryToConnect()
showMessage("QML Debugger: Trying to connect ...", LogStatus);
d->retryOnConnectFail = true;
if (state() == EngineRunRequested) {
if (isSlaveEngine()) {
if (isDying()) {
// Probably cpp is being debugged and hence we did not get the output yet.
if (!masterEngine()->isDying())
beginConnection();
else
appStartupFailed(tr("No application output received in time"));
appStartupFailed(tr("No application output received in time"));
} else {
beginConnection();
}
@@ -779,7 +776,7 @@ void QmlEngine::attemptBreakpointSynchronization()
BreakHandler *handler = breakHandler();
DebuggerEngine *bpOwner = isSlaveEngine() ? masterEngine() : this;
DebuggerEngine *bpOwner = masterEngine();
foreach (Breakpoint bp, handler->unclaimedBreakpoints()) {
// Take ownership of the breakpoint. Requests insertion.
if (acceptsBreakpoint(bp))

View File

@@ -70,7 +70,7 @@ QmlInspectorAgent::QmlInspectorAgent(QmlEngine *engine, QmlDebugConnection *conn
, m_engineQueryId(0)
, m_rootContextQueryId(0)
, m_objectToSelect(WatchItem::InvalidId)
, m_masterEngine(engine)
, m_masterEngine(engine->masterEngine())
, m_toolsClient(0)
, m_targetToSync(NoTarget)
, m_debugIdToSelect(WatchItem::InvalidId)
@@ -92,9 +92,6 @@ QmlInspectorAgent::QmlInspectorAgent(QmlEngine *engine, QmlDebugConnection *conn
connect(&m_delayQueryTimer, &QTimer::timeout,
this, &QmlInspectorAgent::queryEngineContext);
if (!m_masterEngine->isMasterEngine())
m_masterEngine = m_masterEngine->masterEngine();
auto engineClient1 = new DeclarativeEngineDebugClient(connection);
connect(engineClient1, &BaseEngineDebugClient::newState,
this, &QmlInspectorAgent::clientStateChanged);