diff options
31 files changed, 51 insertions, 72 deletions
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 48cabeb636..e1cebc453d 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -845,11 +845,11 @@ bool QMetaType::save(QDataStream &stream, int type, const void *data) case QMetaType::QVector3D: case QMetaType::QVector4D: case QMetaType::QQuaternion: + case QMetaType::QIcon: if (!qMetaTypeGuiHelper) return false; qMetaTypeGuiHelper[type - FirstGuiType].saveOp(stream, data); break; - case QMetaType::QIcon: case QMetaType::QSizePolicy: if (!qMetaTypeWidgetsHelper) return false; @@ -1069,11 +1069,11 @@ bool QMetaType::load(QDataStream &stream, int type, void *data) case QMetaType::QVector3D: case QMetaType::QVector4D: case QMetaType::QQuaternion: + case QMetaType::QIcon: if (!qMetaTypeGuiHelper) return false; qMetaTypeGuiHelper[type - FirstGuiType].loadOp(stream, data); break; - case QMetaType::QIcon: case QMetaType::QSizePolicy: if (!qMetaTypeWidgetsHelper) return false; diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index 33e7fa43f1..74702540f2 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -127,26 +127,27 @@ QT_BEGIN_NAMESPACE F(QBrush, 66, QBrush) \ F(QColor, 67, QColor) \ F(QPalette, 68, QPalette) \ - F(QImage, 69, QImage) \ - F(QPolygon, 70, QPolygon) \ - F(QRegion, 71, QRegion) \ - F(QBitmap, 72, QBitmap) \ - F(QCursor, 73, QCursor) \ - F(QKeySequence, 74, QKeySequence) \ - F(QPen, 75, QPen) \ - F(QTextLength, 76, QTextLength) \ - F(QTextFormat, 77, QTextFormat) \ - F(QMatrix, 78, QMatrix) \ - F(QTransform, 79, QTransform) \ - F(QMatrix4x4, 80, QMatrix4x4) \ - F(QVector2D, 81, QVector2D) \ - F(QVector3D, 82, QVector3D) \ - F(QVector4D, 83, QVector4D) \ - F(QQuaternion, 84, QQuaternion) \ - F(QPolygonF, 85, QPolygonF) \ + F(QIcon, 69, QIcon) \ + F(QImage, 70, QImage) \ + F(QPolygon, 71, QPolygon) \ + F(QRegion, 72, QRegion) \ + F(QBitmap, 73, QBitmap) \ + F(QCursor, 74, QCursor) \ + F(QKeySequence, 75, QKeySequence) \ + F(QPen, 76, QPen) \ + F(QTextLength, 77, QTextLength) \ + F(QTextFormat, 78, QTextFormat) \ + F(QMatrix, 79, QMatrix) \ + F(QTransform, 80, QTransform) \ + F(QMatrix4x4, 81, QMatrix4x4) \ + F(QVector2D, 82, QVector2D) \ + F(QVector3D, 83, QVector3D) \ + F(QVector4D, 84, QVector4D) \ + F(QQuaternion, 85, QQuaternion) \ + F(QPolygonF, 86, QPolygonF) \ + #define QT_FOR_EACH_STATIC_WIDGETS_CLASS(F)\ - F(QIcon, 120, QIcon) \ F(QSizePolicy, 121, QSizePolicy) \ // ### FIXME kill that set @@ -208,7 +209,7 @@ public: LastCoreType = SChar, FirstGuiType = QFont, LastGuiType = QPolygonF, - FirstWidgetsType = QIcon, + FirstWidgetsType = QSizePolicy, LastWidgetsType = QSizePolicy, HighestInternalId = LastWidgetsType, @@ -232,11 +233,11 @@ public: QObjectStar = 39, QWidgetStar = 40, QVariantMap = 8, QVariantList = 9, QVariantHash = 28, QFont = 64, QPixmap = 65, QBrush = 66, QColor = 67, QPalette = 68, - QImage = 69, QPolygon = 70, QRegion = 71, QBitmap = 72, QCursor = 73, - QKeySequence = 74, QPen = 75, QTextLength = 76, QTextFormat = 77, - QMatrix = 78, QTransform = 79, QMatrix4x4 = 80, QVector2D = 81, - QVector3D = 82, QVector4D = 83, QQuaternion = 84, QPolygonF = 85, - QIcon = 120, QSizePolicy = 121, + QIcon = 69, QImage = 70, QPolygon = 71, QRegion = 72, QBitmap = 73, + QCursor = 74, QKeySequence = 75, QPen = 76, QTextLength = 77, QTextFormat = 78, + QMatrix = 79, QTransform = 80, QMatrix4x4 = 81, QVector2D = 82, + QVector3D = 83, QVector4D = 84, QQuaternion = 85, QPolygonF = 86, + QSizePolicy = 121, User = 256 }; #endif diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h index b593489963..cffc45c988 100644 --- a/src/corelib/kernel/qmetatype_p.h +++ b/src/corelib/kernel/qmetatype_p.h @@ -236,6 +236,9 @@ template<> struct TypeDefinition<QVector4D> { static const bool IsAvailable = fa #ifdef QT_NO_QUATERNION template<> struct TypeDefinition<QQuaternion> { static const bool IsAvailable = false; }; #endif +#ifdef QT_NO_ICON +template<> struct TypeDefinition<QIcon> { static const bool IsAvailable = false; }; +#endif } //namespace QtMetaTypePrivate QT_END_NAMESPACE diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index cb50603354..3d3183a5c9 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -1669,18 +1669,12 @@ void QVariant::load(QDataStream &s) // In Qt4 id == 128 was FirstExtCoreType. In Qt5 ExtCoreTypes set was merged to CoreTypes // by moving all ids down by 97. typeId -= 97; - } else if (typeId == 69 /* QIcon */) { - // In Qt5 after modularization project these types where moved to a separate module (and ids were downgraded) - typeId = QMetaType::QIcon; } else if (typeId == 75 /* QSizePolicy */) { typeId = QMetaType::QSizePolicy; - } else if (typeId >= 70) { + } else if (typeId > 75 && typeId <= 86) { // and as a result these types received lower ids too - if (typeId <= 74) { // QImage QPolygon QRegion QBitmap QCursor - typeId -=1; - } else if (typeId <= 86) { // QKeySequence QPen QTextLength QTextFormat QMatrix QTransform QMatrix4x4 QVector2D QVector3D QVector4D QQuaternion - typeId -=2; - } + // QKeySequence QPen QTextLength QTextFormat QMatrix QTransform QMatrix4x4 QVector2D QVector3D QVector4D QQuaternion + typeId -=1; } } @@ -1744,18 +1738,11 @@ void QVariant::save(QDataStream &s) const // In Qt4 id == 128 was FirstExtCoreType. In Qt5 ExtCoreTypes set was merged to CoreTypes // by moving all ids down by 97. typeId += 97; - } else if (typeId == QMetaType::QIcon) { - // In Qt5 after modularization project these types where moved to a separate module (and ids were downgraded) - typeId = 69; } else if (typeId == QMetaType::QSizePolicy) { typeId = 75; - } else if (typeId >= QMetaType::QImage) { + } else if (typeId >= QMetaType::QKeySequence && typeId <= QMetaType::QQuaternion) { // and as a result these types received lower ids too - if (typeId <= QMetaType::QCursor) { - typeId +=1; - } else if (typeId <= QMetaType::QQuaternion) { - typeId +=2; - } + typeId +=1; } } s << typeId; diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index 8ba27d2354..15fbfc991f 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -184,9 +184,9 @@ class Q_CORE_EXPORT QVariant Vector4D = QMetaType::QVector4D, Quaternion = QMetaType::QQuaternion, PolygonF = QMetaType::QPolygonF, + Icon = QMetaType::QIcon, LastGuiType = QMetaType::LastGuiType, - Icon = QMetaType::QIcon, SizePolicy = QMetaType::QSizePolicy, UserType = QMetaType::User, diff --git a/src/gui/kernel/qguivariant.cpp b/src/gui/kernel/qguivariant.cpp index 9d1294d588..8a5c083840 100644 --- a/src/gui/kernel/qguivariant.cpp +++ b/src/gui/kernel/qguivariant.cpp @@ -64,6 +64,7 @@ #include "qvector3d.h" #include "qvector4d.h" #include "qquaternion.h" +#include "qicon.h" // Core types #include "qvariant.h" @@ -137,7 +138,7 @@ static bool isNull(const QVariant::Private *d) return QMetaTypeSwitcher::switcher<bool>(isNull, d->type, 0); } -// This class is a hack that customizes access to QPixmap, QBitmap and QCursor +// This class is a hack that customizes access to QPixmap, QBitmap, QCursor and QIcon template<class Filter> class QGuiVariantComparator : public QVariantComparator<Filter> { typedef QVariantComparator<Filter> Base; @@ -164,6 +165,12 @@ public: return v_cast<QCursor>(Base::m_a)->shape() == v_cast<QCursor>(Base::m_b)->shape(); } #endif +#ifndef QT_NO_ICON + bool delegate(const QIcon *) + { + return false; + } +#endif bool delegate(const void *p) { return Base::delegate(p); } }; @@ -289,6 +296,13 @@ static bool convert(const QVariant::Private *d, int t, } } #endif +#ifndef QT_NO_ICON + case QVariant::Icon: { + if (ok) + *ok = false; + return false; + } +#endif default: break; } diff --git a/src/widgets/kernel/qwidgetsvariant.cpp b/src/widgets/kernel/qwidgetsvariant.cpp index 15935a5886..e19d955b2b 100644 --- a/src/widgets/kernel/qwidgetsvariant.cpp +++ b/src/widgets/kernel/qwidgetsvariant.cpp @@ -41,7 +41,6 @@ #include "qvariant.h" -#include "qicon.h" #include "qsizepolicy.h" #include "private/qvariant_p.h" @@ -53,11 +52,6 @@ namespace { static void construct(QVariant::Private *x, const void *copy) { switch (x->type) { -#ifndef QT_NO_ICON - case QVariant::Icon: - v_construct<QIcon>(x, copy); - break; -#endif case QVariant::SizePolicy: v_construct<QSizePolicy>(x, copy); break; @@ -72,11 +66,6 @@ static void construct(QVariant::Private *x, const void *copy) static void clear(QVariant::Private *d) { switch (d->type) { -#ifndef QT_NO_ICON - case QVariant::Icon: - v_clear<QIcon>(d); - break; -#endif case QVariant::SizePolicy: v_clear<QSizePolicy>(d); break; @@ -93,12 +82,6 @@ static void clear(QVariant::Private *d) static bool isNull(const QVariant::Private *d) { - switch(d->type) { -#ifndef QT_NO_ICON - case QVariant::Icon: - return v_cast<QIcon>(d)->isNull(); -#endif - } return false; } @@ -106,10 +89,6 @@ static bool compare(const QVariant::Private *a, const QVariant::Private *b) { Q_ASSERT(a->type == b->type); switch(a->type) { -#ifndef QT_NO_ICON - case QVariant::Icon: - return false; -#endif case QVariant::SizePolicy: return *v_cast<QSizePolicy>(a) == *v_cast<QSizePolicy>(b); default: @@ -133,11 +112,6 @@ static void streamDebug(QDebug dbg, const QVariant &v) { QVariant::Private *d = const_cast<QVariant::Private *>(&v.data_ptr()); switch (d->type) { -#ifndef QT_NO_ICON - case QVariant::Icon: - dbg.nospace() << *v_cast<QIcon>(d); - break; -#endif case QVariant::SizePolicy: dbg.nospace() << *v_cast<QSizePolicy>(d); break; diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitmap.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitmap.bin Binary files differindex 511e260744..13f4dc374d 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitmap.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qbitmap.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcursor.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcursor.bin Binary files differindex a7be10e143..545fa96a1f 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcursor.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qcursor.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdate.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdate.bin Binary files differindex d3281b1336..cc8f894b25 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdate.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdate.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdatetime.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdatetime.bin Binary files differindex 664eb736a7..ee3da63a18 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdatetime.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdatetime.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qeasingcurve.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qeasingcurve.bin Binary files differindex 5cf664eb27..b3fce0db6d 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qeasingcurve.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qeasingcurve.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qfont.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qfont.bin Binary files differindex e8aa03af9b..ce31032451 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qfont.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qfont.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qicon.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qicon.bin Binary files differindex bf3ca9ed4b..2f8713244c 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qicon.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qicon.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qimage.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qimage.bin Binary files differindex 03665c1edc..0ab1cbf6fa 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qimage.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qimage.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qkeysequence.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qkeysequence.bin Binary files differindex 7f7447a821..ec82cc2871 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qkeysequence.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qkeysequence.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix.bin Binary files differindex 93434b42c9..24bf570968 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix4x4.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix4x4.bin Binary files differindex 8d3f9b81e8..e4fc8054f9 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix4x4.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qmatrix4x4.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpalette.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpalette.bin Binary files differindex 503c1a4664..b3caa096cb 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpalette.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpalette.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpen.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpen.bin Binary files differindex edafc2d185..964eaa4ee2 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpen.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpen.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygon.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygon.bin Binary files differindex 8d3275df41..fbdab8fffc 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygon.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygon.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygonf.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygonf.bin Binary files differindex 3e85997f2d..c4b5f652b3 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygonf.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qpolygonf.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qquaternion.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qquaternion.bin Binary files differindex c498f8fd08..558767a6b4 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qquaternion.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qquaternion.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregion.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregion.bin Binary files differindex ecf01a8b31..27eec8c4d5 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregion.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qregion.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextformat.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextformat.bin Binary files differindex 432068d921..0d91130d62 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextformat.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextformat.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextlength.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextlength.bin Binary files differindex 3b209f1be2..640abfba00 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextlength.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtextlength.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtransform.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtransform.bin Binary files differindex 52cddb5e93..86a7aaf1ed 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtransform.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qtransform.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariant.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariant.bin Binary files differindex 1c8bc45769..18267d24f5 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariant.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvariant.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector2d.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector2d.bin Binary files differindex 2bc3aeb18d..9fe7d9f936 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector2d.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector2d.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector3d.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector3d.bin Binary files differindex b035f7f074..b3c502f546 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector3d.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector3d.bin diff --git a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector4d.bin b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector4d.bin Binary files differindex a804c5e655..2db479c9ce 100644 --- a/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector4d.bin +++ b/tests/auto/corelib/kernel/qvariant/stream/qt5.0/qvector4d.bin |