OSDN Git Service

remove support for user data for objects
authorIvailo Monev <xakepa10@laimg.moc>
Thu, 27 Oct 2016 00:04:31 +0000 (00:04 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Thu, 27 Oct 2016 00:04:31 +0000 (00:04 +0000)
the custom properties (set via setProperty(), retrieved via property()) are
far more usefull and they have variaty of use cases. you may notice that
there was a leak if the toolkit was build with QT_NO_USERDATA but that does
not apply as of this commit

Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
src/core/kernel/qobject.cpp
src/core/kernel/qobject.h
src/core/kernel/qobject_p.h
src/shared/qclass_lib_map.h

index 555132c..196e3b2 100644 (file)
@@ -157,12 +157,9 @@ QObjectPrivate::~QObjectPrivate()
     QAbstractDynamicMetaObject* mobject = static_cast<QAbstractDynamicMetaObject*>(metaObject);
     if (mobject)
         delete mobject;
-#ifndef QT_NO_USERDATA
     if (extraData) {
-        qDeleteAll(extraData->userData);
         delete extraData;
     }
-#endif
 }
 
 
@@ -519,30 +516,6 @@ void QMetaCallEvent::placeMetaCall(QObject *object)
     \sa {Object Trees & Ownership}
 */
 
-/*!
-    \relates QObject
-
-    Returns a pointer to the object named \a name that inherits \a
-    type and with a given \a parent.
-
-    Returns 0 if there is no such child.
-
-    \snippet doc/src/snippets/code/src_corelib_kernel_qobject.cpp 0
-*/
-
-void *qt_find_obj_child(QObject *parent, const char *type, const QString &name)
-{
-    QObjectList list = parent->children();
-    if (list.size() == 0) return 0;
-    for (int i = 0; i < list.size(); ++i) {
-        QObject *obj = list.at(i);
-        if (name == obj->objectName() && obj->inherits(type))
-            return obj;
-    }
-    return 0;
-}
-
-
 /*****************************************************************************
   QObject member functions
  *****************************************************************************/
@@ -3444,49 +3417,6 @@ void QObject::dumpObjectInfo()
 #endif
 }
 
-#ifndef QT_NO_USERDATA
-/*!\internal
- */
-uint QObject::registerUserData()
-{
-    static int user_data_registration = 0;
-    return user_data_registration++;
-}
-
-/*!\internal
- */
-QObjectUserData::~QObjectUserData()
-{
-}
-
-/*!\internal
- */
-void QObject::setUserData(uint id, QObjectUserData* data)
-{
-    Q_D(QObject);
-    if (!d->extraData)
-        d->extraData = new QObjectPrivate::ExtraData;
-
-    if (d->extraData->userData.size() <= (int) id)
-        d->extraData->userData.resize((int) id + 1);
-    d->extraData->userData[id] = data;
-}
-
-/*!\internal
- */
-QObjectUserData* QObject::userData(uint id) const
-{
-    Q_D(const QObject);
-    if (!d->extraData)
-        return 0;
-    if ((int)id < d->extraData->userData.size())
-        return d->extraData->userData.at(id);
-    return 0;
-}
-
-#endif // QT_NO_USERDATA
-
-
 #ifndef QT_NO_DEBUG_STREAM
 QDebug operator<<(QDebug dbg, const QObject *o) {
 #ifndef Q_BROKEN_DEBUG_STREAM
index 2e242d4..5674a17 100644 (file)
@@ -71,9 +71,6 @@ class QDebug;
 #ifndef QT_NO_REGEXP
 class QRegExp;
 #endif
-#ifndef QT_NO_USERDATA
-class QObjectUserData;
-#endif
 
 typedef QList<QObject*> QObjectList;
 
@@ -212,12 +209,6 @@ public:
     QList<QByteArray> dynamicPropertyNames() const;
 #endif // QT_NO_PROPERTIES
 
-#ifndef QT_NO_USERDATA
-    static uint registerUserData();
-    void setUserData(uint id, QObjectUserData* data);
-    QObjectUserData* userData(uint id) const;
-#endif // QT_NO_USERDATA
-
 Q_SIGNALS:
     void destroyed(QObject * = 0);
 
@@ -264,14 +255,6 @@ private:
     Q_PRIVATE_SLOT(d_func(), void _q_reregisterTimers(void *))
 };
 
-#ifndef QT_NO_USERDATA
-class Q_CORE_EXPORT QObjectUserData {
-public:
-    virtual ~QObjectUserData();
-};
-#endif
-
-
 template <class T>
 inline T qobject_cast(QObject *object)
 {
index 37f489a..6a21b2f 100644 (file)
@@ -100,9 +100,6 @@ public:
     struct ExtraData
     {
         ExtraData() {}
-#ifndef QT_NO_USERDATA
-        QVector<QObjectUserData *> userData;
-#endif
         QList<QByteArray> propertyNames;
         QList<QVariant> propertyValues;
     };
index c032206..0e2aa8a 100644 (file)
@@ -611,7 +611,6 @@ static const ClassInfoEntry qclass_lib_map[] = {
     { "QMetaType", "QtCore/qmetatype.h"},
     { "QMimeData", "QtCore/qmimedata.h"},
     { "QObject", "QtCore/qobject.h"},
-    { "QObjectUserData", "QtCore/qobject.h"},
     { "QObjectCleanupHandler", "QtCore/qobjectcleanuphandler.h"},
     { "QGenericArgument", "QtCore/qobjectdefs.h"},
     { "QGenericReturnArgument", "QtCore/qobjectdefs.h"},
@@ -724,6 +723,6 @@ static const ClassInfoEntry qclass_lib_map[] = {
     { "QSqlRecord", "QtSql/qsqlrecord.h"},
     { "QSqlResult", "QtSql/qsqlresult.h"},
 };
-static const int qclass_lib_count = 718;
+static const int qclass_lib_count = 717;
 
 #endif