inline QVariant *getvariantptr() { return (QVariant *)typeDataPtr(); }
inline QString *getstringptr() { return (QString *)typeDataPtr(); }
inline QUrl *geturlptr() { return (QUrl *)typeDataPtr(); }
-- inline QColor *getcolorptr() { return (QColor *)typeDataPtr(); }
inline const QVariant *getvariantptr() const { return (QVariant *)typeDataPtr(); }
inline const QString *getstringptr() const { return (QString *)typeDataPtr(); }
inline const QUrl *geturlptr() const { return (QUrl *)typeDataPtr(); }
-- inline const QColor *getcolorptr() const { return (QColor *)typeDataPtr(); }
+ size_t dataSize() { return sizeof(data); }
inline void *typeDataPtr() { return (void *)&data; }
inline void *typeMemory() { return (void *)data; }
inline const void *typeDataPtr() const { return (void *)&data; }
case QMetaType::Double:
v4value = result.getnumber();
break;
- v4value = *result.getcolorptr();
+ case QMetaType::QColor:
++ v4value = QVariant(QMetaType::QColor, result.typeDataPtr());
+ break;
+ case QMetaType::QVariant:
+ v4value = *result.getvariantptr();
+ break;
default:
if (resultType == QQmlMetaType::QQuickAnchorLineMetaTypeId()) {
v4value = QVariant(QQmlMetaType::QQuickAnchorLineMetaTypeId(), result.typeDataPtr());
}
QML_V4_END_INSTR(ConvertColorToString, unaryop)
- const QColor tmp(*src.getcolorptr());
+ QML_V4_BEGIN_INSTR(ConvertColorToVariant, unaryop)
+ {
+ const Register &src = registers[instr->unaryop.src];
+ Register &output = registers[instr->unaryop.output];
+ // ### NaN
+ if (src.isUndefined()) {
+ output.setUndefined();
+ } else {
++ QVariant tmp(QMetaType::QColor, src.typeDataPtr());
+ if (instr->unaryop.src == instr->unaryop.output) {
+ output.cleanupColor();
+ MARK_CLEAN_REGISTER(instr->unaryop.output);
+ }
+ new (output.getvariantptr()) QVariant(tmp);
+ VARIANT_REGISTER(instr->unaryop.output);
+ }
+ }
+ QML_V4_END_INSTR(ConvertColorToVariant, unaryop)
+
QML_V4_BEGIN_INSTR(ConvertObjectToBool, unaryop)
{
const Register &src = registers[instr->unaryop.src];
QQuickCanvas *canvas = new QQuickCanvas;
canvas->resize(250, 250);
-- canvas->move(100, 100);
++ canvas->setPos(100, 100);
canvas->show();
TestTouchItem *bottomItem = new TestTouchItem(canvas->rootItem());
QQuickCanvas *canvas = new QQuickCanvas;
canvas->resize(250, 250);
-- canvas->move(100, 100);
++ canvas->setPos(100, 100);
canvas->show();
TestTouchItem *bottomItem = new TestTouchItem(canvas->rootItem());
QQuickCanvas *canvas = new QQuickCanvas;
canvas->resize(250, 250);
-- canvas->move(100, 100);
++ canvas->setPos(100, 100);
canvas->show();
TestTouchItem *item = new TestTouchItem(canvas->rootItem());
QQuickCanvas *canvas = new QQuickCanvas;
canvas->resize(250, 250);
-- canvas->move(100, 100);
++ canvas->setPos(100, 100);
canvas->show();
TestTouchItem *bottomItem = new TestTouchItem(canvas->rootItem());
//### Can we examine rendering to make sure it is really blue?
QQuickCanvas *canvas = new QQuickCanvas;
canvas->resize(250, 250);
-- canvas->move(100, 100);
++ canvas->setPos(100, 100);
canvas->setClearColor(Qt::blue);
canvas->show();
QTest::qWaitForWindowShown(canvas);