Remove "All rights reserved" line from license headers.
[profile/ivi/qtdeclarative.git] / src / declarative / qml / qdeclarativeboundsignal.cpp
index 3e03617..340e78d 100644 (file)
@@ -1,8 +1,7 @@
 /****************************************************************************
 **
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
 **
 ** This file is part of the QtDeclarative module of the Qt Toolkit.
 **
 **
 **
 **
+**
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/
 
-#include "private/qdeclarativeboundsignal_p.h"
+#include "qdeclarativeboundsignal_p.h"
 
-#include "private/qmetaobjectbuilder_p.h"
-#include "private/qdeclarativeengine_p.h"
-#include "private/qdeclarativeexpression_p.h"
-#include "private/qdeclarativecontext_p.h"
-#include "private/qdeclarativemetatype_p.h"
+#include <private/qmetaobjectbuilder_p.h>
+#include "qdeclarativeengine_p.h"
+#include "qdeclarativeexpression_p.h"
+#include "qdeclarativecontext_p.h"
+#include "qdeclarativemetatype_p.h"
 #include "qdeclarative.h"
 #include "qdeclarativecontext.h"
-#include "private/qdeclarativeglobal_p.h"
-#include "private/qdeclarativedebugtrace_p.h"
+#include "qdeclarativeglobal_p.h"
+#include <private/qdeclarativedebugtrace_p.h>
+#include <private/qv8debugservice_p.h>
 
 #include <QtCore/qstringbuilder.h>
 #include <QtCore/qdebug.h>
@@ -172,7 +173,8 @@ int QDeclarativeBoundSignal::qt_metacall(QMetaObject::Call c, int id, void **a)
         if (QDeclarativeDebugService::isDebuggingEnabled()) {
             QDeclarativeDebugTrace::startRange(QDeclarativeDebugTrace::HandlingSignal);
             QDeclarativeDebugTrace::rangeData(QDeclarativeDebugTrace::HandlingSignal, QLatin1String(m_signal.signature()) % QLatin1String(": ") % m_expression->expression());
-            QDeclarativeDebugTrace::rangeLocation(QDeclarativeDebugTrace::HandlingSignal, m_expression->sourceFile(), m_expression->lineNumber());
+            QDeclarativeDebugTrace::rangeLocation(QDeclarativeDebugTrace::HandlingSignal, m_expression->sourceFile(), m_expression->lineNumber(), m_expression->columnNumber());
+            QV8DebugService::instance()->signalEmitted(QString::fromAscii(m_signal.signature()));
         }
         m_isEvaluating = true;
         if (!m_paramsValid) {
@@ -227,7 +229,6 @@ QDeclarativeBoundSignalParameters::QDeclarativeBoundSignalParameters(const QMeta
         } else {
             QByteArray propType = type;
             if (t >= QVariant::UserType || t == QVariant::Invalid) {
-                //copy of QDeclarativeObjectScriptClass::enumType()
                 QByteArray scope;
                 QByteArray name;
                 int scopeIdx = propType.lastIndexOf("::");
@@ -251,15 +252,9 @@ QDeclarativeBoundSignalParameters::QDeclarativeBoundSignalParameters(const QMeta
                     }
                 }
             }
-            if (QDeclarativeMetaType::canCopy(t)) {
-                types[ii] = t;
-                QMetaPropertyBuilder prop = mob.addProperty(name, propType);
-                prop.setWritable(false);
-            } else {
-                types[ii] = 0x80000000 | t;
-                QMetaPropertyBuilder prop = mob.addProperty(name, "QVariant");
-                prop.setWritable(false);
-            }
+            types[ii] = t;
+            QMetaPropertyBuilder prop = mob.addProperty(name, propType);
+            prop.setWritable(false);
         }
     }
     myMetaObject = mob.toMetaObject();
@@ -271,7 +266,7 @@ QDeclarativeBoundSignalParameters::QDeclarativeBoundSignalParameters(const QMeta
 QDeclarativeBoundSignalParameters::~QDeclarativeBoundSignalParameters()
 {
     delete [] types;
-    qFree(myMetaObject);
+    free(myMetaObject);
 }
 
 void QDeclarativeBoundSignalParameters::setValues(void **v)
@@ -290,11 +285,10 @@ int QDeclarativeBoundSignalParameters::metaCall(QMetaObject::Call c, int id, voi
         return -1;
 
     if (c == QMetaObject::ReadProperty && id >= 1) {
-        if (types[id - 1] & 0x80000000) {
-            *((QVariant *)a[0]) = QVariant(types[id - 1] & 0x7FFFFFFF, values[id]);
-        } else {
-            QDeclarativeMetaType::copy(types[id - 1], a[0], values[id]);
-        }
+        int t = types[id - 1];
+        void *p = a[0];
+        QMetaType::destruct(t, p);
+        QMetaType::construct(t, p, values[id]);
         return -1;
     } else {
         return qt_metacall(c, id, a);