Remove a few unneeded includes
[profile/ivi/qtdeclarative.git] / src / declarative / qml / qdeclarativemetatype.cpp
index 778dba3..0590b2c 100644 (file)
@@ -52,6 +52,8 @@
 #include <QtCore/qmetaobject.h>
 #include <QtCore/qbitarray.h>
 #include <QtCore/qreadwritelock.h>
+#include <QtCore/private/qmetaobject_p.h>
+
 #include <qmetatype.h>
 #include <qobjectdefs.h>
 #include <qdatetime.h>
@@ -61,7 +63,6 @@
 #include <qstringlist.h>
 #include <qvector.h>
 #include <qlocale.h>
-#include <QtCore/qcryptographichash.h>
 #include <QtDeclarative/qjsvalue.h>
 
 #include <ctype.h>
@@ -94,7 +95,7 @@ struct QDeclarativeMetaTypeData
     QList<QDeclarativeType *> types;
     typedef QHash<int, QDeclarativeType *> Ids;
     Ids idToType;
-    typedef QHash<QByteArray, QDeclarativeType *> Names;
+    typedef QHash<QString, QDeclarativeType *> Names;
     Names nameToType;
     typedef QHash<const QMetaObject *, QDeclarativeType *> MetaObjects;
     MetaObjects metaObjectToType;
@@ -178,7 +179,7 @@ public:
     bool m_isInterface : 1;
     const char *m_iid;
     QString m_module;
-    QByteArray m_name;
+    QString m_name;
     QString m_elementName;
     int m_version_maj;
     int m_version_min;
@@ -240,9 +241,9 @@ QDeclarativeType::QDeclarativeType(int index, const QDeclarativePrivate::Registe
 QDeclarativeType::QDeclarativeType(int index, const QDeclarativePrivate::RegisterType &type)
 : d(new QDeclarativeTypePrivate)
 {
-    QByteArray name = type.uri;
-    if (type.uri) name += '/';
-    name += type.elementName;
+    QString name = QString::fromUtf8(type.uri);
+    if (type.uri) name += QLatin1Char('/');
+    name += QString::fromUtf8(type.elementName);
 
     d->m_module = QString::fromUtf8(type.uri);
     d->m_name = name;
@@ -398,6 +399,24 @@ static void clone(QMetaObjectBuilder &builder, const QMetaObject *mo,
     }
 }
 
+static bool isPropertyRevisioned(const QMetaObject *mo, int index)
+{
+    int i = index;
+    i -= mo->propertyOffset();
+    if (i < 0 && mo->d.superdata)
+        return isPropertyRevisioned(mo->d.superdata, index);
+
+    const QMetaObjectPrivate *mop = reinterpret_cast<const QMetaObjectPrivate*>(mo->d.data);
+    if (i >= 0 && i < mop->propertyCount) {
+        int handle = mop->propertyData + 3*i;
+        int flags = mo->d.data[handle + 2];
+
+        return (flags & Revisioned);
+    }
+
+    return false;
+}
+
 void QDeclarativeTypePrivate::init() const
 {
     if (m_isSetup) return;
@@ -451,7 +470,7 @@ void QDeclarativeTypePrivate::init() const
             mo = m_metaObjects.first().metaObject;
 
         for (int ii = 0; !m_containsRevisionedAttributes && ii < mo->propertyCount(); ++ii) {
-            if (mo->property(ii).revision() != 0)
+            if (isPropertyRevisioned(mo, ii))
                 m_containsRevisionedAttributes = true;
         }
 
@@ -497,14 +516,14 @@ QByteArray QDeclarativeType::typeName() const
 const QString &QDeclarativeType::elementName() const
 {
     if (d->m_elementName.isEmpty()) {
-        QByteArray n = qmlTypeName();
-        int idx = n.lastIndexOf('/');
-        d->m_elementName = QString::fromUtf8(n.mid(idx + 1));
+        QString n = qmlTypeName();
+        int idx = n.lastIndexOf(QLatin1Char('/'));
+        d->m_elementName = n.mid(idx + 1);
     }
     return d->m_elementName;
 }
 
-const QByteArray &QDeclarativeType::qmlTypeName() const
+const QString &QDeclarativeType::qmlTypeName() const
 {
     return d->m_name;
 }
@@ -948,20 +967,6 @@ int QDeclarativePrivate::qmlregister(RegistrationType type, void *data)
     return -1;
 }
 
-bool QDeclarativeMetaType::isAnyModule(const QByteArray &module)
-{
-    QDeclarativeMetaTypeData *data = metaTypeData();
-
-    QDeclarativeMetaTypeData::ModuleInfoHash::Iterator it = data->modules.begin();
-    while (it != data->modules.end()) {
-        if (it.key().first == module)
-            return true;
-        ++it;
-    }
-
-    return false;
-}
-
 /*
     Returns true if a module \a uri of any version is installed.
 */
@@ -1244,7 +1249,7 @@ QDeclarativeMetaType::StringConverter QDeclarativeMetaType::customStringConverte
     Returns the type (if any) of URI-qualified named \a name in version specified
     by \a version_major and \a version_minor.
 */
-QDeclarativeType *QDeclarativeMetaType::qmlType(const QByteArray &name, int version_major, int version_minor)
+QDeclarativeType *QDeclarativeMetaType::qmlType(const QString &name, int version_major, int version_minor)
 {
     Q_ASSERT(version_major >= 0 && version_minor >= 0);
     QReadLocker lock(metaTypeDataLock());
@@ -1253,7 +1258,7 @@ QDeclarativeType *QDeclarativeMetaType::qmlType(const QByteArray &name, int vers
     QDeclarativeMetaTypeData::Names::ConstIterator it = data->nameToType.find(name);
     while (it != data->nameToType.end()) {
         // XXX version_major<0 just a kludge for QDeclarativePropertyPrivate::initProperty
-        if (version_major<0 || (*it)->availableInVersion(version_major,version_minor))
+        if (it.key() == name && (version_major<0 || (*it)->availableInVersion(version_major,version_minor)))
             return (*it);
         ++it;
     }
@@ -1314,7 +1319,7 @@ QDeclarativeType *QDeclarativeMetaType::qmlType(int userType)
 /*!
     Returns the list of registered QML type names.
 */
-QList<QByteArray> QDeclarativeMetaType::qmlTypeNames()
+QList<QString> QDeclarativeMetaType::qmlTypeNames()
 {
     QReadLocker lock(metaTypeDataLock());
     QDeclarativeMetaTypeData *data = metaTypeData();
@@ -1340,13 +1345,11 @@ QT_END_NAMESPACE
 #include <QtGui/qbrush.h>
 #include <QtGui/qcolor.h>
 #include <QtGui/qpalette.h>
-#include <QtGui/qicon.h>
 #include <QtGui/qimage.h>
 #include <QtGui/qpolygon.h>
 #include <QtGui/qregion.h>
 #include <QtGui/qbitmap.h>
 #include <QtGui/qcursor.h>
-#include <QtGui/qsizepolicy.h>
 #include <QtGui/qkeysequence.h>
 #include <QtGui/qpen.h>
 
@@ -1419,7 +1422,6 @@ bool QDeclarativeMetaType::canCopy(int type)
     case QMetaType::QBrush:
     case QMetaType::QColor:
     case QMetaType::QPalette:
-    case QMetaType::QIcon:
     case QMetaType::QImage:
     case QMetaType::QPolygon:
     case QMetaType::QRegion:
@@ -1427,7 +1429,6 @@ bool QDeclarativeMetaType::canCopy(int type)
 #ifndef QT_NO_CURSOR
     case QMetaType::QCursor:
 #endif
-    case QMetaType::QSizePolicy:
     case QMetaType::QKeySequence:
     case QMetaType::QPen:
     case QMetaType::QTextLength:
@@ -1605,9 +1606,6 @@ bool QDeclarativeMetaType::copy(int type, void *data, const void *copy)
         case QMetaType::QPalette:
             *static_cast<NS(QPalette) *>(data) = *static_cast<const NS(QPalette)*>(copy);
             return true;
-        case QMetaType::QIcon:
-            *static_cast<NS(QIcon) *>(data) = *static_cast<const NS(QIcon)*>(copy);
-            return true;
         case QMetaType::QImage:
             *static_cast<NS(QImage) *>(data) = *static_cast<const NS(QImage)*>(copy);
             return true;
@@ -1625,9 +1623,6 @@ bool QDeclarativeMetaType::copy(int type, void *data, const void *copy)
             *static_cast<NS(QCursor) *>(data) = *static_cast<const NS(QCursor)*>(copy);
             return true;
 #endif
-        case QMetaType::QSizePolicy:
-            *static_cast<NS(QSizePolicy) *>(data) = *static_cast<const NS(QSizePolicy)*>(copy);
-            return true;
         case QMetaType::QKeySequence:
             *static_cast<NS(QKeySequence) *>(data) = *static_cast<const NS(QKeySequence)*>(copy);
             return true;
@@ -1816,9 +1811,6 @@ bool QDeclarativeMetaType::copy(int type, void *data, const void *copy)
         case QMetaType::QPalette:
             *static_cast<NS(QPalette) *>(data) = NS(QPalette)();
             return true;
-        case QMetaType::QIcon:
-            *static_cast<NS(QIcon) *>(data) = NS(QIcon)();
-            return true;
         case QMetaType::QImage:
             *static_cast<NS(QImage) *>(data) = NS(QImage)();
             return true;
@@ -1836,9 +1828,6 @@ bool QDeclarativeMetaType::copy(int type, void *data, const void *copy)
             *static_cast<NS(QCursor) *>(data) = NS(QCursor)();
             return true;
 #endif
-        case QMetaType::QSizePolicy:
-            *static_cast<NS(QSizePolicy) *>(data) = NS(QSizePolicy)();
-            return true;
         case QMetaType::QKeySequence:
             *static_cast<NS(QKeySequence) *>(data) = NS(QKeySequence)();
             return true;