1 /****************************************************************************
3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
7 ** This file is part of the QtDeclarative module of the Qt Toolkit.
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** GNU Lesser General Public License Usage
11 ** This file may be used under the terms of the GNU Lesser General Public
12 ** License version 2.1 as published by the Free Software Foundation and
13 ** appearing in the file LICENSE.LGPL included in the packaging of this
14 ** file. Please review the following information to ensure the GNU Lesser
15 ** General Public License version 2.1 requirements will be met:
16 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
18 ** In addition, as a special exception, Nokia gives you certain additional
19 ** rights. These rights are described in the Nokia Qt LGPL Exception
20 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
22 ** GNU General Public License Usage
23 ** Alternatively, this file may be used under the terms of the GNU General
24 ** Public License version 3.0 as published by the Free Software Foundation
25 ** and appearing in the file LICENSE.GPL included in the packaging of this
26 ** file. Please review the following information to ensure the GNU General
27 ** Public License version 3.0 requirements will be met:
28 ** http://www.gnu.org/copyleft/gpl.html.
31 ** Alternatively, this file may be used in accordance with the terms and
32 ** conditions contained in a signed written agreement between you and Nokia.
40 ****************************************************************************/
42 #include "private/qdeclarativevaluetype_p.h"
44 #include "private/qdeclarativemetatype_p.h"
45 #include "private/qfont_p.h"
47 #include <QtCore/qdebug.h>
52 int qmlRegisterValueTypeEnums(const char *uri, int versionMajor, int versionMinor, const char *qmlName)
54 QByteArray name(T::staticMetaObject.className());
56 QByteArray pointerName(name + '*');
58 QDeclarativePrivate::RegisterType type = {
61 qRegisterMetaType<T *>(pointerName.constData()), 0, 0, 0,
65 uri, versionMajor, versionMinor, qmlName, &T::staticMetaObject,
77 return QDeclarativePrivate::qmlregister(QDeclarativePrivate::TypeRegistration, &type);
80 QDeclarativeValueTypeFactory::QDeclarativeValueTypeFactory()
83 for (unsigned int ii = 0; ii < (QVariant::UserType - 1); ++ii)
84 valueTypes[ii] = valueType(ii);
87 QDeclarativeValueTypeFactory::~QDeclarativeValueTypeFactory()
89 for (unsigned int ii = 0; ii < (QVariant::UserType - 1); ++ii)
90 delete valueTypes[ii];
93 bool QDeclarativeValueTypeFactory::isValueType(int idx)
95 if ((uint)idx < QVariant::UserType)
100 void QDeclarativeValueTypeFactory::registerBaseTypes(const char *uri, int versionMajor, int versionMinor)
102 qmlRegisterValueTypeEnums<QDeclarativeEasingValueType>(uri, versionMajor, versionMinor, "Easing");
103 qmlRegisterValueTypeEnums<QDeclarativeFontValueType>(uri, versionMajor, versionMinor, "Font");
106 void QDeclarativeValueTypeFactory::registerValueTypes()
108 registerBaseTypes("QtQuick", 2, 0);
111 QDeclarativeValueType *QDeclarativeValueTypeFactory::valueType(int t)
113 QDeclarativeValueType *rv = 0;
116 case QVariant::Point:
117 rv = new QDeclarativePointValueType;
119 case QVariant::PointF:
120 rv = new QDeclarativePointFValueType;
123 rv = new QDeclarativeSizeValueType;
125 case QVariant::SizeF:
126 rv = new QDeclarativeSizeFValueType;
129 rv = new QDeclarativeRectValueType;
131 case QVariant::RectF:
132 rv = new QDeclarativeRectFValueType;
134 case QVariant::Vector2D:
135 rv = new QDeclarativeVector2DValueType;
137 case QVariant::Vector3D:
138 rv = new QDeclarativeVector3DValueType;
140 case QVariant::Vector4D:
141 rv = new QDeclarativeVector4DValueType;
143 case QVariant::Quaternion:
144 rv = new QDeclarativeQuaternionValueType;
146 case QVariant::Matrix4x4:
147 rv = new QDeclarativeMatrix4x4ValueType;
149 case QVariant::EasingCurve:
150 rv = new QDeclarativeEasingValueType;
153 rv = new QDeclarativeFontValueType;
159 Q_ASSERT(!rv || rv->metaObject()->propertyCount() < 32);
163 QDeclarativeValueType::QDeclarativeValueType(QObject *parent)
168 QDeclarativePointFValueType::QDeclarativePointFValueType(QObject *parent)
169 : QDeclarativeValueType(parent)
173 void QDeclarativePointFValueType::read(QObject *obj, int idx)
175 void *a[] = { &point, 0 };
176 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
179 void QDeclarativePointFValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
182 void *a[] = { &point, 0, &status, &flags };
183 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
186 QVariant QDeclarativePointFValueType::value()
188 return QVariant(point);
191 void QDeclarativePointFValueType::setValue(QVariant value)
193 point = qvariant_cast<QPointF>(value);
196 QString QDeclarativePointFValueType::toString() const
198 return QString(QLatin1String("QPointF(%1, %2)")).arg(point.x()).arg(point.y());
201 bool QDeclarativePointFValueType::isEqual(const QVariant &value) const
203 return (QVariant(point) == value);
206 qreal QDeclarativePointFValueType::x() const
211 qreal QDeclarativePointFValueType::y() const
216 void QDeclarativePointFValueType::setX(qreal x)
221 void QDeclarativePointFValueType::setY(qreal y)
226 QDeclarativePointValueType::QDeclarativePointValueType(QObject *parent)
227 : QDeclarativeValueType(parent)
231 void QDeclarativePointValueType::read(QObject *obj, int idx)
233 void *a[] = { &point, 0 };
234 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
237 void QDeclarativePointValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
240 void *a[] = { &point, 0, &status, &flags };
241 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
244 QVariant QDeclarativePointValueType::value()
246 return QVariant(point);
249 void QDeclarativePointValueType::setValue(QVariant value)
251 point = qvariant_cast<QPoint>(value);
254 QString QDeclarativePointValueType::toString() const
256 return QString(QLatin1String("QPoint(%1, %2)")).arg(point.x()).arg(point.y());
259 bool QDeclarativePointValueType::isEqual(const QVariant &value) const
261 return (QVariant(point) == value);
264 int QDeclarativePointValueType::x() const
269 int QDeclarativePointValueType::y() const
274 void QDeclarativePointValueType::setX(int x)
279 void QDeclarativePointValueType::setY(int y)
284 QDeclarativeSizeFValueType::QDeclarativeSizeFValueType(QObject *parent)
285 : QDeclarativeValueType(parent)
289 void QDeclarativeSizeFValueType::read(QObject *obj, int idx)
291 void *a[] = { &size, 0 };
292 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
295 void QDeclarativeSizeFValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
298 void *a[] = { &size, 0, &status, &flags };
299 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
302 QVariant QDeclarativeSizeFValueType::value()
304 return QVariant(size);
307 void QDeclarativeSizeFValueType::setValue(QVariant value)
309 size = qvariant_cast<QSizeF>(value);
312 QString QDeclarativeSizeFValueType::toString() const
314 return QString(QLatin1String("QSizeF(%1, %2)")).arg(size.width()).arg(size.height());
317 bool QDeclarativeSizeFValueType::isEqual(const QVariant &value) const
319 return (QVariant(size) == value);
322 qreal QDeclarativeSizeFValueType::width() const
327 qreal QDeclarativeSizeFValueType::height() const
329 return size.height();
332 void QDeclarativeSizeFValueType::setWidth(qreal w)
337 void QDeclarativeSizeFValueType::setHeight(qreal h)
342 QDeclarativeSizeValueType::QDeclarativeSizeValueType(QObject *parent)
343 : QDeclarativeValueType(parent)
347 void QDeclarativeSizeValueType::read(QObject *obj, int idx)
349 void *a[] = { &size, 0 };
350 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
353 void QDeclarativeSizeValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
356 void *a[] = { &size, 0, &status, &flags };
357 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
360 QVariant QDeclarativeSizeValueType::value()
362 return QVariant(size);
365 void QDeclarativeSizeValueType::setValue(QVariant value)
367 size = qvariant_cast<QSize>(value);
370 QString QDeclarativeSizeValueType::toString() const
372 return QString(QLatin1String("QSize(%1, %2)")).arg(size.width()).arg(size.height());
375 bool QDeclarativeSizeValueType::isEqual(const QVariant &value) const
377 return (QVariant(size) == value);
380 int QDeclarativeSizeValueType::width() const
385 int QDeclarativeSizeValueType::height() const
387 return size.height();
390 void QDeclarativeSizeValueType::setWidth(int w)
395 void QDeclarativeSizeValueType::setHeight(int h)
400 QDeclarativeRectFValueType::QDeclarativeRectFValueType(QObject *parent)
401 : QDeclarativeValueType(parent)
405 void QDeclarativeRectFValueType::read(QObject *obj, int idx)
407 void *a[] = { &rect, 0 };
408 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
411 void QDeclarativeRectFValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
414 void *a[] = { &rect, 0, &status, &flags };
415 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
418 QVariant QDeclarativeRectFValueType::value()
420 return QVariant(rect);
423 void QDeclarativeRectFValueType::setValue(QVariant value)
425 rect = qvariant_cast<QRectF>(value);
428 QString QDeclarativeRectFValueType::toString() const
430 return QString(QLatin1String("QRectF(%1, %2, %3, %4)")).arg(rect.x()).arg(rect.y()).arg(rect.width()).arg(rect.height());
433 bool QDeclarativeRectFValueType::isEqual(const QVariant &value) const
435 return (QVariant(rect) == value);
438 qreal QDeclarativeRectFValueType::x() const
443 qreal QDeclarativeRectFValueType::y() const
448 void QDeclarativeRectFValueType::setX(qreal x)
453 void QDeclarativeRectFValueType::setY(qreal y)
458 qreal QDeclarativeRectFValueType::width() const
463 qreal QDeclarativeRectFValueType::height() const
465 return rect.height();
468 void QDeclarativeRectFValueType::setWidth(qreal w)
473 void QDeclarativeRectFValueType::setHeight(qreal h)
478 QDeclarativeRectValueType::QDeclarativeRectValueType(QObject *parent)
479 : QDeclarativeValueType(parent)
483 void QDeclarativeRectValueType::read(QObject *obj, int idx)
485 void *a[] = { &rect, 0 };
486 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
489 void QDeclarativeRectValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
492 void *a[] = { &rect, 0, &status, &flags };
493 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
496 QVariant QDeclarativeRectValueType::value()
498 return QVariant(rect);
501 void QDeclarativeRectValueType::setValue(QVariant value)
503 rect = qvariant_cast<QRect>(value);
506 QString QDeclarativeRectValueType::toString() const
508 return QString(QLatin1String("QRect(%1, %2, %3, %4)")).arg(rect.x()).arg(rect.y()).arg(rect.width()).arg(rect.height());
511 bool QDeclarativeRectValueType::isEqual(const QVariant &value) const
513 return (QVariant(rect) == value);
516 int QDeclarativeRectValueType::x() const
521 int QDeclarativeRectValueType::y() const
526 void QDeclarativeRectValueType::setX(int x)
531 void QDeclarativeRectValueType::setY(int y)
536 int QDeclarativeRectValueType::width() const
541 int QDeclarativeRectValueType::height() const
543 return rect.height();
546 void QDeclarativeRectValueType::setWidth(int w)
551 void QDeclarativeRectValueType::setHeight(int h)
556 QDeclarativeVector2DValueType::QDeclarativeVector2DValueType(QObject *parent)
557 : QDeclarativeValueType(parent)
561 void QDeclarativeVector2DValueType::read(QObject *obj, int idx)
563 void *a[] = { &vector, 0 };
564 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
567 void QDeclarativeVector2DValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
570 void *a[] = { &vector, 0, &status, &flags };
571 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
574 QVariant QDeclarativeVector2DValueType::value()
576 return QVariant(vector);
579 void QDeclarativeVector2DValueType::setValue(QVariant value)
581 vector = qvariant_cast<QVector2D>(value);
584 QString QDeclarativeVector2DValueType::toString() const
586 return QString(QLatin1String("QVector2D(%1, %2)")).arg(vector.x()).arg(vector.y());
589 bool QDeclarativeVector2DValueType::isEqual(const QVariant &value) const
591 return (QVariant(vector) == value);
594 qreal QDeclarativeVector2DValueType::x() const
599 qreal QDeclarativeVector2DValueType::y() const
604 void QDeclarativeVector2DValueType::setX(qreal x)
609 void QDeclarativeVector2DValueType::setY(qreal y)
614 QDeclarativeVector3DValueType::QDeclarativeVector3DValueType(QObject *parent)
615 : QDeclarativeValueType(parent)
619 void QDeclarativeVector3DValueType::read(QObject *obj, int idx)
621 void *a[] = { &vector, 0 };
622 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
625 void QDeclarativeVector3DValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
628 void *a[] = { &vector, 0, &status, &flags };
629 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
632 QVariant QDeclarativeVector3DValueType::value()
634 return QVariant(vector);
637 void QDeclarativeVector3DValueType::setValue(QVariant value)
639 vector = qvariant_cast<QVector3D>(value);
642 QString QDeclarativeVector3DValueType::toString() const
644 return QString(QLatin1String("QVector3D(%1, %2, %3)")).arg(vector.x()).arg(vector.y()).arg(vector.z());
647 bool QDeclarativeVector3DValueType::isEqual(const QVariant &value) const
649 return (QVariant(vector) == value);
652 qreal QDeclarativeVector3DValueType::x() const
657 qreal QDeclarativeVector3DValueType::y() const
662 qreal QDeclarativeVector3DValueType::z() const
667 void QDeclarativeVector3DValueType::setX(qreal x)
672 void QDeclarativeVector3DValueType::setY(qreal y)
677 void QDeclarativeVector3DValueType::setZ(qreal z)
682 QDeclarativeVector4DValueType::QDeclarativeVector4DValueType(QObject *parent)
683 : QDeclarativeValueType(parent)
687 void QDeclarativeVector4DValueType::read(QObject *obj, int idx)
689 void *a[] = { &vector, 0 };
690 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
693 void QDeclarativeVector4DValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
696 void *a[] = { &vector, 0, &status, &flags };
697 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
700 QVariant QDeclarativeVector4DValueType::value()
702 return QVariant(vector);
705 void QDeclarativeVector4DValueType::setValue(QVariant value)
707 vector = qvariant_cast<QVector4D>(value);
710 QString QDeclarativeVector4DValueType::toString() const
712 return QString(QLatin1String("QVector4D(%1, %2, %3, %4)")).arg(vector.x()).arg(vector.y()).arg(vector.z()).arg(vector.w());
715 bool QDeclarativeVector4DValueType::isEqual(const QVariant &value) const
717 return (QVariant(vector) == value);
720 qreal QDeclarativeVector4DValueType::x() const
725 qreal QDeclarativeVector4DValueType::y() const
730 qreal QDeclarativeVector4DValueType::z() const
735 qreal QDeclarativeVector4DValueType::w() const
740 void QDeclarativeVector4DValueType::setX(qreal x)
745 void QDeclarativeVector4DValueType::setY(qreal y)
750 void QDeclarativeVector4DValueType::setZ(qreal z)
755 void QDeclarativeVector4DValueType::setW(qreal w)
760 QDeclarativeQuaternionValueType::QDeclarativeQuaternionValueType(QObject *parent)
761 : QDeclarativeValueType(parent)
765 void QDeclarativeQuaternionValueType::read(QObject *obj, int idx)
767 void *a[] = { &quaternion, 0 };
768 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
771 void QDeclarativeQuaternionValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
774 void *a[] = { &quaternion, 0, &status, &flags };
775 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
778 QVariant QDeclarativeQuaternionValueType::value()
780 return QVariant(quaternion);
783 void QDeclarativeQuaternionValueType::setValue(QVariant value)
785 quaternion = qvariant_cast<QQuaternion>(value);
788 QString QDeclarativeQuaternionValueType::toString() const
790 return QString(QLatin1String("QQuaternion(%1, %2, %3, %4)")).arg(quaternion.scalar()).arg(quaternion.x()).arg(quaternion.y()).arg(quaternion.z());
793 bool QDeclarativeQuaternionValueType::isEqual(const QVariant &value) const
795 return (QVariant(quaternion) == value);
798 qreal QDeclarativeQuaternionValueType::scalar() const
800 return quaternion.scalar();
803 qreal QDeclarativeQuaternionValueType::x() const
805 return quaternion.x();
808 qreal QDeclarativeQuaternionValueType::y() const
810 return quaternion.y();
813 qreal QDeclarativeQuaternionValueType::z() const
815 return quaternion.z();
818 void QDeclarativeQuaternionValueType::setScalar(qreal scalar)
820 quaternion.setScalar(scalar);
823 void QDeclarativeQuaternionValueType::setX(qreal x)
828 void QDeclarativeQuaternionValueType::setY(qreal y)
833 void QDeclarativeQuaternionValueType::setZ(qreal z)
838 QDeclarativeMatrix4x4ValueType::QDeclarativeMatrix4x4ValueType(QObject *parent)
839 : QDeclarativeValueType(parent)
843 void QDeclarativeMatrix4x4ValueType::read(QObject *obj, int idx)
845 void *a[] = { &matrix, 0 };
846 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
849 void QDeclarativeMatrix4x4ValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
852 void *a[] = { &matrix, 0, &status, &flags };
853 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
856 QVariant QDeclarativeMatrix4x4ValueType::value()
858 return QVariant(matrix);
861 void QDeclarativeMatrix4x4ValueType::setValue(QVariant value)
863 matrix = qvariant_cast<QMatrix4x4>(value);
866 QString QDeclarativeMatrix4x4ValueType::toString() const
868 return QString(QLatin1String("QMatrix4x4(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16)"))
869 .arg(matrix(0, 0)).arg(matrix(0, 1)).arg(matrix(0, 2)).arg(matrix(0, 3))
870 .arg(matrix(1, 0)).arg(matrix(1, 1)).arg(matrix(1, 2)).arg(matrix(1, 3))
871 .arg(matrix(2, 0)).arg(matrix(2, 1)).arg(matrix(2, 2)).arg(matrix(2, 3))
872 .arg(matrix(3, 0)).arg(matrix(3, 1)).arg(matrix(3, 2)).arg(matrix(3, 3));
875 bool QDeclarativeMatrix4x4ValueType::isEqual(const QVariant &value) const
877 return (QVariant(matrix) == value);
880 QDeclarativeEasingValueType::QDeclarativeEasingValueType(QObject *parent)
881 : QDeclarativeValueType(parent)
885 void QDeclarativeEasingValueType::read(QObject *obj, int idx)
887 void *a[] = { &easing, 0 };
888 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
891 void QDeclarativeEasingValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
894 void *a[] = { &easing, 0, &status, &flags };
895 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
898 QVariant QDeclarativeEasingValueType::value()
900 return QVariant(easing);
903 void QDeclarativeEasingValueType::setValue(QVariant value)
905 easing = qvariant_cast<QEasingCurve>(value);
908 QString QDeclarativeEasingValueType::toString() const
910 return QString(QLatin1String("QEasingCurve(%1, %2, %3, %4)")).arg(easing.type()).arg(easing.amplitude()).arg(easing.overshoot()).arg(easing.period());
913 bool QDeclarativeEasingValueType::isEqual(const QVariant &value) const
915 return (QVariant(easing) == value);
918 QDeclarativeEasingValueType::Type QDeclarativeEasingValueType::type() const
920 return (QDeclarativeEasingValueType::Type)easing.type();
923 qreal QDeclarativeEasingValueType::amplitude() const
925 return easing.amplitude();
928 qreal QDeclarativeEasingValueType::overshoot() const
930 return easing.overshoot();
933 qreal QDeclarativeEasingValueType::period() const
935 return easing.period();
938 void QDeclarativeEasingValueType::setType(QDeclarativeEasingValueType::Type type)
940 easing.setType((QEasingCurve::Type)type);
943 void QDeclarativeEasingValueType::setAmplitude(qreal amplitude)
945 easing.setAmplitude(amplitude);
948 void QDeclarativeEasingValueType::setOvershoot(qreal overshoot)
950 easing.setOvershoot(overshoot);
953 void QDeclarativeEasingValueType::setPeriod(qreal period)
955 easing.setPeriod(period);
958 QDeclarativeFontValueType::QDeclarativeFontValueType(QObject *parent)
959 : QDeclarativeValueType(parent), pixelSizeSet(false), pointSizeSet(false)
963 void QDeclarativeFontValueType::read(QObject *obj, int idx)
965 void *a[] = { &font, 0 };
966 QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a);
967 pixelSizeSet = false;
968 pointSizeSet = false;
971 void QDeclarativeFontValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags)
974 void *a[] = { &font, 0, &status, &flags };
975 QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a);
978 QVariant QDeclarativeFontValueType::value()
980 return QVariant(font);
983 void QDeclarativeFontValueType::setValue(QVariant value)
985 font = qvariant_cast<QFont>(value);
988 QString QDeclarativeFontValueType::toString() const
990 return QString(QLatin1String("QFont(%1)")).arg(font.toString());
993 bool QDeclarativeFontValueType::isEqual(const QVariant &value) const
995 return (QVariant(font) == value);
999 QString QDeclarativeFontValueType::family() const
1001 return font.family();
1004 void QDeclarativeFontValueType::setFamily(const QString &family)
1006 font.setFamily(family);
1009 bool QDeclarativeFontValueType::bold() const
1014 void QDeclarativeFontValueType::setBold(bool b)
1019 QDeclarativeFontValueType::FontWeight QDeclarativeFontValueType::weight() const
1021 return (QDeclarativeFontValueType::FontWeight)font.weight();
1024 void QDeclarativeFontValueType::setWeight(QDeclarativeFontValueType::FontWeight w)
1026 font.setWeight((QFont::Weight)w);
1029 bool QDeclarativeFontValueType::italic() const
1031 return font.italic();
1034 void QDeclarativeFontValueType::setItalic(bool b)
1039 bool QDeclarativeFontValueType::underline() const
1041 return font.underline();
1044 void QDeclarativeFontValueType::setUnderline(bool b)
1046 font.setUnderline(b);
1049 bool QDeclarativeFontValueType::overline() const
1051 return font.overline();
1054 void QDeclarativeFontValueType::setOverline(bool b)
1056 font.setOverline(b);
1059 bool QDeclarativeFontValueType::strikeout() const
1061 return font.strikeOut();
1064 void QDeclarativeFontValueType::setStrikeout(bool b)
1066 font.setStrikeOut(b);
1069 qreal QDeclarativeFontValueType::pointSize() const
1071 if (font.pointSizeF() == -1) {
1073 dpi = qt_defaultDpi();
1074 return font.pixelSize() * qreal(72.) / qreal(dpi);
1076 return font.pointSizeF();
1079 void QDeclarativeFontValueType::setPointSize(qreal size)
1082 qWarning() << "Both point size and pixel size set. Using pixel size.";
1087 pointSizeSet = true;
1088 font.setPointSizeF(size);
1090 pointSizeSet = false;
1094 int QDeclarativeFontValueType::pixelSize() const
1096 if (font.pixelSize() == -1) {
1098 dpi = qt_defaultDpi();
1099 return (font.pointSizeF() * dpi) / qreal(72.);
1101 return font.pixelSize();
1104 void QDeclarativeFontValueType::setPixelSize(int size)
1108 qWarning() << "Both point size and pixel size set. Using pixel size.";
1109 font.setPixelSize(size);
1110 pixelSizeSet = true;
1112 pixelSizeSet = false;
1116 QDeclarativeFontValueType::Capitalization QDeclarativeFontValueType::capitalization() const
1118 return (QDeclarativeFontValueType::Capitalization)font.capitalization();
1121 void QDeclarativeFontValueType::setCapitalization(QDeclarativeFontValueType::Capitalization c)
1123 font.setCapitalization((QFont::Capitalization)c);
1126 qreal QDeclarativeFontValueType::letterSpacing() const
1128 return font.letterSpacing();
1131 void QDeclarativeFontValueType::setLetterSpacing(qreal size)
1133 font.setLetterSpacing(QFont::AbsoluteSpacing, size);
1136 qreal QDeclarativeFontValueType::wordSpacing() const
1138 return font.wordSpacing();
1141 void QDeclarativeFontValueType::setWordSpacing(qreal size)
1143 font.setWordSpacing(size);