70 static bool convert(
const void *from,
int fromTypeId,
void *to,
int toTypeId)
72 Q_ASSERT(fromTypeId != toTypeId);
74 bool onlyCheck = (from ==
nullptr && to ==
nullptr);
76 Q_ASSERT(onlyCheck || (
bool(from) &&
bool(to)));
78#if QT_CONFIG(shortcut)
81 switch (makePair(toTypeId, fromTypeId)) {
82 QMETATYPE_CONVERTER(QByteArray, QColor,
83 result = source.name(source.alpha() != 255 ?
84 QColor::HexArgb : QColor::HexRgb).toLatin1();
87 QMETATYPE_CONVERTER(QColor, QByteArray,
88 result = QColor::fromString(QLatin1StringView(source));
89 return result.isValid();
91 QMETATYPE_CONVERTER(QString, QColor,
92 result = source.name(source.alpha() != 255 ?
93 QColor::HexArgb : QColor::HexRgb);
96 QMETATYPE_CONVERTER(QColor, QString,
97 result = QColor::fromString(source);
98 return result.isValid();
100#if QT_CONFIG(shortcut)
101 QMETATYPE_CONVERTER(QString, QKeySequence,
102 result = source.toString(QKeySequence::NativeText);
105 QMETATYPE_CONVERTER(QKeySequence, QString, result = source;
return true;);
106 QMETATYPE_CONVERTER(Int, QKeySequence,
107 result = source.isEmpty() ? 0 : source[0].toCombined();
110 QMETATYPE_CONVERTER(QKeySequence, Int, result = source;
return true;);
112 QMETATYPE_CONVERTER(QString, QFont, result = source.toString();
return true;);
113 QMETATYPE_CONVERTER(QFont, QString,
return result.fromString(source););
114 QMETATYPE_CONVERTER(QPixmap, QImage, result = QPixmap::fromImage(source);
return true;);
115 QMETATYPE_CONVERTER(QImage, QPixmap, result = source.toImage();
return true;);
116 QMETATYPE_CONVERTER(QPixmap, QBitmap, result = source;
return true;);
117 QMETATYPE_CONVERTER(QBitmap, QPixmap, result = QBitmap::fromPixmap(source);
return true;);
118 QMETATYPE_CONVERTER(QImage, QBitmap, result = source.toImage();
return true;);
119 QMETATYPE_CONVERTER(QBitmap, QImage, result = QBitmap::fromImage(source);
return true;);
120 QMETATYPE_CONVERTER(QPixmap, QBrush, result = source.texture();
return true;);
121 QMETATYPE_CONVERTER(QBrush, QPixmap, result = source;
return true;);
122 QMETATYPE_CONVERTER(QColor, QBrush,
123 if (source.style() == Qt::SolidPattern) {
124 result = source.color();
129 QMETATYPE_CONVERTER(QBrush, QColor, result = source;
return true;);