diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2009-03-23 09:18:55 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-03-23 09:18:55 (GMT) |
commit | e5fcad302d86d316390c6b0f62759a067313e8a9 (patch) | |
tree | c2afbf6f1066b6ce261f14341cf6d310e5595bc1 /doc/src/snippets/scriptdebugger.cpp | |
download | Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.zip Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.gz Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.bz2 |
Long live Qt 4.5!
Diffstat (limited to 'doc/src/snippets/scriptdebugger.cpp')
-rw-r--r-- | doc/src/snippets/scriptdebugger.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/doc/src/snippets/scriptdebugger.cpp b/doc/src/snippets/scriptdebugger.cpp new file mode 100644 index 0000000..a1889d5 --- /dev/null +++ b/doc/src/snippets/scriptdebugger.cpp @@ -0,0 +1,64 @@ + +#include <QtGui> +#include <QtScript> +#include <QtScriptTools> + +// Perhaps shpw entire example for getting debugger up with script +int main(int argv, char **args) +{ + QApplication app(argv, args); + + QString fileName("helloscript.qs"); + QFile scriptFile(fileName); + scriptFile.open(QIODevice::ReadOnly); + QTextStream stream(&scriptFile); + QString contents = stream.readAll(); + scriptFile.close(); + + QScriptEngine *engine = new QScriptEngine(); + + QScriptEngineDebugger *debugger = new QScriptEngineDebugger(); + debugger->attachTo(engine); + + // Set up configuration with only stack and code + QWidget *widget = new QWidget; +//![0] + QWidget *codeWindow = debugger->widget(QScriptEngineDebugger::CodeWidget); + QWidget *stackWidget = debugger->widget(QScriptEngineDebugger::StackWidget); + + QLayout *layout = new QHBoxLayout; + layout->addWidget(codeWindow); + layout->addWidget(stackWidget); +//![0] + +//![1] + QAction *continueAction = debugger->action(QScriptEngineDebugger::ContinueAction); + QAction *stepOverAction = debugger->action(QScriptEngineDebugger::StepOverAction); + QAction *stepIntoAction = debugger->action(QScriptEngineDebugger::StepIntoAction); + + QToolBar *toolBar = new QToolBar; + toolBar->addAction(continueAction); +//![1] + toolBar->addAction(stepOverAction); + toolBar->addAction(stepIntoAction); + + layout->addWidget(toolBar); + continueAction->setIcon(QIcon("copy.png")); + + debugger->setAutoShowStandardWindow(false); + + widget->setLayout(layout); + widget->show(); + + QPushButton button; + QScriptValue scriptButton = engine->newQObject(&button); + engine->globalObject().setProperty("button", scriptButton); + +//![2] + debugger->action(QScriptEngineDebugger::InterruptAction)->trigger(); + engine->evaluate(contents, fileName); +//![2] + + return app.exec(); +} + |