diff --git a/src/tools/qml/qmlobserver/jsdebuggeragent.cpp b/src/tools/qml/qmlobserver/jsdebuggeragent.cpp index 0eb01c21b1bd487f96eb5fec29781247a13412cc..29c3d4003198ea374d1fca95dd775caea0dc7bc0 100644 --- a/src/tools/qml/qmlobserver/jsdebuggeragent.cpp +++ b/src/tools/qml/qmlobserver/jsdebuggeragent.cpp @@ -273,13 +273,11 @@ void JSDebuggerAgent::positionChange(qint64 scriptId, } } - switch (state) { case NoState: case Stopped: // Do nothing break; - case SteppingOutState: if (stepDepth >= 0) break; @@ -318,6 +316,22 @@ void JSDebuggerAgent::exceptionCatch(qint64 scriptId, Q_UNUSED(exception); } +bool JSDebuggerAgent::supportsExtension(QScriptEngineAgent::Extension extension) const +{ + return extension == QScriptEngineAgent::DebuggerInvocationRequest; +} + +QVariant JSDebuggerAgent::extension(QScriptEngineAgent::Extension extension, const QVariant& argument) +{ + if (extension == QScriptEngineAgent::DebuggerInvocationRequest) { + stopped(); + return QVariant(); + } + return QScriptEngineAgent::extension(extension, argument); +} + + + void JSDebuggerAgent::messageReceived(const QByteArray& message) { QDataStream ds(message); diff --git a/src/tools/qml/qmlobserver/jsdebuggeragent.h b/src/tools/qml/qmlobserver/jsdebuggeragent.h index acd7b18c92f793e6013b52bd6c46090eae522560..0618dcc0553342f1d2347d99fadc420ae018fbb3 100644 --- a/src/tools/qml/qmlobserver/jsdebuggeragent.h +++ b/src/tools/qml/qmlobserver/jsdebuggeragent.h @@ -93,9 +93,9 @@ public: void exceptionCatch(qint64 scriptId, const QScriptValue &exception); -/* bool supportsExtension(Extension extension) const; + bool supportsExtension(Extension extension) const; QVariant extension(Extension extension, - const QVariant &argument = QVariant());*/ + const QVariant &argument = QVariant()); void messageReceived(const QByteArray &); void enabledChanged(bool);