diff options
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/kernel/qmetatype.cpp | 45 | ||||
-rw-r--r-- | src/corelib/kernel/qmetatype_p.h | 56 | ||||
-rw-r--r-- | src/corelib/kernel/qvariant.cpp | 31 |
3 files changed, 60 insertions, 72 deletions
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 7ddf187b88..fba1aaf9b6 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -54,11 +54,7 @@ #include "qvariant.h" #include "qmetatypeswitcher_p.h" -#ifdef QT_BOOTSTRAPPED -# ifndef QT_NO_GEOM_VARIANT -# define QT_NO_GEOM_VARIANT -# endif -#else +#ifndef QT_BOOTSTRAPPED # include "qbitarray.h" # include "qurl.h" # include "qvariant.h" @@ -83,49 +79,12 @@ QT_BEGIN_NAMESPACE namespace { -template<typename T> -struct TypeDefinition { - static const bool IsAvailable = true; -}; - struct DefinedTypesFilter { template<typename T> struct Acceptor { - static const bool IsAccepted = TypeDefinition<T>::IsAvailable && QTypeModuleInfo<T>::IsCore; + static const bool IsAccepted = QtMetaTypePrivate::TypeDefinition<T>::IsAvailable && QTypeModuleInfo<T>::IsCore; }; }; - -// Ignore these types, as incomplete -#ifdef QT_NO_GEOM_VARIANT -template<> struct TypeDefinition<QRect> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QRectF> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QSize> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QSizeF> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QLine> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QLineF> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QPoint> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QPointF> { static const bool IsAvailable = false; }; -#endif -#ifdef QT_BOOTSTRAPPED -template<> struct TypeDefinition<QVariantMap> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QVariantHash> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QVariantList> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QVariant> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QBitArray> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QUrl> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QEasingCurve> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QModelIndex> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QJsonValue> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QJsonObject> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QJsonArray> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QJsonDocument> { static const bool IsAvailable = false; }; -#endif -#ifdef QT_NO_REGEXP -template<> struct TypeDefinition<QRegExp> { static const bool IsAvailable = false; }; -#endif -#if defined(QT_BOOTSTRAPPED) || defined(QT_NO_REGEXP) -template<> struct TypeDefinition<QRegularExpression> { static const bool IsAvailable = false; }; -#endif } // namespace /*! diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h index c73f8d0a20..2ab4a3896f 100644 --- a/src/corelib/kernel/qmetatype_p.h +++ b/src/corelib/kernel/qmetatype_p.h @@ -182,6 +182,62 @@ public: /*flags*/ 0 \ } +namespace QtMetaTypePrivate { +template<typename T> +struct TypeDefinition { + static const bool IsAvailable = true; +}; + +// Ignore these types, as incomplete +#ifdef QT_BOOTSTRAPPED +template<> struct TypeDefinition<QBitArray> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QEasingCurve> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QJsonArray> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QJsonDocument> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QJsonObject> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QJsonValue> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QModelIndex> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QUrl> { static const bool IsAvailable = false; }; +#endif +#ifdef QT_NO_GEOM_VARIANT +template<> struct TypeDefinition<QRect> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QRectF> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QSize> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QSizeF> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QLine> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QLineF> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QPoint> { static const bool IsAvailable = false; }; +template<> struct TypeDefinition<QPointF> { static const bool IsAvailable = false; }; +#endif +#ifdef QT_NO_REGEXP +template<> struct TypeDefinition<QRegExp> { static const bool IsAvailable = false; }; +#endif +#if defined(QT_BOOTSTRAPPED) || defined(QT_NO_REGEXP) +template<> struct TypeDefinition<QRegularExpression> { static const bool IsAvailable = false; }; +#endif +#ifdef QT_NO_SHORTCUT +template<> struct TypeDefinition<QKeySequence> { static const bool IsAvailable = false; }; +#endif +#ifdef QT_NO_CURSOR +template<> struct TypeDefinition<QCursor> { static const bool IsAvailable = false; }; +#endif +#ifdef QT_NO_MATRIX4X4 +template<> struct TypeDefinition<QMatrix4x4> { static const bool IsAvailable = false; }; +#endif +#ifdef QT_NO_VECTOR2D +template<> struct TypeDefinition<QVector2D> { static const bool IsAvailable = false; }; +#endif +#ifdef QT_NO_VECTOR3D +template<> struct TypeDefinition<QVector3D> { static const bool IsAvailable = false; }; +#endif +#ifdef QT_NO_VECTOR4D +template<> struct TypeDefinition<QVector4D> { static const bool IsAvailable = false; }; +#endif +#ifdef QT_NO_QUATERNION +template<> struct TypeDefinition<QQuaternion> { static const bool IsAvailable = false; }; +#endif +} //namespace QtMetaTypePrivate + QT_END_NAMESPACE #endif // QMETATYPE_P_H diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index b687c01238..da6017127f 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -100,40 +100,13 @@ public: } // namespace namespace { -template<typename T> -struct TypeDefinition { - static const bool IsAvailable = true; -}; - -// Ignore these types, as incomplete -#ifdef QT_BOOTSTRAPPED -template<> struct TypeDefinition<QEasingCurve> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QModelIndex> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QUrl> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QRegularExpression> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QJsonValue> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QJsonObject> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QJsonArray> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QJsonDocument> { static const bool IsAvailable = false; }; -#endif -#ifdef QT_NO_GEOM_VARIANT -template<> struct TypeDefinition<QRect> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QRectF> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QSize> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QSizeF> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QLine> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QLineF> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QPoint> { static const bool IsAvailable = false; }; -template<> struct TypeDefinition<QPointF> { static const bool IsAvailable = false; }; -#endif - struct CoreTypesFilter { template<typename T> struct Acceptor { - static const bool IsAccepted = QTypeModuleInfo<T>::IsCore && TypeDefinition<T>::IsAvailable; + static const bool IsAccepted = QTypeModuleInfo<T>::IsCore && QtMetaTypePrivate::TypeDefinition<T>::IsAvailable; }; }; -} // annonymous used to hide TypeDefinition +} // annonymous namespace { // annonymous used to hide QVariant handlers |