69 static bool convert(
const void *from,
int fromTypeId,
void *to,
int toTypeId)
71 Q_ASSERT(fromTypeId != toTypeId);
73 bool onlyCheck = (from ==
nullptr && to ==
nullptr);
75 Q_ASSERT(onlyCheck || (
bool(from) &&
bool(to)));
77#if QT_CONFIG(shortcut)
80 switch (makePair(toTypeId, fromTypeId)) {
81 QMETATYPE_CONVERTER(QByteArray, QColor,
82 result = source.name(source.alpha() != 255 ?
83 QColor::HexArgb : QColor::HexRgb).toLatin1();
86 QMETATYPE_CONVERTER(QColor, QByteArray,
87 result = QColor::fromString(QLatin1StringView(source));
88 return result.isValid();
90 QMETATYPE_CONVERTER(QString, QColor,
91 result = source.name(source.alpha() != 255 ?
92 QColor::HexArgb : QColor::HexRgb);
95 QMETATYPE_CONVERTER(QColor, QString,
96 result = QColor::fromString(source);
97 return result.isValid();
99#if QT_CONFIG(shortcut)
100 QMETATYPE_CONVERTER(QString, QKeySequence,
101 result = source.toString(QKeySequence::NativeText);
104 QMETATYPE_CONVERTER(QKeySequence, QString, result = source;
return true;);
105 QMETATYPE_CONVERTER(Int, QKeySequence,
106 result = source.isEmpty() ? 0 : source[0].toCombined();
109 QMETATYPE_CONVERTER(QKeySequence, Int, result = source;
return true;);
111 QMETATYPE_CONVERTER(QString, QFont, result = source.toString();
return true;);
112 QMETATYPE_CONVERTER(QFont, QString,
return result.fromString(source););
113 QMETATYPE_CONVERTER(QPixmap, QImage, result = QPixmap::fromImage(source);
return true;);
114 QMETATYPE_CONVERTER(QImage, QPixmap, result = source.toImage();
return true;);
115 QMETATYPE_CONVERTER(QPixmap, QBitmap, result = source;
return true;);
116 QMETATYPE_CONVERTER(QBitmap, QPixmap, result = QBitmap::fromPixmap(source);
return true;);
117 QMETATYPE_CONVERTER(QImage, QBitmap, result = source.toImage();
return true;);
118 QMETATYPE_CONVERTER(QBitmap, QImage, result = QBitmap::fromImage(source);
return true;);
119 QMETATYPE_CONVERTER(QPixmap, QBrush, result = source.texture();
return true;);
120 QMETATYPE_CONVERTER(QBrush, QPixmap, result = source;
return true;);
121 QMETATYPE_CONVERTER(QColor, QBrush,
122 if (source.style() == Qt::SolidPattern) {
123 result = source.color();
128 QMETATYPE_CONVERTER(QBrush, QColor, result = source;
return true;);