diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2012-03-19 12:29:32 +0100 |
---|---|---|
committer | Kent Hansen <kent.hansen@nokia.com> | 2012-03-19 12:37:03 +0100 |
commit | 4821058f10118be55a541ad39e25ec9165cca3b3 (patch) | |
tree | 167973e3c68fc442b0e37d6f628f3fdbe759f15a /src/qml/debugger | |
parent | 83f11e33745180e9370d484cbcedd0bac020c9dd (diff) | |
parent | 26d5f2e833f0e3686aaa27e695bbfab5fbd808ad (diff) |
Merge master into api_changes
Conflicts:
src/qml/debugger/qqmlenginedebugservice.cpp
src/qml/qml/v8/qv8qobjectwrapper.cpp
src/quick/util/qquickimageprovider.cpp
tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
Change-Id: Ie78ba2fabd32f4812bcae9dbdd66ed289dc11dcb
Diffstat (limited to 'src/qml/debugger')
-rw-r--r-- | src/qml/debugger/qdebugmessageservice.cpp | 2 | ||||
-rw-r--r-- | src/qml/debugger/qqmldebugserver.cpp | 26 | ||||
-rw-r--r-- | src/qml/debugger/qqmldebugservice.cpp | 4 | ||||
-rw-r--r-- | src/qml/debugger/qqmldebugstatesdelegate_p.h | 5 | ||||
-rw-r--r-- | src/qml/debugger/qqmlenginedebugservice.cpp | 64 | ||||
-rw-r--r-- | src/qml/debugger/qqmlenginedebugservice_p.h | 6 | ||||
-rw-r--r-- | src/qml/debugger/qqmlinspectorservice.cpp | 2 | ||||
-rw-r--r-- | src/qml/debugger/qqmlprofilerservice.cpp | 2 | ||||
-rw-r--r-- | src/qml/debugger/qv8debugservice.cpp | 2 | ||||
-rw-r--r-- | src/qml/debugger/qv8profilerservice.cpp | 2 |
10 files changed, 65 insertions, 50 deletions
diff --git a/src/qml/debugger/qdebugmessageservice.cpp b/src/qml/debugger/qdebugmessageservice.cpp index dcaa514cd7..a41f95c2c7 100644 --- a/src/qml/debugger/qdebugmessageservice.cpp +++ b/src/qml/debugger/qdebugmessageservice.cpp @@ -69,7 +69,7 @@ public: QDebugMessageService::QDebugMessageService(QObject *parent) : QQmlDebugService(*(new QDebugMessageServicePrivate()), - QLatin1String("DebugMessages"), 2, parent) + QStringLiteral("DebugMessages"), 2, parent) { Q_D(QDebugMessageService); diff --git a/src/qml/debugger/qqmldebugserver.cpp b/src/qml/debugger/qqmldebugserver.cpp index e70632d925..ec3f9dafc2 100644 --- a/src/qml/debugger/qqmldebugserver.cpp +++ b/src/qml/debugger/qqmldebugserver.cpp @@ -155,7 +155,7 @@ void QQmlDebugServerPrivate::advertisePlugins() pluginNames << service->name(); pluginVersions << service->version(); } - out << QString(QLatin1String("QDeclarativeDebugClient")) << 1 << pluginNames << pluginVersions; + out << QString(QStringLiteral("QDeclarativeDebugClient")) << 1 << pluginNames << pluginVersions; } QMetaObject::invokeMethod(q, "_q_sendMessages", Qt::QueuedConnection, Q_ARG(QList<QByteArray>, QList<QByteArray>() << message)); @@ -217,8 +217,8 @@ void QQmlDebugServerThread::run() connection->setPort(m_port, m_block); } else { QCoreApplicationPrivate *appD = static_cast<QCoreApplicationPrivate*>(QObjectPrivate::get(qApp)); - qWarning() << QString::fromAscii("QML Debugger: Ignoring \"-qmljsdebugger=%1\". " - "Remote debugger plugin has not been found.").arg(appD->qmljsDebugArgumentsString()); + qWarning() << QString(QLatin1String("QML Debugger: Ignoring \"-qmljsdebugger=%1\". " + "Remote debugger plugin has not been found.")).arg(appD->qmljsDebugArgumentsString()); } exec(); @@ -262,9 +262,9 @@ QQmlDebugServer *QQmlDebugServer::instance() // format: qmljsdebugger=port:3768[,block] OR qmljsdebugger=ost[,block] if (!appD->qmljsDebugArgumentsString().isEmpty()) { if (!QQmlEnginePrivate::qml_debugging_enabled) { - qWarning() << QString::fromLatin1( + qWarning() << QString(QLatin1String( "QML Debugger: Ignoring \"-qmljsdebugger=%1\". " - "Debugging has not been enabled.").arg( + "Debugging has not been enabled.")).arg( appD->qmljsDebugArgumentsString()); return 0; } @@ -273,9 +273,9 @@ QQmlDebugServer *QQmlDebugServer::instance() if (appD->qmljsDebugArgumentsString().indexOf(QLatin1String("port:")) == 0) { int separatorIndex = appD->qmljsDebugArgumentsString().indexOf(QLatin1Char(',')); port = appD->qmljsDebugArgumentsString().mid(5, separatorIndex - 5).toInt(&ok); - pluginName = QLatin1String("qmldbg_tcp"); + pluginName = QStringLiteral("qmldbg_tcp"); } else if (appD->qmljsDebugArgumentsString().contains(QLatin1String("ost"))) { - pluginName = QLatin1String("qmldbg_ost"); + pluginName = QStringLiteral("qmldbg_ost"); ok = true; } @@ -298,17 +298,17 @@ QQmlDebugServer *QQmlDebugServer::instance() } } else { - qWarning() << QString::fromLatin1( + qWarning() << QString(QLatin1String( "QML Debugger: Ignoring \"-qmljsdebugger=%1\". " - "Format is -qmljsdebugger=port:<port>[,block]").arg( + "Format is -qmljsdebugger=port:<port>[,block]")).arg( appD->qmljsDebugArgumentsString()); } } #else if (!appD->qmljsDebugArgumentsString().isEmpty()) { - qWarning() << QString::fromLatin1( + qWarning() << QString(QLatin1String( "QML Debugger: Ignoring \"-qmljsdebugger=%1\". " - "QtQml is not configured for debugging.").arg( + "QtQml is not configured for debugging.")).arg( appD->qmljsDebugArgumentsString()); } #endif @@ -373,7 +373,7 @@ void QQmlDebugServer::receiveMessage(const QByteArray &message) pluginVersions << service->version(); } - out << QString(QLatin1String("QDeclarativeDebugClient")) << 0 << protocolVersion << pluginNames << pluginVersions; + out << QString(QStringLiteral("QDeclarativeDebugClient")) << 0 << protocolVersion << pluginNames << pluginVersions; } d->connection->send(QList<QByteArray>() << helloAnswer); @@ -389,7 +389,7 @@ void QQmlDebugServer::receiveMessage(const QByteArray &message) iter.value()->stateChanged(newState); } - qWarning("QML Debugger: Connection established."); + qDebug("QML Debugger: Connection established."); d->messageArrivedCondition.wakeAll(); } else if (op == 1) { diff --git a/src/qml/debugger/qqmldebugservice.cpp b/src/qml/debugger/qqmldebugservice.cpp index a1cc4fe0a3..45948490cf 100644 --- a/src/qml/debugger/qqmldebugservice.cpp +++ b/src/qml/debugger/qqmldebugservice.cpp @@ -216,11 +216,11 @@ bool QQmlDebugService::hasDebuggingClient() QString QQmlDebugService::objectToString(QObject *obj) { if(!obj) - return QLatin1String("NULL"); + return QStringLiteral("NULL"); QString objectName = obj->objectName(); if(objectName.isEmpty()) - objectName = QLatin1String("<unnamed>"); + objectName = QStringLiteral("<unnamed>"); QString rv = QString::fromUtf8(obj->metaObject()->className()) + QLatin1String(": ") + objectName; diff --git a/src/qml/debugger/qqmldebugstatesdelegate_p.h b/src/qml/debugger/qqmldebugstatesdelegate_p.h index 6e3cc978f2..6d4ac10dbf 100644 --- a/src/qml/debugger/qqmldebugstatesdelegate_p.h +++ b/src/qml/debugger/qqmldebugstatesdelegate_p.h @@ -54,6 +54,8 @@ // #include <QtQml/qtqmlglobal.h> +#include <QtCore/QList> +#include <QtCore/QPointer> QT_BEGIN_HEADER @@ -74,7 +76,8 @@ protected: public: virtual ~QQmlDebugStatesDelegate() {} - virtual void buildStatesList(QQmlContext *ctxt, bool cleanList) = 0; + virtual void buildStatesList(bool cleanList, + const QList<QPointer<QObject> > &instances) = 0; virtual void updateBinding(QQmlContext *context, const QQmlProperty &property, const QVariant &expression, bool isLiteralValue, diff --git a/src/qml/debugger/qqmlenginedebugservice.cpp b/src/qml/debugger/qqmlenginedebugservice.cpp index 76a88029ea..67bec3577b 100644 --- a/src/qml/debugger/qqmlenginedebugservice.cpp +++ b/src/qml/debugger/qqmlenginedebugservice.cpp @@ -67,7 +67,7 @@ QQmlEngineDebugService *QQmlEngineDebugService::instance() } QQmlEngineDebugService::QQmlEngineDebugService(QObject *parent) - : QQmlDebugService(QLatin1String("QDeclarativeEngine"), 1, parent), + : QQmlDebugService(QStringLiteral("QDeclarativeEngine"), 1, parent), m_watch(new QQmlWatcher(this)), m_statesDelegate(0) { @@ -206,12 +206,12 @@ QVariant QQmlEngineDebugService::valueContents(const QVariant &value) const if (o) { QString name = o->objectName(); if (name.isEmpty()) - name = QLatin1String("<unnamed object>"); + name = QStringLiteral("<unnamed object>"); return name; } } - return QLatin1String("<unknown value>"); + return QString(QStringLiteral("<unknown value>")); } void QQmlEngineDebugService::buildObjectDump(QDataStream &message, @@ -247,7 +247,7 @@ void QQmlEngineDebugService::buildObjectDump(QDataStream &message, prop.value = expr->expression(); QObject *scope = expr->scopeObject(); if (scope) { - QString methodName = QLatin1String(scope->metaObject()->method(signal->index()).name().constData()); + QString methodName = QString::fromLatin1(scope->metaObject()->method(signal->index()).name()); if (!methodName.isEmpty()) { prop.name = QLatin1String("on") + methodName[0].toUpper() + methodName.mid(1); @@ -295,7 +295,9 @@ void QQmlEngineDebugService::prepareDeferredObjects(QObject *obj) } -void QQmlEngineDebugService::buildObjectList(QDataStream &message, QQmlContext *ctxt) +void QQmlEngineDebugService::buildObjectList(QDataStream &message, + QQmlContext *ctxt, + const QList<QPointer<QObject> > &instances) { QQmlContextData *p = QQmlContextData::get(ctxt); @@ -316,29 +318,30 @@ void QQmlEngineDebugService::buildObjectList(QDataStream &message, QQmlContext * child = p->childContexts; while (child) { - buildObjectList(message, child->asQQmlContext()); + buildObjectList(message, child->asQQmlContext(), instances); child = child->nextChild; } - // Clean deleted objects - QQmlContextPrivate *ctxtPriv = QQmlContextPrivate::get(ctxt); - for (int ii = 0; ii < ctxtPriv->instances.count(); ++ii) { - if (!ctxtPriv->instances.at(ii)) { - ctxtPriv->instances.removeAt(ii); - --ii; - } + count = 0; + for (int ii = 0; ii < instances.count(); ++ii) { + QQmlData *data = QQmlData::get(instances.at(ii)); + if (data->context == p) + count ++; } + message << count; - message << ctxtPriv->instances.count(); - for (int ii = 0; ii < ctxtPriv->instances.count(); ++ii) { - message << objectData(ctxtPriv->instances.at(ii)); + for (int ii = 0; ii < instances.count(); ++ii) { + QQmlData *data = QQmlData::get(instances.at(ii)); + if (data->context == p) + message << objectData(instances.at(ii)); } } -void QQmlEngineDebugService::buildStatesList(QQmlContext *ctxt, bool cleanList) +void QQmlEngineDebugService::buildStatesList(bool cleanList, + const QList<QPointer<QObject> > &instances) { if (m_statesDelegate) - m_statesDelegate->buildStatesList(ctxt, cleanList); + m_statesDelegate->buildStatesList(cleanList, instances); } QQmlEngineDebugService::QQmlObjectData @@ -425,8 +428,17 @@ void QQmlEngineDebugService::processMessage(const QByteArray &message) rs << QByteArray("LIST_OBJECTS_R") << queryId; if (engine) { - buildObjectList(rs, engine->rootContext()); - buildStatesList(engine->rootContext(), true); + QQmlContext *rootContext = engine->rootContext(); + // Clean deleted objects + QQmlContextPrivate *ctxtPriv = QQmlContextPrivate::get(rootContext); + for (int ii = 0; ii < ctxtPriv->instances.count(); ++ii) { + if (!ctxtPriv->instances.at(ii)) { + ctxtPriv->instances.removeAt(ii); + --ii; + } + } + buildObjectList(rs, rootContext, ctxtPriv->instances); + buildStatesList(true, ctxtPriv->instances); } sendMessage(reply); @@ -508,11 +520,11 @@ void QQmlEngineDebugService::processMessage(const QByteArray &message) bool undefined = false; QVariant value = exprObj.evaluate(&undefined); if (undefined) - result = QLatin1String("<undefined>"); + result = QString(QStringLiteral("<undefined>")); else result = valueContents(value); } else { - result = QLatin1String("<unknown context>"); + result = QString(QStringLiteral("<unknown context>")); } QByteArray reply; @@ -575,10 +587,8 @@ void QQmlEngineDebugService::setBinding(int objectId, QQmlPropertyPrivate::setSignalExpression(property, qmlExpression); qmlExpression->setSourceLocation(filename, line, column); } else if (property.isProperty()) { - QQmlBinding *binding = new QQmlBinding(expression.toString(), object, context); + QQmlBinding *binding = new QQmlBinding(expression.toString(), false, object, QQmlContextData::get(context), filename, line, column);; binding->setTarget(property); - binding->setSourceLocation(filename, line, column); - binding->setNotifyOnValueChanged(true); QQmlAbstractBinding *oldBinding = QQmlPropertyPrivate::setBinding(property, binding); if (oldBinding) oldBinding->destroy(); @@ -665,11 +675,11 @@ void QQmlEngineDebugService::setMethodBody(int objectId, const QString &method, QString paramStr; for (int ii = 0; ii < paramNames.count(); ++ii) { - if (ii != 0) paramStr.append(QLatin1String(",")); + if (ii != 0) paramStr.append(QLatin1Char(',')); paramStr.append(QString::fromUtf8(paramNames.at(ii))); } - QString jsfunction = QLatin1String("(function ") + method + QLatin1String("(") + paramStr + + QString jsfunction = QLatin1String("(function ") + method + QLatin1Char('(') + paramStr + QLatin1String(") {"); jsfunction += body; jsfunction += QLatin1String("\n})"); diff --git a/src/qml/debugger/qqmlenginedebugservice_p.h b/src/qml/debugger/qqmlenginedebugservice_p.h index 1a92801fcc..f41063d7a3 100644 --- a/src/qml/debugger/qqmlenginedebugservice_p.h +++ b/src/qml/debugger/qqmlenginedebugservice_p.h @@ -57,6 +57,7 @@ #include <QtCore/qurl.h> #include <QtCore/qvariant.h> +#include <QtCore/QPointer> QT_BEGIN_NAMESPACE @@ -111,9 +112,10 @@ private Q_SLOTS: private: void prepareDeferredObjects(QObject *); - void buildObjectList(QDataStream &, QQmlContext *); + void buildObjectList(QDataStream &, QQmlContext *, + const QList<QPointer<QObject> > &instances); void buildObjectDump(QDataStream &, QObject *, bool, bool); - void buildStatesList(QQmlContext *, bool); + void buildStatesList(bool cleanList, const QList<QPointer<QObject> > &instances); QQmlObjectData objectData(QObject *); QQmlObjectProperty propertyData(QObject *, int); QVariant valueContents(const QVariant &defaultValue) const; diff --git a/src/qml/debugger/qqmlinspectorservice.cpp b/src/qml/debugger/qqmlinspectorservice.cpp index c494045bff..5426745bc6 100644 --- a/src/qml/debugger/qqmlinspectorservice.cpp +++ b/src/qml/debugger/qqmlinspectorservice.cpp @@ -58,7 +58,7 @@ QT_BEGIN_NAMESPACE Q_GLOBAL_STATIC(QQmlInspectorService, serviceInstance) QQmlInspectorService::QQmlInspectorService() - : QQmlDebugService(QLatin1String("QDeclarativeObserverMode"), 1) + : QQmlDebugService(QStringLiteral("QDeclarativeObserverMode"), 1) , m_currentInspectorPlugin(0) { registerService(); diff --git a/src/qml/debugger/qqmlprofilerservice.cpp b/src/qml/debugger/qqmlprofilerservice.cpp index 2731d2046b..c643073308 100644 --- a/src/qml/debugger/qqmlprofilerservice.cpp +++ b/src/qml/debugger/qqmlprofilerservice.cpp @@ -77,7 +77,7 @@ QByteArray QQmlProfilerData::toByteArray() const } QQmlProfilerService::QQmlProfilerService() - : QQmlDebugService(QLatin1String("CanvasFrameRate"), 1), + : QQmlDebugService(QStringLiteral("CanvasFrameRate"), 1), m_enabled(false), m_messageReceived(false) { m_timer.start(); diff --git a/src/qml/debugger/qv8debugservice.cpp b/src/qml/debugger/qv8debugservice.cpp index ee60bff742..a6aeda31d5 100644 --- a/src/qml/debugger/qv8debugservice.cpp +++ b/src/qml/debugger/qv8debugservice.cpp @@ -120,7 +120,7 @@ public: QV8DebugService::QV8DebugService(QObject *parent) : QQmlDebugService(*(new QV8DebugServicePrivate()), - QLatin1String("V8Debugger"), 2, parent) + QStringLiteral("V8Debugger"), 2, parent) { Q_D(QV8DebugService); v8ServiceInstancePtr = this; diff --git a/src/qml/debugger/qv8profilerservice.cpp b/src/qml/debugger/qv8profilerservice.cpp index 6473a2f4fb..6208676522 100644 --- a/src/qml/debugger/qv8profilerservice.cpp +++ b/src/qml/debugger/qv8profilerservice.cpp @@ -101,7 +101,7 @@ public: }; QV8ProfilerService::QV8ProfilerService(QObject *parent) - : QQmlDebugService(*(new QV8ProfilerServicePrivate()), QLatin1String("V8Profiler"), 1, parent) + : QQmlDebugService(*(new QV8ProfilerServicePrivate()), QStringLiteral("V8Profiler"), 1, parent) { Q_D(QV8ProfilerService); |