diff --git a/share/qtcreator/qmljsdebugger/include/jsdebuggeragent.h b/share/qtcreator/qmljsdebugger/include/jsdebuggeragent.h index 89667d7193e030441e351f9b5e7f2fca1f6b6717..39b559cabe33592242dcf1e7c9b8953bab71e9b8 100644 --- a/share/qtcreator/qmljsdebugger/include/jsdebuggeragent.h +++ b/share/qtcreator/qmljsdebugger/include/jsdebuggeragent.h @@ -63,6 +63,7 @@ #include "qmljsdebugger_global.h" QT_FORWARD_DECLARE_CLASS(QScriptContext); +QT_FORWARD_DECLARE_CLASS(QDeclarativeEngine); namespace QmlJSDebugger { @@ -73,6 +74,7 @@ class QMLJSDEBUGGER_EXPORT JSDebuggerAgent : public QDeclarativeDebugService , p Q_OBJECT public: JSDebuggerAgent(QScriptEngine *engine); + JSDebuggerAgent(QDeclarativeEngine *engine); ~JSDebuggerAgent(); // reimplemented diff --git a/share/qtcreator/qmljsdebugger/jsdebuggeragent.cpp b/share/qtcreator/qmljsdebugger/jsdebuggeragent.cpp index e489be6b1d666c6df691b33636bbbb33a75c7a2d..24c61eead00ddb02a24ac6dbda5d8e2db1c8c926 100644 --- a/share/qtcreator/qmljsdebugger/jsdebuggeragent.cpp +++ b/share/qtcreator/qmljsdebugger/jsdebuggeragent.cpp @@ -49,6 +49,7 @@ #include <QtCore/QUrl> #include <QtCore/QDateTime> #include <QtScript/qscriptvalueiterator.h> +#include <private/qdeclarativeengine_p.h> namespace QmlJSDebugger { @@ -190,6 +191,12 @@ JSDebuggerAgent::JSDebuggerAgent(QScriptEngine *engine) , state(NoState) {} +JSDebuggerAgent::JSDebuggerAgent(QDeclarativeEngine *engine) + : QDeclarativeDebugService("JSDebugger") + , QScriptEngineAgent(QDeclarativeEnginePrivate::getScriptEngine(engine)) + , state(NoState) +{} + /*! Destroys this QScriptDebuggerAgent. */ diff --git a/share/qtcreator/qmljsdebugger/qmljsdebugger-lib.pri b/share/qtcreator/qmljsdebugger/qmljsdebugger-lib.pri index 1ca47b8b7f1c6242238a2967e4a8259f952e3c27..f4918263780616f86cce6310bb8e5a6296a27678 100644 --- a/share/qtcreator/qmljsdebugger/qmljsdebugger-lib.pri +++ b/share/qtcreator/qmljsdebugger/qmljsdebugger-lib.pri @@ -10,20 +10,26 @@ contains(CONFIG, dll) { include($$PWD/private_headers.pri) -include($$PWD/editor/editor.pri) - ## Input HEADERS += \ include/jsdebuggeragent.h \ - include/qdeclarativeviewobserver.h \ - include/qdeclarativeobserverservice.h \ - include/qmlobserverconstants.h \ - include/qmljsdebugger_global.h \ - qdeclarativeviewobserver_p.h + include/qmljsdebugger_global.h SOURCES += \ - jsdebuggeragent.cpp \ - qdeclarativeviewobserver.cpp \ - qdeclarativeobserverservice.cpp + jsdebuggeragent.cpp + +contains(DEFINES, QMLOBSERVER) { + include($$PWD/editor/editor.pri) + + HEADERS += \ + include/qdeclarativeviewobserver.h \ + include/qdeclarativeobserverservice.h \ + include/qmlobserverconstants.h \ + qdeclarativeviewobserver_p.h + + SOURCES += \ + qdeclarativeviewobserver.cpp \ + qdeclarativeobserverservice.cpp +} OTHER_FILES += qmljsdebugger.pri diff --git a/share/qtcreator/qmljsdebugger/qmljsdebugger.pro b/share/qtcreator/qmljsdebugger/qmljsdebugger.pro index 457644a2a533ed9737ff3a223a8a6e7059598941..5f3eb509580b0479012ce266276d5c487ccd6524 100644 --- a/share/qtcreator/qmljsdebugger/qmljsdebugger.pro +++ b/share/qtcreator/qmljsdebugger/qmljsdebugger.pro @@ -2,6 +2,8 @@ TEMPLATE = lib CONFIG+=dll TARGET = QmlJSDebugger +DEFINES += QMLOBSERVER + unix:QMAKE_CXXFLAGS_DEBUG += -O3 include(../../../src/qtcreatorlibrary.pri) diff --git a/share/qtcreator/templates/qmlapp/app.pro b/share/qtcreator/templates/qmlapp/app.pro index 74669876dc4ac734ef3e2577173b198747741f79..e893e8e3c20afe83d253181752794effb3755cca 100644 --- a/share/qtcreator/templates/qmlapp/app.pro +++ b/share/qtcreator/templates/qmlapp/app.pro @@ -22,8 +22,9 @@ symbian:TARGET.UID3 = 0xE1111234 symbian:ICON = symbianicon.svg -# Define to enable the Qml Observer in debug mode -# QMLOBSERVER # +# Define QMLJSDEBUGGER to enable basic debugging (setting breakpoints etc) +# Define QMLOBSERVER for advanced features (requires experimental QmlInspector plugin!) +#DEFINES += QMLJSDEBUGGER #DEFINES += QMLOBSERVER SOURCES += main.cpp diff --git a/share/qtcreator/templates/qmlapp/qmlapplicationviewer/qmlapplicationviewer.cpp b/share/qtcreator/templates/qmlapp/qmlapplicationviewer/qmlapplicationviewer.cpp index 2de38e5f446b5d204fcfb82dfd5936ef8013226e..2e4adfc3b2fb54d02ae2ea31f1baca89593e667c 100644 --- a/share/qtcreator/templates/qmlapp/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/share/qtcreator/templates/qmlapp/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -7,6 +7,9 @@ #include <QtDeclarative/QDeclarativeEngine> #include <QtDeclarative/QDeclarativeContext> +#if defined(QMLJSDEBUGGER) +#include <jsdebuggeragent.h> +#endif #if defined(QMLOBSERVER) #include <qdeclarativeviewobserver.h> #endif @@ -50,6 +53,9 @@ QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) : { connect(engine(), SIGNAL(quit()), SLOT(close())); setResizeMode(QDeclarativeView::SizeRootObjectToView); +#ifdef QMLJSDEBUGGER + new QmlJSDebugger::JSDebuggerAgent(engine()); +#endif #ifdef QMLOBSERVER new QmlJSDebugger::QDeclarativeViewObserver(this, parent); #endif diff --git a/share/qtcreator/templates/qmlapp/qmlapplicationviewer/qmlapplicationviewer.pri b/share/qtcreator/templates/qmlapp/qmlapplicationviewer/qmlapplicationviewer.pri index 600262ac94a9b840cb67d44395eabf321e84e495..22f9ffd0079778e55f4d004131957a60e528843f 100644 --- a/share/qtcreator/templates/qmlapp/qmlapplicationviewer/qmlapplicationviewer.pri +++ b/share/qtcreator/templates/qmlapp/qmlapplicationviewer/qmlapplicationviewer.pri @@ -8,14 +8,17 @@ HEADERS += $$PWD/qmlapplicationviewer.h INCLUDEPATH += $$PWD contains(DEFINES, QMLOBSERVER) { + DEFINES *= QMLJSDEBUGGER +} +contains(DEFINES, QMLJSDEBUGGER) { CONFIG(debug, debug|release) { - isEmpty(QMLOBSERVER_PATH) { - warning(QMLOBSERVER_PATH was not set. QMLOBSERVER not activated.) - DEFINES -= QMLOBSERVER + isEmpty(QMLJSDEBUGGER_PATH) { + warning(QMLJSDEBUGGER_PATH was not set. QMLJSDEBUGGER not activated.) + DEFINES -= QMLJSDEBUGGER } else { - include($$QMLOBSERVER_PATH/qmljsdebugger-lib.pri) + include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri) } } else { - DEFINES -= QMLOBSERVER + DEFINES -= QMLJSDEBUGGER } } diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 0619b7a78bb754c775e37ace5818fd12beb9ffd5..0e71f4e26a05db842256c4dbd050c442b136d27f 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -128,7 +128,7 @@ QStringList QMakeStep::allArguments() /// moreArguments, /// -unix for Maemo /// -after OBJECTS_DIR, MOC_DIR, UI_DIR, RCC_DIR -/// QMAKE_VAR_QMLOBSERVER_PATH +/// QMAKE_VAR_QMLJSDEBUGGER_PATH QStringList QMakeStep::moreArguments() { Qt4BuildConfiguration *bc = qt4BuildConfiguration(); @@ -152,7 +152,7 @@ QStringList QMakeStep::moreArguments() << QLatin1String("RCC_DIR=rcc"); } - arguments << QLatin1String(Constants::QMAKEVAR_QMLOBSERVER_PATH) + QLatin1Char('=') + + arguments << QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH) + QLatin1Char('=') + Core::ICore::instance()->resourcePath() + QLatin1String("/qmljsdebugger"); return arguments; } diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index 3ead32b80f46f56cf9aefd600dab2661d3c25b7f..43ba7dff082b72601758f1cb9bc6c20889f90322 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -525,7 +525,7 @@ QStringList Qt4BuildConfiguration::removeQMLInspectorFromArgumentList(const QStr { QStringList result; foreach (const QString &str, old) - if (!str.startsWith(QLatin1String(Constants::QMAKEVAR_QMLOBSERVER_PATH))) + if (!str.startsWith(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))) result << str; return result; } diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h index 1eb2c36122cfc720bb7e86ebc3202ad2636e5a3b..9d62da41eeec1354c3aea4bf80afec2154db7f2c 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h +++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h @@ -112,7 +112,7 @@ const char * const ICON_WINDOW = ":/qt4projectmanager/images/window.png"; const char * const ICON_QML_STANDALONE = ":/wizards/images/qml_standalone.png"; // Env variables -const char * const QMAKEVAR_QMLOBSERVER_PATH = "QMLOBSERVER_PATH"; +const char * const QMAKEVAR_QMLJSDEBUGGER_PATH = "QMLJSDEBUGGER_PATH"; } // namespace Constants } // namespace Qt4ProjectManager diff --git a/src/plugins/qt4projectmanager/wizards/qmlstandaloneapp.cpp b/src/plugins/qt4projectmanager/wizards/qmlstandaloneapp.cpp index 0a2daa6cc730898483a61b4521a031f505f84573..dd77566272f03484eb3d31f47db2f3222ba07cd6 100644 --- a/src/plugins/qt4projectmanager/wizards/qmlstandaloneapp.cpp +++ b/src/plugins/qt4projectmanager/wizards/qmlstandaloneapp.cpp @@ -242,7 +242,7 @@ void QmlStandaloneApp::handleCurrentProFileTemplateLine(const QString &line, } } proFile << "DEPLOYMENTFOLDERS = " << folders.join(QLatin1String(" ")) << endl; - } else if (line.contains(QLatin1String("# QMLOBSERVER"))) { + } else if (line.contains(QLatin1String("# QMLJSDEBUGGER"))) { // ### disabled for now; figure out the private headers problem first. //uncommentNextLine = true; Q_UNUSED(uncommentNextLine);