Commit d47fdb93 authored by hjk's avatar hjk

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's avatarUlf Hermann <ulf.hermann@qt.io>
parent ff04632b
......@@ -931,9 +931,6 @@ void DebuggerEngine::notifyDebuggerProcessFinished(int exitCode,
break;
default: {
// Initiate shutdown sequence
if (isMasterEngine())
notifyEngineIll();
else
masterEngine()->notifyInferiorIll();
const QString msg = exitStatus == QProcess::CrashExit ?
tr("The %1 process terminated.") :
......@@ -1019,9 +1016,9 @@ void DebuggerEngine::setMasterEngine(DebuggerEngine *masterEngine)
d->m_masterEngine = masterEngine;
}
DebuggerEngine *DebuggerEngine::masterEngine() const
DebuggerEngine *DebuggerEngine::masterEngine()
{
return d->m_masterEngine;
return d->m_masterEngine ? d->m_masterEngine : this;
}
bool DebuggerEngine::canDisplayTooltip() const
......
......@@ -364,7 +364,7 @@ public:
void updateViews();
bool isSlaveEngine() const;
bool isMasterEngine() const;
DebuggerEngine *masterEngine() const;
DebuggerEngine *masterEngine();
virtual DebuggerEngine *activeEngine() { return this; }
virtual DebuggerEngine *cppEngine() { return 0; }
......
......@@ -348,11 +348,8 @@ 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"));
} 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))
......
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment