Merge master into api_changes
authorKent Hansen <kent.hansen@nokia.com>
Fri, 23 Mar 2012 13:31:47 +0000 (14:31 +0100)
committerKent Hansen <kent.hansen@nokia.com>
Fri, 23 Mar 2012 13:31:47 +0000 (14:31 +0100)
Conflicts:
src/qml/qml/qqmlboundsignal.cpp
src/qml/qml/qqmlpropertycache.cpp

Change-Id: I5193a193fa301c0b518291645bf626a5fa07118f

20 files changed:
1  2 
src/qml/debugger/qqmlenginedebugservice.cpp
src/qml/debugger/qqmlprofilerservice_p.h
src/qml/qml/qqmlboundsignal.cpp
src/qml/qml/qqmlcompiler.cpp
src/qml/qml/qqmlmetatype.cpp
src/qml/qml/qqmlpropertycache.cpp
src/qml/qml/qqmlstringconverters.cpp
src/qml/qml/qqmlvme.cpp
src/qml/qml/qqmlxmlhttprequest.cpp
src/qml/qml/v4/qv4bindings.cpp
src/qml/qml/v8/qqmlbuiltinfunctions.cpp
src/qml/qml/v8/qv8engine.cpp
src/quick/items/qquickcanvas.cpp
src/quick/items/qquickitem.cpp
src/quick/items/qquickitem.h
src/quick/items/qquickshadereffect.cpp
src/quick/particles/qquickcustomparticle.cpp
src/quick/scenegraph/qsgcontext.cpp
tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
tests/auto/quick/qquicktext/tst_qquicktext.cpp

@@@ -210,8 -206,14 +206,14 @@@ struct QQmlHandlingSignalProfiler 
          enabled = QQmlProfilerService::instance
                  ? QQmlProfilerService::instance->profilingEnabled() : false;
          if (enabled) {
-             QQmlProfilerService::instance->startRange(
-                         QQmlProfilerService::HandlingSignal);
+             QQmlProfilerService *service = QQmlProfilerService::instance;
+             service->startRange(QQmlProfilerService::HandlingSignal);
+             service->rangeData(QQmlProfilerService::HandlingSignal,
 -                               QLatin1String(signal.signature()) + QLatin1String(": ")
++                               QString::fromLatin1(signal.methodSignature()) + QLatin1String(": ")
+                                + expression->expression());
+             service->rangeLocation(QQmlProfilerService::HandlingSignal,
+                                    expression->sourceFile(), expression->lineNumber(),
+                                    expression->columnNumber());
          }
      }
  
@@@ -172,15 -172,9 +172,9 @@@ int QQmlBoundSignal::qt_metacall(QMetaO
              return -1;
  
          if (QQmlDebugService::isDebuggingEnabled())
 -            QV8DebugService::instance()->signalEmitted(QString::fromAscii(m_signal.signature()));
 +            QV8DebugService::instance()->signalEmitted(QString::fromAscii(m_signal.methodSignature().constData()));
  
-         QQmlHandlingSignalProfiler prof;
-         if (prof.enabled) {
-             prof.setSignalInfo(QString::fromLatin1(m_signal.methodSignature().constData()),
-                                m_expression->expression());
-             prof.setLocation(m_expression->sourceFile(), m_expression->lineNumber(),
-                              m_expression->columnNumber());
-         }
+         QQmlHandlingSignalProfiler prof(m_signal, m_expression);
  
          m_isEvaluating = true;
          if (!m_paramsValid) {
@@@ -233,7 -227,10 +227,10 @@@ QQmlBoundSignalParameters::QQmlBoundSig
              prop.setWritable(false);
          } else {
              QByteArray propType = type;
-             if (t >= int(QVariant::UserType) || t == QMetaType::UnknownType || t == QMetaType::Void) {
+             if ((QMetaType::typeFlags(t) & QMetaType::IsEnumeration) == QMetaType::IsEnumeration) {
+                 t = QVariant::Int;
+                 propType = "int";
 -            } else if (t == QVariant::Invalid) {
++            } else if (t == QMetaType::UnknownType) {
                  QByteArray scope;
                  QByteArray name;
                  int scopeIdx = propType.lastIndexOf("::");
Simple merge
Simple merge
@@@ -719,20 -738,18 +730,22 @@@ int *QQmlPropertyCache::methodParameter
  
          const QMetaObject *metaObject = object->metaObject();
          QMetaMethod m = metaObject->method(index);
 -        QList<QByteArray> argTypeNames = m.parameterTypes();
  
 -        A *args = static_cast<A *>(malloc(sizeof(A) + (argTypeNames.count() + 1) * sizeof(int)));
 -        args->arguments[0] = argTypeNames.count();
 +        int argc = m.parameterCount();
 +        A *args = static_cast<A *>(malloc(sizeof(A) + (argc + 1) * sizeof(int)));
 +        args->arguments[0] = argc;
 +        QList<QByteArray> argTypeNames; // Only loaded if needed
  
 -        for (int ii = 0; ii < argTypeNames.count(); ++ii) {
 -            int type = QMetaType::type(argTypeNames.at(ii));
 +        for (int ii = 0; ii < argc; ++ii) {
 +            int type = m.parameterType(ii);
-             if (type == QVariant::Invalid) {
+             if ((QMetaType::typeFlags(type) & QMetaType::IsEnumeration) == QMetaType::IsEnumeration)
+                 type = QVariant::Int;
 -            else if (type == QVariant::Invalid)
++            else if (type == QMetaType::UnknownType) {
 +                if (argTypeNames.isEmpty())
 +                    argTypeNames = m.parameterTypes();
                  type = EnumType(object->metaObject(), argTypeNames.at(ii));
 -            if (type == QVariant::Invalid) {
 +            }
-             if (type == QVariant::Invalid) {
++            if (type == QMetaType::UnknownType) {
                  if (unknownTypeError) *unknownTypeError = argTypeNames.at(ii);
                  free(args);
                  return 0;
  
      } else {
          QMetaMethod m = object->metaObject()->method(index);
 -        QList<QByteArray> argTypeNames = m.parameterTypes();
 -        dummy.resize(argTypeNames.count() + 1);
 -        dummy[0] = argTypeNames.count();
 +        int argc = m.parameterCount();
 +        dummy.resize(argc + 1);
 +        dummy[0] = argc;
 +        QList<QByteArray> argTypeNames; // Only loaded if needed
  
 -        for (int ii = 0; ii < argTypeNames.count(); ++ii) {
 -            int type = QMetaType::type(argTypeNames.at(ii));
 +        for (int ii = 0; ii < argc; ++ii) {
 +            int type = m.parameterType(ii);
-             if (type == QVariant::Invalid) {
+             if ((QMetaType::typeFlags(type) & QMetaType::IsEnumeration) == QMetaType::IsEnumeration)
+                 type = QVariant::Int;
 -            else if (type == QVariant::Invalid)
++            else if (type == QMetaType::UnknownType) {
 +                if (argTypeNames.isEmpty())
 +                    argTypeNames = m.parameterTypes();
                  type = EnumType(object->metaObject(), argTypeNames.at(ii));
 -            if (type == QVariant::Invalid) {
 +            }
-             if (type == QVariant::Invalid) {
++            if (type == QMetaType::UnknownType) {
                  if (unknownTypeError) *unknownTypeError = argTypeNames.at(ii);
                  return 0;
              }
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -54,7 -54,9 +54,8 @@@
  
  #include <QGuiApplication>
  #include <QOpenGLContext>
+ #include <QtGui/qopenglframebufferobject.h>
  
 -#include <QQmlImageProvider>
  #include <private/qqmlglobal_p.h>
  
  #include <QtQuick/private/qsgtexture_p.h>