diff options
author | Stephen Kelly <stephen.kelly@kdab.com> | 2012-07-19 14:33:28 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-18 10:55:47 +0200 |
commit | 4d9d88af6ff494f09cfbc376a1f9aa0ea9ca2357 (patch) | |
tree | dec39e6b8c95c71638a1ab492b8098ccd4f7cd77 /src | |
parent | 33b298427161c51ae39f0dcaf01d6914b7c8b01c (diff) |
Remove QWidgetStar.
This allows us to remove the odd hacks to get the static metaobject
for the QWidget* metatype.
The QWidget* is still an automatic metatype thanks to the QObject
partial template specialization. It is registered as a metatype
at runtime automatically in qwidgetsvariant.cpp.
Change-Id: Ie01b69eadf2cbe87af1a86c3284550f60dcf9e94
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/kernel/qmetatype.cpp | 5 | ||||
-rw-r--r-- | src/corelib/kernel/qmetatype.h | 18 | ||||
-rw-r--r-- | src/corelib/kernel/qvariant.cpp | 4 | ||||
-rw-r--r-- | src/widgets/kernel/qwidgetsvariant.cpp | 3 |
4 files changed, 5 insertions, 25 deletions
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 18b17d9aea..080dbd718a 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -165,7 +165,6 @@ struct DefinedTypesFilter { \value UChar \c{unsigned char} \value Float \c float \value QObjectStar QObject * - \value QWidgetStar QWidget * \value QVariant QVariant \value QCursor QCursor @@ -604,7 +603,7 @@ int QMetaType::registerNormalizedTypedef(const NS(QByteArray) &normalizedTypeNam bool QMetaType::isRegistered(int type) { // predefined type - if ((type >= FirstCoreType && type <= LastCoreType) + if ((type >= FirstCoreType && type <= LastCoreType && type != 40) // 40 is the type that QWidgetStar used to be || (type >= FirstGuiType && type <= LastGuiType) || (type >= FirstWidgetsType && type <= LastWidgetsType)) { return true; @@ -693,7 +692,6 @@ bool QMetaType::save(QDataStream &stream, int type, const void *data) case QMetaType::Void: case QMetaType::VoidStar: case QMetaType::QObjectStar: - case QMetaType::QWidgetStar: case QMetaType::QModelIndex: case QMetaType::QJsonValue: case QMetaType::QJsonObject: @@ -911,7 +909,6 @@ bool QMetaType::load(QDataStream &stream, int type, void *data) case QMetaType::Void: case QMetaType::VoidStar: case QMetaType::QObjectStar: - case QMetaType::QWidgetStar: case QMetaType::QModelIndex: case QMetaType::QJsonValue: case QMetaType::QJsonObject: diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index 7c32ce744e..a40bd77e5a 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -113,8 +113,7 @@ QT_BEGIN_NAMESPACE F(QJsonDocument, 48, QJsonDocument) \ #define QT_FOR_EACH_STATIC_CORE_POINTER(F)\ - F(QObjectStar, 39, QObject*) \ - F(QWidgetStar, 40, QWidget*) \ + F(QObjectStar, 39, QObject*) #define QT_FOR_EACH_STATIC_CORE_TEMPLATE(F)\ F(QVariantMap, 8, QVariantMap) \ @@ -233,7 +232,7 @@ public: QRegularExpression = 44, QJsonValue = 45, QJsonObject = 46, QJsonArray = 47, QJsonDocument = 48, SChar = 49, - QObjectStar = 39, QWidgetStar = 40, + QObjectStar = 39, Void = 43, QVariantMap = 8, QVariantList = 9, QVariantHash = 28, QFont = 64, QPixmap = 65, QBrush = 66, QColor = 67, QPalette = 68, @@ -448,11 +447,6 @@ namespace QtPrivate { enum { Value = true }; }; - template<> - struct IsPointerToTypeDerivedFromQObject<QWidget*> - { - enum { Value = true }; - }; template<typename T> struct IsPointerToTypeDerivedFromQObject<T*> @@ -480,14 +474,6 @@ namespace QtPrivate static inline const QMetaObject *value() { return &T::staticMetaObject; } }; - Q_CORE_EXPORT const QMetaObject *metaObjectForQWidget(); - - template<> - struct MetaObjectForType<QWidget*, /* isPointerToTypeDerivedFromQObject = */ true> - { - static const QMetaObject *value() { return metaObjectForQWidget(); } - }; - template<typename T> struct IsSharedPointerToTypeDerivedFromQObject { diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index 4b582affb3..8c38259276 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -1074,8 +1074,7 @@ Q_CORE_EXPORT void QVariantPrivate::registerHandler(const int /* Modules::Names Usually, you never have to use this constructor, use QVariant::fromValue() instead to construct variants from the pointer types represented by - \c QMetaType::VoidStar, \c QMetaType::QObjectStar and - \c QMetaType::QWidgetStar. + \c QMetaType::VoidStar, and \c QMetaType::QObjectStar. \sa QVariant::fromValue(), Type */ @@ -2724,7 +2723,6 @@ bool QVariant::canConvert(int targetTypeId) const case QMetaType::Short: case QMetaType::UShort: return qCanConvertMatrix[QVariant::Int] & (1 << currentType) || currentType == QVariant::Int; - case QMetaType::QWidgetStar: case QMetaType::QObjectStar: return canConvertMetaObject(currentType, targetTypeId, d.data.o); default: diff --git a/src/widgets/kernel/qwidgetsvariant.cpp b/src/widgets/kernel/qwidgetsvariant.cpp index 0e4d44bc97..bc1112c9aa 100644 --- a/src/widgets/kernel/qwidgetsvariant.cpp +++ b/src/widgets/kernel/qwidgetsvariant.cpp @@ -152,12 +152,11 @@ static const QMetaTypeInterface qVariantWidgetsHelper[] = { } // namespace extern Q_CORE_EXPORT const QMetaTypeInterface *qMetaTypeWidgetsHelper; -extern Q_CORE_EXPORT const QMetaObject *qMetaObjectWidgetsHelper; void qRegisterWidgetsVariant() { + qRegisterMetaType<QWidget*>(); qMetaTypeWidgetsHelper = qVariantWidgetsHelper; - qMetaObjectWidgetsHelper = &QWidget::staticMetaObject; QVariantPrivate::registerHandler(QModulesPrivate::Widgets, &widgets_handler); } Q_CONSTRUCTOR_FUNCTION(qRegisterWidgetsVariant) |