From e97b1187391e16208a2da0e4c7f9e6daa540aa93 Mon Sep 17 00:00:00 2001 From: Joel Nordell Date: Wed, 17 Jun 2009 12:48:53 +0200 Subject: add a state() function to QScriptEngineDebugger for determining whether the debu gger is suspended or not Merge-request: 555 Reviewed-by: Kent Hansen --- src/scripttools/debugging/qscriptdebugger.cpp | 6 ++++++ src/scripttools/debugging/qscriptdebugger_p.h | 2 ++ src/scripttools/debugging/qscriptenginedebugger.cpp | 21 +++++++++++++++++++++ src/scripttools/debugging/qscriptenginedebugger.h | 7 +++++++ 4 files changed, 36 insertions(+) diff --git a/src/scripttools/debugging/qscriptdebugger.cpp b/src/scripttools/debugging/qscriptdebugger.cpp index 9cca8ad..003121f 100644 --- a/src/scripttools/debugging/qscriptdebugger.cpp +++ b/src/scripttools/debugging/qscriptdebugger.cpp @@ -1946,6 +1946,12 @@ QToolBar *QScriptDebugger::createStandardToolBar(QWidget *widgetParent, QObject return tb; } +bool QScriptDebugger::isInteractive() const +{ + Q_D(const QScriptDebugger); + return d->interactive; +} + /*! \reimp */ diff --git a/src/scripttools/debugging/qscriptdebugger_p.h b/src/scripttools/debugging/qscriptdebugger_p.h index 9ed7e0a..ba27200 100644 --- a/src/scripttools/debugging/qscriptdebugger_p.h +++ b/src/scripttools/debugging/qscriptdebugger_p.h @@ -172,6 +172,8 @@ public: bool eventFilter(QObject *, QEvent *e); + bool isInteractive() const; + Q_SIGNALS: void stopped() const; void started() const; diff --git a/src/scripttools/debugging/qscriptenginedebugger.cpp b/src/scripttools/debugging/qscriptenginedebugger.cpp index 948a01a..ae58c89 100644 --- a/src/scripttools/debugging/qscriptenginedebugger.cpp +++ b/src/scripttools/debugging/qscriptenginedebugger.cpp @@ -226,6 +226,15 @@ public: \value GoToLineAction Shows the "Go to Line" dialog. */ +/*! + \enum QScriptEngineDebugger::DebuggerState + + This enum specifies the current state of the debugger. + + \value RunningState The debugger is running. (Script evaluation is allowed.) + \value SuspendedState The debugger has suspended script evaluation. +*/ + class QScriptEngineDebuggerPrivate : public QObjectPrivate { @@ -387,6 +396,18 @@ void QScriptEngineDebugger::detach() } /*! + Returns the current state of the debugger. + + \sa evaluationResumed() + \sa evaluationSuspended() +*/ +QScriptEngineDebugger::DebuggerState QScriptEngineDebugger::state() const +{ + Q_D(const QScriptEngineDebugger); + return (d->debugger && d->debugger->isInteractive() ? SuspendedState : RunningState); +} + +/*! Returns a pointer to the instance of the specified standard \a widget. The widgets available are defined by the DebuggerWidget diff --git a/src/scripttools/debugging/qscriptenginedebugger.h b/src/scripttools/debugging/qscriptenginedebugger.h index 0fd4963..b9061a2 100644 --- a/src/scripttools/debugging/qscriptenginedebugger.h +++ b/src/scripttools/debugging/qscriptenginedebugger.h @@ -92,6 +92,11 @@ public: GoToLineAction }; + enum DebuggerState { + RunningState, + SuspendedState + }; + QScriptEngineDebugger(QObject *parent = 0); ~QScriptEngineDebugger(); @@ -108,6 +113,8 @@ public: QWidget *widget(DebuggerWidget widget) const; QAction *action(DebuggerAction action) const; + DebuggerState state() const; + Q_SIGNALS: void evaluationSuspended(); void evaluationResumed(); -- cgit v0.12