From 72a3f170fbb1eaab9b293a54224e60f861ad5be3 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Tue, 22 Sep 2009 16:51:52 +1000 Subject: Fixing and refactoring of QFxLineInput updating Still not working ideally. --- src/declarative/fx/qfxtextinput.cpp | 51 +++++++++++++++++++++++-------------- src/declarative/fx/qfxtextinput.h | 4 +-- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/declarative/fx/qfxtextinput.cpp b/src/declarative/fx/qfxtextinput.cpp index f38a551..16ad185 100644 --- a/src/declarative/fx/qfxtextinput.cpp +++ b/src/declarative/fx/qfxtextinput.cpp @@ -131,9 +131,7 @@ void QFxTextInput::setFont(const QFont &font) d->cursorItem->setHeight(QFontMetrics(d->font).height()); moveCursor(); } - //updateSize(); - updateAll();//TODO: Only necessary updates - update(); + updateSize(); } /*! @@ -272,7 +270,7 @@ void QFxTextInput::setCursorVisible(bool on) return; d->cursorVisible = on; d->control->setCursorBlinkPeriod(on?QApplication::cursorFlashTime():0); - updateAll();//TODO: Only update cursor rect + //d->control should emit the cursor update regions } /*! @@ -593,14 +591,17 @@ bool QFxTextInput::event(QEvent* ev) { Q_D(QFxTextInput); //Anything we don't deal with ourselves, pass to the control + bool handled = false; switch(ev->type()){ case QEvent::KeyPress: case QEvent::GraphicsSceneMousePress: break; default: - return d->control->processEvent(ev); + handled = d->control->processEvent(ev); } - return false; + if(!handled) + return QFxPaintedItem::event(ev); + return true; } void QFxTextInput::geometryChanged(const QRectF &newGeometry, @@ -667,13 +668,13 @@ void QFxTextInputPrivate::init() q, SLOT(q_textChanged())); q->connect(control, SIGNAL(accepted()), q, SIGNAL(accepted())); - q->connect(control, SIGNAL(updateNeeded(const QRect &)), - // q, SLOT(dirtyCache(const QRect &))); - q, SLOT(updateAll())); + q->connect(control, SIGNAL(updateNeeded(QRect)), + q, SLOT(updateRect(QRect))); q->connect(control, SIGNAL(cursorPositionChanged(int,int)), - q, SLOT(updateAll())); + q, SLOT(updateRect()));//TODO: Only update rect between pos's q->connect(control, SIGNAL(selectionChanged()), - q, SLOT(updateAll())); + q, SLOT(updateRect()));//TODO: Only update rect in selection + //Note that above TODOs are waiting, pending getting the updateRect working right q->updateSize(); oldValidity = control->hasAcceptableInput(); lastSelectionStart = 0; @@ -719,7 +720,7 @@ void QFxTextInput::selectionChanged() void QFxTextInput::q_textChanged() { Q_D(QFxTextInput); - updateAll(); + updateSize(); emit textChanged(); if(hasAcceptableInput() != d->oldValidity){ d->oldValidity = hasAcceptableInput(); @@ -727,21 +728,33 @@ void QFxTextInput::q_textChanged() } } -//### Please replace this function with proper updating -void QFxTextInput::updateAll() +void QFxTextInput::updateRect(const QRect &r) { - clearCache(); - updateSize(); + //### Only update that rect. + if(r == QRect()) + clearCache(); + //else + //dirtyCache(r);//Not working yet update(); } -void QFxTextInput::updateSize() +void QFxTextInput::updateSize(bool needsRedraw) { Q_D(QFxTextInput); + int w = width(); + int h = height(); setImplicitHeight(d->control->height()); //d->control->width() is width of the line, not of the text - setImplicitWidth(d->control->naturalTextWidth()+2); - setContentsSize(QSize(width(), height())); + //And naturalTextWidth() is the text, not including the cursor + int cursorWidth = d->control->cursorWidth(); + if(d->cursorItem) + cursorWidth = d->cursorItem->width(); + setImplicitWidth(d->control->naturalTextWidth()+2+cursorWidth); + setContentsSize(QSize(width(), height()));//Repaints if changed + if(w==width() && h==height() && needsRedraw){ + clearCache(); + update(); + } } QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxtextinput.h b/src/declarative/fx/qfxtextinput.h index 4fa4100..b1e8b14 100644 --- a/src/declarative/fx/qfxtextinput.h +++ b/src/declarative/fx/qfxtextinput.h @@ -184,13 +184,13 @@ public Q_SLOTS: void selectAll(); private Q_SLOTS: - void updateSize(); + void updateSize(bool needsRedraw = true); void q_textChanged(); void selectionChanged(); - void updateAll(); void createCursor(); void moveCursor(); void cursorPosChanged(); + void updateRect(const QRect &r = QRect()); private: Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QFxTextInput); -- cgit v0.12 From 5085d5027f168db01e60e2161d44d9445f9c7beb Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Tue, 22 Sep 2009 22:18:56 +1000 Subject: Add plumbing for more advanced signal property control --- src/declarative/qml/qmlboundsignal.cpp | 129 ++++++++++++++++++++++++++++---- src/declarative/qml/qmlboundsignal_p.h | 55 +++++--------- src/declarative/qml/qmlenginedebug.cpp | 6 +- src/declarative/qml/qmlmetaproperty.cpp | 66 ++++++++++++++-- src/declarative/qml/qmlmetaproperty.h | 4 + src/declarative/qml/qmlvme.cpp | 6 +- src/declarative/util/qmlconnection.cpp | 7 +- 7 files changed, 200 insertions(+), 73 deletions(-) diff --git a/src/declarative/qml/qmlboundsignal.cpp b/src/declarative/qml/qmlboundsignal.cpp index c43097e..08c3387 100644 --- a/src/declarative/qml/qmlboundsignal.cpp +++ b/src/declarative/qml/qmlboundsignal.cpp @@ -52,40 +52,135 @@ QT_BEGIN_NAMESPACE -int QmlBoundSignal::evaluateIdx = -1; -QmlBoundSignal::QmlBoundSignal(QmlContext *ctxt, const QString &val, QObject *me, int idx, QObject *parent) -: QmlExpression(ctxt, val, me), _idx(idx) +class QmlBoundSignalParameters : public QObject +{ +Q_OBJECT +public: + QmlBoundSignalParameters(const QMetaMethod &, QObject * = 0); + ~QmlBoundSignalParameters(); + + void setValues(void **); + void clearValues(); + +private: + friend class MetaObject; + int metaCall(QMetaObject::Call, int _id, void **); + struct MetaObject : public QAbstractDynamicMetaObject { + MetaObject(QmlBoundSignalParameters *b) + : parent(b) {} + + int metaCall(QMetaObject::Call c, int id, void **a) { + return parent->metaCall(c, id, a); + } + QmlBoundSignalParameters *parent; + }; + + int *types; + void **values; + QMetaObject *myMetaObject; +}; + +static int evaluateIdx = -1; + +QmlAbstractBoundSignal::QmlAbstractBoundSignal(QObject *parent) +: QObject(parent) +{ +} + +QmlAbstractBoundSignal::~QmlAbstractBoundSignal() +{ +} + +QmlBoundSignal::QmlBoundSignal(QObject *scope, const QMetaMethod &signal, + QObject *parent) +: m_expression(0), m_idx(signal.methodIndex()), m_params(0) { // A cached evaluation of the QmlExpression::value() slot index. // // This is thread safe. Although it may be updated by two threads, they // will both set it to the same value - so the worst thing that can happen // is that they both do the work to figure it out. Boo hoo. - if (evaluateIdx == -1) - evaluateIdx = QmlExpression::staticMetaObject.indexOfMethod("value()"); + if (evaluateIdx == -1) evaluateIdx = metaObject()->methodCount(); - setTrackChange(false); QFx_setParent_noEvent(this, parent); - QMetaObject::connect(me, _idx, this, evaluateIdx); + QMetaObject::connect(scope, m_idx, this, evaluateIdx); + + if (!signal.parameterTypes().isEmpty()) + m_params = new QmlBoundSignalParameters(signal, this); } -QmlBoundSignalProxy::QmlBoundSignalProxy(QmlContext *ctxt, const QString &val, QObject *me, int idx, QObject *parent) -: QmlBoundSignal(ctxt, val, me, idx, parent) +QmlBoundSignal::QmlBoundSignal(QmlContext *ctxt, const QString &val, + QObject *scope, const QMetaMethod &signal, + QObject *parent) +: m_expression(0), m_idx(signal.methodIndex()), m_params(0) { - QMetaMethod signal = me->metaObject()->method(idx); + // A cached evaluation of the QmlExpression::value() slot index. + // + // This is thread safe. Although it may be updated by two threads, they + // will both set it to the same value - so the worst thing that can happen + // is that they both do the work to figure it out. Boo hoo. + if (evaluateIdx == -1) evaluateIdx = metaObject()->methodCount(); - params = new QmlBoundSignalParameters(signal, this); + QFx_setParent_noEvent(this, parent); + QMetaObject::connect(scope, m_idx, this, evaluateIdx); + + m_expression = new QmlExpression(ctxt, val, scope); + m_expression->setTrackChange(false); + + if (!signal.parameterTypes().isEmpty()) + m_params = new QmlBoundSignalParameters(signal, this); +} + +QmlBoundSignal::~QmlBoundSignal() +{ + delete m_expression; + m_expression = 0; +} + +int QmlBoundSignal::index() const +{ + return m_idx; } -int QmlBoundSignalProxy::qt_metacall(QMetaObject::Call c, int id, void **a) +/*! + Returns the signal expression. +*/ +QmlExpression *QmlBoundSignal::expression() const +{ + return m_expression; +} + +/*! + Sets the signal expression to \a e. Returns the current signal expression, + or null if there is no signal expression. + + The QmlBoundSignal instance takes ownership of \a e. The caller is + assumes ownership of the returned QmlExpression. +*/ +QmlExpression *QmlBoundSignal::setExpression(QmlExpression *e) +{ + QmlExpression *rv = m_expression; + m_expression = e; + if (m_expression) m_expression->setTrackChange(false); + return rv; +} + +QmlBoundSignal *QmlBoundSignal::cast(QObject *o) +{ + QmlAbstractBoundSignal *s = qobject_cast(o); + return static_cast(s); +} + +int QmlBoundSignal::qt_metacall(QMetaObject::Call c, int id, void **a) { if (c == QMetaObject::InvokeMetaMethod && id == evaluateIdx) { - params->setValues(a); - QmlExpressionPrivate::get(this)->value(params); - params->clearValues(); + if (m_params) m_params->setValues(a); + if (m_expression) + QmlExpressionPrivate::get(m_expression)->value(m_params); + if (m_params) m_params->clearValues(); return -1; } else { - return QmlBoundSignal::qt_metacall(c, id, a); + return QObject::qt_metacall(c, id, a); } } @@ -157,3 +252,5 @@ int QmlBoundSignalParameters::metaCall(QMetaObject::Call c, int id, void **a) } QT_END_NAMESPACE + +#include "qmlboundsignal.moc" diff --git a/src/declarative/qml/qmlboundsignal_p.h b/src/declarative/qml/qmlboundsignal_p.h index de8f91d..51c7155 100644 --- a/src/declarative/qml/qmlboundsignal_p.h +++ b/src/declarative/qml/qmlboundsignal_p.h @@ -58,56 +58,37 @@ QT_BEGIN_NAMESPACE -class QmlBoundSignal : public QmlExpression +class QmlAbstractBoundSignal : public QObject { -Q_OBJECT + Q_OBJECT public: - QmlBoundSignal(QmlContext *, const QString &, QObject *me, int idx, QObject *parent); - - int index() const { return _idx; } -protected: - static int evaluateIdx; -private: - int _idx; + QmlAbstractBoundSignal(QObject *parent = 0); + virtual ~QmlAbstractBoundSignal() = 0; }; -class QmlBoundSignalParameters : public QObject +class QmlBoundSignalParameters; +class QmlBoundSignal : public QmlAbstractBoundSignal { -Q_OBJECT public: - QmlBoundSignalParameters(const QMetaMethod &, QObject * = 0); - ~QmlBoundSignalParameters(); - - void setValues(void **); - void clearValues(); - -private: - friend class MetaObject; - int metaCall(QMetaObject::Call, int _id, void **); - struct MetaObject : public QAbstractDynamicMetaObject { - MetaObject(QmlBoundSignalParameters *b) - : parent(b) {} + QmlBoundSignal(QObject *scope, const QMetaMethod &signal, QObject *parent); + QmlBoundSignal(QmlContext *ctxt, const QString &val, QObject *scope, + const QMetaMethod &signal, QObject *parent); + virtual ~QmlBoundSignal(); - int metaCall(QMetaObject::Call c, int id, void **a) { - return parent->metaCall(c, id, a); - } - QmlBoundSignalParameters *parent; - }; + int index() const; - int *types; - void **values; - QMetaObject *myMetaObject; -}; + QmlExpression *expression() const; + QmlExpression *setExpression(QmlExpression *); -class QmlBoundSignalProxy : public QmlBoundSignal -{ -public: - QmlBoundSignalProxy(QmlContext *, const QString &, QObject *me, int idx, QObject *parent); + static QmlBoundSignal *cast(QObject *); protected: virtual int qt_metacall(QMetaObject::Call c, int id, void **a); + private: - QmlBoundSignalParameters *params; + QmlExpression *m_expression; + int m_idx; + QmlBoundSignalParameters *m_params; }; QT_END_NAMESPACE diff --git a/src/declarative/qml/qmlenginedebug.cpp b/src/declarative/qml/qmlenginedebug.cpp index 7f9e530..a53ab2a 100644 --- a/src/declarative/qml/qmlenginedebug.cpp +++ b/src/declarative/qml/qmlenginedebug.cpp @@ -104,11 +104,7 @@ QmlEngineDebugServer::propertyData(QObject *obj, int propIdx) if (prop.type() < QVariant::UserType) { rv.type = QmlObjectProperty::Basic; - if (qobject_cast(obj) && prop.name() != QByteArray("objectName")) - // these "properties" only have meaning during signal emission - rv.value = tr("(signal parameter)"); - else - rv.value = prop.read(obj); + rv.value = prop.read(obj); } else if (QmlMetaType::isObject(prop.userType())) { rv.type = QmlObjectProperty::Object; } else if (QmlMetaType::isList(prop.userType()) || diff --git a/src/declarative/qml/qmlmetaproperty.cpp b/src/declarative/qml/qmlmetaproperty.cpp index 792b098..8f76240 100644 --- a/src/declarative/qml/qmlmetaproperty.cpp +++ b/src/declarative/qml/qmlmetaproperty.cpp @@ -547,6 +547,9 @@ QmlAbstractBinding *QmlMetaProperty::binding() const \a newBinding will be enabled, and the returned binding (if any) will be disabled. + + Ownership of \a newBinding transfers to QML. Ownership of the return value + is assumed by the caller. */ QmlAbstractBinding * QmlMetaProperty::setBinding(QmlAbstractBinding *newBinding) const @@ -577,6 +580,59 @@ QmlMetaProperty::setBinding(QmlAbstractBinding *newBinding) const return 0; } +/*! + Returns the expression associated with this signal property, or 0 if no + signal expression exists. +*/ +QmlExpression *QmlMetaProperty::signalExpression() const +{ + if (!(type() & SignalProperty)) + return 0; + + const QObjectList &children = d->object->children(); + + for (int ii = 0; ii < children.count(); ++ii) { + QObject *child = children.at(ii); + + QmlBoundSignal *signal = QmlBoundSignal::cast(child); + if (signal && signal->index() == coreIndex()) + return signal->expression(); + } + + return 0; +} + +/*! + Set the signal expression associated with this signal property to \a expr. + Returns the existing signal expression (if any), otherwise 0. + + Ownership of \a expr transfers to QML. Ownership of the return value is + assumed by the caller. +*/ +QmlExpression *QmlMetaProperty::setSignalExpression(QmlExpression *expr) const +{ + if (!(type() & SignalProperty)) + return 0; + + const QObjectList &children = d->object->children(); + + for (int ii = 0; ii < children.count(); ++ii) { + QObject *child = children.at(ii); + + QmlBoundSignal *signal = QmlBoundSignal::cast(child); + if (signal && signal->index() == coreIndex()) + return signal->setExpression(expr); + } + + if (expr) { + QmlBoundSignal *signal = new QmlBoundSignal(d->object, d->signal, + d->object); + return signal->setExpression(expr); + } else { + return 0; + } +} + void QmlMetaPropertyPrivate::findSignalInt(QObject *obj, const QString &name) { const QMetaObject *mo = obj->metaObject(); @@ -617,9 +673,9 @@ QVariant QmlMetaProperty::read() const const QObjectList &children = object()->children(); for (int ii = 0; ii < children.count(); ++ii) { - QmlBoundSignal *sig = qobject_cast(children.at(ii)); + QmlBoundSignal *sig = QmlBoundSignal::cast(children.at(ii)); if (sig && sig->index() == d->coreIdx) - return sig->expression(); + return sig->expression()->expression(); } } else if (type() & Property) { if (type() & Attached) { @@ -653,13 +709,13 @@ void QmlMetaPropertyPrivate::writeSignalProperty(const QVariant &value) const QObjectList &children = object->children(); for (int ii = 0; ii < children.count(); ++ii) { - QmlBoundSignal *sig = qobject_cast(children.at(ii)); + QmlBoundSignal *sig = QmlBoundSignal::cast(children.at(ii)); if (sig && sig->index() == coreIdx) { if (expr.isEmpty()) { sig->disconnect(); sig->deleteLater(); } else { - sig->setExpression(expr); + sig->expression()->setExpression(expr); } return; } @@ -667,7 +723,7 @@ void QmlMetaPropertyPrivate::writeSignalProperty(const QVariant &value) if (!expr.isEmpty()) { // XXX scope - (void *)new QmlBoundSignal(qmlContext(object), expr, object, coreIdx, object); + (void *)new QmlBoundSignal(qmlContext(object), expr, object, signal, object); } } diff --git a/src/declarative/qml/qmlmetaproperty.h b/src/declarative/qml/qmlmetaproperty.h index 7b9ff47..62e93c4 100644 --- a/src/declarative/qml/qmlmetaproperty.h +++ b/src/declarative/qml/qmlmetaproperty.h @@ -53,6 +53,7 @@ QT_MODULE(Declarative) class QObject; class QmlAbstractBinding; +class QmlExpression; class QStringList; class QVariant; struct QMetaObject; @@ -125,6 +126,9 @@ public: QmlAbstractBinding *binding() const; QmlAbstractBinding *setBinding(QmlAbstractBinding *) const; + QmlExpression *signalExpression() const; + QmlExpression *setSignalExpression(QmlExpression *) const; + static QmlMetaProperty createProperty(QObject *, const QString &); int coreIndex() const; diff --git a/src/declarative/qml/qmlvme.cpp b/src/declarative/qml/qmlvme.cpp index ca88455..d377cc3 100644 --- a/src/declarative/qml/qmlvme.cpp +++ b/src/declarative/qml/qmlvme.cpp @@ -537,11 +537,7 @@ QObject *QmlVME::run(QStack &stack, QmlContext *ctxt, QmlCompiledData QMetaMethod signal = target->metaObject()->method(instr.storeSignal.signalIndex); - if (signal.parameterTypes().isEmpty()) { - (void *)new QmlBoundSignal(ctxt, primitives.at(instr.storeSignal.value), target, instr.storeSignal.signalIndex, target); - } else { - (void *)new QmlBoundSignalProxy(ctxt, primitives.at(instr.storeSignal.value), target, instr.storeSignal.signalIndex, target); - } + (void *)new QmlBoundSignal(ctxt, primitives.at(instr.storeSignal.value), target, signal, target); } break; diff --git a/src/declarative/util/qmlconnection.cpp b/src/declarative/util/qmlconnection.cpp index 6dca2d1..c77d0f6 100644 --- a/src/declarative/util/qmlconnection.cpp +++ b/src/declarative/util/qmlconnection.cpp @@ -187,10 +187,7 @@ void QmlConnection::connectIfValid() return; } - if (sigparams.isEmpty()) - d->boundsignal = new QmlBoundSignal(qmlContext(this), d->script, sender, sigIdx, this); - else - d->boundsignal = new QmlBoundSignalProxy(new QmlContext(qmlContext(this),this), d->script, sender, sigIdx, this); + d->boundsignal = new QmlBoundSignal(qmlContext(this), d->script, sender, mo->method(sigIdx), this); } } @@ -238,7 +235,7 @@ void QmlConnection::setScript(const QString& script) } else { // must exist - update d->script = script; - d->boundsignal->setExpression(script); + d->boundsignal->expression()->setExpression(script); } } else { d->script = script; -- cgit v0.12 From 1c011c7f70791e0a4a38bd9f8bb1988cd604305c Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 23 Sep 2009 10:57:49 +1000 Subject: Fix cursor drawing in QFxTextInput and QFxTextEdit Fixes a bug in QFxPaintedItem that was plaguing them both. Optimizes the painting of he blinking cursor in QFxTextInput (don't redraw whole thing each blink) Fixes cursor drawing and lack thereof bugs with QFxTextEdit. Task-number: QT-669 --- src/declarative/fx/qfxpainteditem.cpp | 3 ++- src/declarative/fx/qfxtextedit.cpp | 5 +++++ src/declarative/fx/qfxtextinput.cpp | 17 +++++++++-------- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/declarative/fx/qfxpainteditem.cpp b/src/declarative/fx/qfxpainteditem.cpp index 5471e1b..85924e0 100644 --- a/src/declarative/fx/qfxpainteditem.cpp +++ b/src/declarative/fx/qfxpainteditem.cpp @@ -101,7 +101,7 @@ void QFxPaintedItem::dirtyCache(const QRect& rect) QFxPaintedItemPrivate::ImageCacheItem *c = d->imagecache[i]; QRect isect = (c->area & rect) | c->dirty; if (isect == c->area && !inpaint) { - d->imagecache.removeAt(i); + delete d->imagecache.takeAt(i); } else { c->dirty = isect; ++i; @@ -231,6 +231,7 @@ void QFxPaintedItem::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidge QPainter qp(&d->imagecache[i]->image); qp.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform, d->smooth); qp.translate(-area.x(), -area.y()); + qp.eraseRect(d->imagecache[i]->dirty); if (d->fillColor.isValid()) qp.fillRect(d->imagecache[i]->dirty,d->fillColor); qp.setClipRect(d->imagecache[i]->dirty); diff --git a/src/declarative/fx/qfxtextedit.cpp b/src/declarative/fx/qfxtextedit.cpp index d1bafd6..58b5c8e 100644 --- a/src/declarative/fx/qfxtextedit.cpp +++ b/src/declarative/fx/qfxtextedit.cpp @@ -1047,6 +1047,11 @@ void QFxTextEdit::updateSize() //### need to comfirm cost of always setting these int newWidth = (int)d->document->idealWidth(); d->document->setTextWidth(newWidth); // ### QTextDoc> Alignment will not work unless textWidth is set. Does Text need this line as well? + int cursorWidth = 1; + if(d->cursor) + cursorWidth = d->cursor->width(); + newWidth += cursorWidth; + newWidth += 3;// ### Need a better way of ensuring cursor is in width setImplicitWidth(newWidth); setImplicitHeight(d->text.isEmpty() ? fm.height() : (int)d->document->size().height()); diff --git a/src/declarative/fx/qfxtextinput.cpp b/src/declarative/fx/qfxtextinput.cpp index 16ad185..b7b155a 100644 --- a/src/declarative/fx/qfxtextinput.cpp +++ b/src/declarative/fx/qfxtextinput.cpp @@ -625,7 +625,9 @@ void QFxTextInput::drawContents(QPainter *p, const QRect &r) flags |= QLineControl::DrawSelections; } - d->control->draw(p, QPoint(0,0), r, flags); + QPoint offset = QPoint(0,0); + QRect clipRect = r; + d->control->draw(p, offset, clipRect, flags); p->restore(); } @@ -674,7 +676,7 @@ void QFxTextInputPrivate::init() q, SLOT(updateRect()));//TODO: Only update rect between pos's q->connect(control, SIGNAL(selectionChanged()), q, SLOT(updateRect()));//TODO: Only update rect in selection - //Note that above TODOs are waiting, pending getting the updateRect working right + //Note that above TODOs probably aren't that big a savings q->updateSize(); oldValidity = control->hasAcceptableInput(); lastSelectionStart = 0; @@ -730,11 +732,10 @@ void QFxTextInput::q_textChanged() void QFxTextInput::updateRect(const QRect &r) { - //### Only update that rect. if(r == QRect()) clearCache(); - //else - //dirtyCache(r);//Not working yet + else + dirtyCache(r); update(); } @@ -744,12 +745,12 @@ void QFxTextInput::updateSize(bool needsRedraw) int w = width(); int h = height(); setImplicitHeight(d->control->height()); - //d->control->width() is width of the line, not of the text - //And naturalTextWidth() is the text, not including the cursor int cursorWidth = d->control->cursorWidth(); if(d->cursorItem) cursorWidth = d->cursorItem->width(); - setImplicitWidth(d->control->naturalTextWidth()+2+cursorWidth); + //### Is QFontMetrics too slow? + QFontMetricsF fm(d->font); + setImplicitWidth(fm.width(d->control->displayText())+cursorWidth); setContentsSize(QSize(width(), height()));//Repaints if changed if(w==width() && h==height() && needsRedraw){ clearCache(); -- cgit v0.12 From 1206562c6be4098de8a9fdda5c7ff5c8fdd6bc01 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 23 Sep 2009 11:25:23 +1000 Subject: Use a bitmask to track bound properties --- src/declarative/qml/qmlbinding.cpp | 29 ++++++++++++++------- src/declarative/qml/qmlbinding.h | 1 + src/declarative/qml/qmldeclarativedata_p.h | 6 +++++ src/declarative/qml/qmlengine.cpp | 41 +++++++++++++++++++++++++++++- src/declarative/qml/qmlmetaproperty.cpp | 37 +++++++++++++++++---------- src/declarative/qml/qmlmetaproperty.h | 2 ++ src/declarative/qml/qmlmetaproperty_p.h | 2 +- src/declarative/qml/qmlvme.cpp | 3 +-- 8 files changed, 95 insertions(+), 26 deletions(-) diff --git a/src/declarative/qml/qmlbinding.cpp b/src/declarative/qml/qmlbinding.cpp index f9c9561..454369b 100644 --- a/src/declarative/qml/qmlbinding.cpp +++ b/src/declarative/qml/qmlbinding.cpp @@ -131,7 +131,7 @@ void QmlBinding::update() value = qVariantFromValue(QmlStringConverters::vector3DFromString(value.toString())); } - d->property.write(value); + d->property.write(value, QmlMetaProperty::Binding); } d->updating = false; @@ -180,7 +180,7 @@ QString QmlBinding::expression() const } QmlAbstractBinding::QmlAbstractBinding() -: m_mePtr(0), m_prevBinding(0), m_nextBinding(0) +: m_object(0), m_mePtr(0), m_prevBinding(0), m_nextBinding(0) { } @@ -193,24 +193,35 @@ QmlAbstractBinding::~QmlAbstractBinding() void QmlAbstractBinding::addToObject(QObject *object) { + Q_ASSERT(object); + removeFromObject(); - if (object) { - QmlDeclarativeData *data = QmlDeclarativeData::get(object, true); - m_nextBinding = data->bindings; - if (m_nextBinding) m_nextBinding->m_prevBinding = &m_nextBinding; - m_prevBinding = &data->bindings; - data->bindings = this; - } + Q_ASSERT(!m_prevBinding); + + QmlDeclarativeData *data = QmlDeclarativeData::get(object, true); + m_nextBinding = data->bindings; + if (m_nextBinding) m_nextBinding->m_prevBinding = &m_nextBinding; + m_prevBinding = &data->bindings; + data->bindings = this; + m_object = object; + + data->setBindingBit(m_object, propertyIndex()); } void QmlAbstractBinding::removeFromObject() { if (m_prevBinding) { + Q_ASSERT(m_object); + *m_prevBinding = m_nextBinding; if (m_nextBinding) m_nextBinding->m_prevBinding = m_prevBinding; m_prevBinding = 0; m_nextBinding = 0; + + QmlDeclarativeData *data = QmlDeclarativeData::get(m_object, false); + if (data) data->clearBindingBit(propertyIndex()); + m_object = 0; } } diff --git a/src/declarative/qml/qmlbinding.h b/src/declarative/qml/qmlbinding.h index 63b8a15..675917d 100644 --- a/src/declarative/qml/qmlbinding.h +++ b/src/declarative/qml/qmlbinding.h @@ -75,6 +75,7 @@ private: friend class QmlMetaProperty; friend class QmlVME; + QObject *m_object; QmlAbstractBinding **m_mePtr; QmlAbstractBinding **m_prevBinding; QmlAbstractBinding *m_nextBinding; diff --git a/src/declarative/qml/qmldeclarativedata_p.h b/src/declarative/qml/qmldeclarativedata_p.h index a316c0c..ade961f 100644 --- a/src/declarative/qml/qmldeclarativedata_p.h +++ b/src/declarative/qml/qmldeclarativedata_p.h @@ -70,6 +70,12 @@ public: QmlContext *context; QmlAbstractBinding *bindings; + int bindingBitsSize; + quint32 *bindingBits; + bool hasBindingBit(int) const; + void clearBindingBit(int); + void setBindingBit(QObject *obj, int); + QmlContext *outerContext; // Can't this be found from context? ushort lineNumber; ushort columnNumber; diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 4be5230..2ea1bee 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -700,7 +700,8 @@ QObject *qmlAttachedPropertiesObjectById(int id, const QObject *object, bool cre } QmlDeclarativeData::QmlDeclarativeData(QmlContext *ctxt) -: context(ctxt), bindings(0), outerContext(0), lineNumber(0), columnNumber(0), deferredComponent(0), +: context(ctxt), bindings(0), bindingBitsSize(0), bindingBits(0), + outerContext(0), lineNumber(0), columnNumber(0), deferredComponent(0), deferredIdx(0), attachedProperties(0) { } @@ -723,9 +724,47 @@ void QmlDeclarativeData::destroyed(QObject *object) binding = next; } + if (bindingBits) + free(bindingBits); + delete this; } +bool QmlDeclarativeData::hasBindingBit(int bit) const +{ + if (bindingBitsSize >= bit) + return bindingBits[bit / 32] & (1 << (bit % 32)); + else + return false; +} + +void QmlDeclarativeData::clearBindingBit(int bit) +{ + if (bindingBitsSize >= bit) + bindingBits[bit / 32] &= ~(1 << (bit % 32)); +} + +void QmlDeclarativeData::setBindingBit(QObject *obj, int bit) +{ + if (bindingBitsSize < bit) { + int props = obj->metaObject()->propertyCount(); + Q_ASSERT(bit < props); + + int arraySize = (props + 31) / 32; + int oldArraySize = bindingBitsSize / 32; + + bindingBits = (quint32 *)realloc(bindingBits, + arraySize * sizeof(quint32)); + memset(bindingBits + oldArraySize, + sizeof(quint32) * (arraySize - oldArraySize), + 0x00); + + bindingBitsSize = arraySize * 32; + } + + bindingBits[bit / 32] |= (1 << (bit % 32)); +} + /*! Creates a QScriptValue allowing you to use \a object in QML script. \a engine is the QmlEngine it is to be created in. diff --git a/src/declarative/qml/qmlmetaproperty.cpp b/src/declarative/qml/qmlmetaproperty.cpp index 8f76240..91769d3 100644 --- a/src/declarative/qml/qmlmetaproperty.cpp +++ b/src/declarative/qml/qmlmetaproperty.cpp @@ -531,6 +531,9 @@ QmlAbstractBinding *QmlMetaProperty::binding() const if (!data) return 0; + if (!data->hasBindingBit(d->coreIdx)) + return 0; + QmlAbstractBinding *binding = data->bindings; while (binding) { // ### This wont work for value types @@ -559,20 +562,22 @@ QmlMetaProperty::setBinding(QmlAbstractBinding *newBinding) const QmlDeclarativeData *data = QmlDeclarativeData::get(d->object, true); - QmlAbstractBinding *binding = data->bindings; - while (binding) { - // ### This wont work for value types - if (binding->propertyIndex() == d->coreIdx) { - binding->setEnabled(false); + if (data->hasBindingBit(d->coreIdx)) { + QmlAbstractBinding *binding = data->bindings; + while (binding) { + // ### This wont work for value types + if (binding->propertyIndex() == d->coreIdx) { + binding->setEnabled(false); - if (newBinding) - newBinding->setEnabled(true); + if (newBinding) + newBinding->setEnabled(true); - return binding; // ### QmlAbstractBinding; - } + return binding; // ### QmlAbstractBinding; + } - binding = binding->m_nextBinding; - } + binding = binding->m_nextBinding; + } + } if (newBinding) newBinding->setEnabled(true); @@ -727,7 +732,8 @@ void QmlMetaPropertyPrivate::writeSignalProperty(const QVariant &value) } } -void QmlMetaPropertyPrivate::writeValueProperty(const QVariant &value) +void QmlMetaPropertyPrivate::writeValueProperty(const QVariant &value, + QmlMetaProperty::WriteSource source) { QObject *object = this->object; int coreIdx = this->coreIdx; @@ -987,6 +993,11 @@ void QmlMetaPropertyPrivate::writeValueProperty(const QVariant &value) */ void QmlMetaProperty::write(const QVariant &value) const { + write(value, Other); +} + +void QmlMetaProperty::write(const QVariant &value, WriteSource source) const +{ if (!d->object) return; @@ -996,7 +1007,7 @@ void QmlMetaProperty::write(const QVariant &value) const } else if (d->coreIdx != -1) { - d->writeValueProperty(value); + d->writeValueProperty(value, source); } } diff --git a/src/declarative/qml/qmlmetaproperty.h b/src/declarative/qml/qmlmetaproperty.h index 62e93c4..8c34ece 100644 --- a/src/declarative/qml/qmlmetaproperty.h +++ b/src/declarative/qml/qmlmetaproperty.h @@ -88,6 +88,8 @@ public: QVariant read() const; void write(const QVariant &) const; + enum WriteSource { Animation, Binding, Other }; + void write(const QVariant &, WriteSource) const; bool hasChangedNotifier() const; bool needsChangedNotifier() const; diff --git a/src/declarative/qml/qmlmetaproperty_p.h b/src/declarative/qml/qmlmetaproperty_p.h index 8e8966e..f2d0039 100644 --- a/src/declarative/qml/qmlmetaproperty_p.h +++ b/src/declarative/qml/qmlmetaproperty_p.h @@ -118,7 +118,7 @@ public: QmlMetaProperty::PropertyCategory propertyCategory() const; void writeSignalProperty(const QVariant &); - void writeValueProperty(const QVariant &); + void writeValueProperty(const QVariant &, QmlMetaProperty::WriteSource); static quint32 saveValueType(int, int); static quint32 saveProperty(int); diff --git a/src/declarative/qml/qmlvme.cpp b/src/declarative/qml/qmlvme.cpp index d377cc3..606a732 100644 --- a/src/declarative/qml/qmlvme.cpp +++ b/src/declarative/qml/qmlvme.cpp @@ -565,9 +565,8 @@ QObject *QmlVME::run(QStack &stack, QmlContext *ctxt, QmlCompiledData QmlBinding *bind = new QmlBinding((void *)datas.at(instr.assignBinding.value).constData(), comp, context, ctxt, 0); bindValues.append(bind); bind->m_mePtr = &bindValues.values[bindValues.count - 1]; - bind->addToObject(target); - bind->setTarget(mp); + bind->addToObject(target); } break; -- cgit v0.12 From 4d89a76ee9d4756eb1d1171dc620a202234a9fc9 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 23 Sep 2009 11:32:45 +1000 Subject: Move test data into data subdir --- tests/auto/declarative/qmlparser/Alias.qml | 8 ----- tests/auto/declarative/qmlparser/MyComponent.qml | 6 ---- .../declarative/qmlparser/MyContainerComponent.qml | 5 --- tests/auto/declarative/qmlparser/alias.1.qml | 8 ----- tests/auto/declarative/qmlparser/alias.2.qml | 8 ----- tests/auto/declarative/qmlparser/alias.3.qml | 10 ------ .../declarative/qmlparser/assignBasicTypes.qml | 26 --------------- .../qmlparser/assignLiteralSignalProperty.qml | 4 --- .../declarative/qmlparser/assignObjectToSignal.qml | 4 --- .../qmlparser/assignObjectToVariant.qml | 6 ---- .../declarative/qmlparser/assignQmlComponent.qml | 4 --- tests/auto/declarative/qmlparser/assignSignal.qml | 5 --- .../declarative/qmlparser/assignTypeExtremes.qml | 5 --- .../declarative/qmlparser/attachedProperties.qml | 5 --- .../qmlparser/autoComponentCreation.qml | 4 --- tests/auto/declarative/qmlparser/cppnamespace.qml | 4 --- .../qmlparser/customParserIdNotAllowed.errors.txt | 1 - .../qmlparser/customParserIdNotAllowed.qml | 5 --- .../declarative/qmlparser/customParserTypes.qml | 5 --- .../declarative/qmlparser/customVariantTypes.qml | 4 --- tests/auto/declarative/qmlparser/data/Alias.qml | 8 +++++ .../declarative/qmlparser/data/MyComponent.qml | 6 ++++ .../qmlparser/data/MyContainerComponent.qml | 5 +++ tests/auto/declarative/qmlparser/data/alias.1.qml | 8 +++++ tests/auto/declarative/qmlparser/data/alias.2.qml | 8 +++++ tests/auto/declarative/qmlparser/data/alias.3.qml | 10 ++++++ .../qmlparser/data/assignBasicTypes.qml | 26 +++++++++++++++ .../qmlparser/data/assignLiteralSignalProperty.qml | 4 +++ .../qmlparser/data/assignObjectToSignal.qml | 4 +++ .../qmlparser/data/assignObjectToVariant.qml | 6 ++++ .../qmlparser/data/assignQmlComponent.qml | 4 +++ .../declarative/qmlparser/data/assignSignal.qml | 5 +++ .../qmlparser/data/assignTypeExtremes.qml | 5 +++ .../qmlparser/data/attachedProperties.qml | 5 +++ .../qmlparser/data/autoComponentCreation.qml | 4 +++ .../declarative/qmlparser/data/cppnamespace.qml | 4 +++ .../data/customParserIdNotAllowed.errors.txt | 1 + .../qmlparser/data/customParserIdNotAllowed.qml | 5 +++ .../qmlparser/data/customParserTypes.qml | 5 +++ .../qmlparser/data/customVariantTypes.qml | 4 +++ .../qmlparser/data/duplicateIDs.errors.txt | 1 + .../declarative/qmlparser/data/duplicateIDs.qml | 6 ++++ .../declarative/qmlparser/data/dynamicObject.1.qml | 8 +++++ .../qmlparser/data/dynamicProperties.qml | 13 ++++++++ .../qmlparser/data/dynamicSignalsAndSlots.qml | 7 ++++ .../declarative/qmlparser/data/empty.errors.txt | 2 ++ tests/auto/declarative/qmlparser/data/empty.qml | 0 .../qmlparser/data/failingComponent.errors.txt | 1 + .../qmlparser/data/failingComponentTest.qml | 4 +++ .../qmlparser/data/fakeDotProperty.errors.txt | 1 + .../declarative/qmlparser/data/fakeDotProperty.qml | 4 +++ .../qmlparser/data/finalOverride.errors.txt | 1 + .../declarative/qmlparser/data/finalOverride.qml | 4 +++ .../auto/declarative/qmlparser/data/idProperty.qml | 8 +++++ .../data/importNamespaceConflict.errors.txt | 1 + .../qmlparser/data/importNamespaceConflict.qml | 4 +++ .../data/importVersionMissingBuiltIn.errors.txt | 1 + .../qmlparser/data/importVersionMissingBuiltIn.qml | 7 ++++ .../data/importVersionMissingInstalled.errors.txt | 1 + .../data/importVersionMissingInstalled.qml | 3 ++ .../qmlparser/data/inlineQmlComponents.qml | 10 ++++++ .../qmlparser/data/interfaceProperty.qml | 5 +++ .../declarative/qmlparser/data/interfaceQList.qml | 7 ++++ .../qmlparser/data/interfaceQmlList.qml | 7 ++++ .../qmlparser/data/invalidID.2.errors.txt | 2 ++ .../declarative/qmlparser/data/invalidID.2.qml | 5 +++ .../qmlparser/data/invalidID.3.errors.txt | 1 + .../declarative/qmlparser/data/invalidID.3.qml | 5 +++ .../qmlparser/data/invalidID.4.errors.txt | 1 + .../declarative/qmlparser/data/invalidID.4.qml | 6 ++++ .../qmlparser/data/invalidID.5.errors.txt | 1 + .../declarative/qmlparser/data/invalidID.5.qml | 6 ++++ .../qmlparser/data/invalidID.6.errors.txt | 1 + .../declarative/qmlparser/data/invalidID.6.qml | 5 +++ .../qmlparser/data/invalidID.errors.txt | 1 + .../auto/declarative/qmlparser/data/invalidID.qml | 4 +++ .../lib/com/nokia/installedtest/InstalledTest.qml | 2 ++ .../lib/com/nokia/installedtest/InstalledTest2.qml | 2 ++ .../data/lib/com/nokia/installedtest/qmldir | 3 ++ .../qmlparser/data/listAssignment.1.errors.txt | 1 + .../qmlparser/data/listAssignment.1.qml | 4 +++ .../qmlparser/data/listAssignment.2.errors.txt | 2 ++ .../qmlparser/data/listAssignment.2.qml | 4 +++ .../qmlparser/data/listAssignment.3.errors.txt | 1 + .../qmlparser/data/listAssignment.3.qml | 6 ++++ .../qmlparser/data/listItemDeleteSelf.qml | 38 ++++++++++++++++++++++ .../qmlparser/data/missingObject.errors.txt | 1 + .../declarative/qmlparser/data/missingObject.qml | 1 + .../qmlparser/data/missingSignal.errors.txt | 1 + .../declarative/qmlparser/data/missingSignal.qml | 5 +++ .../data/nonexistantProperty.1.errors.txt | 1 + .../qmlparser/data/nonexistantProperty.1.qml | 2 ++ .../data/nonexistantProperty.2.errors.txt | 1 + .../qmlparser/data/nonexistantProperty.2.qml | 4 +++ .../data/nonexistantProperty.3.errors.txt | 1 + .../qmlparser/data/nonexistantProperty.3.qml | 4 +++ .../data/nonexistantProperty.4.errors.txt | 1 + .../qmlparser/data/nonexistantProperty.4.qml | 4 +++ .../data/nonexistantProperty.5.errors.txt | 1 + .../qmlparser/data/nonexistantProperty.5.qml | 4 +++ .../data/nonexistantProperty.6.errors.txt | 1 + .../qmlparser/data/nonexistantProperty.6.qml | 4 +++ .../qmlparser/data/nullDotProperty.errors.txt | 1 + .../declarative/qmlparser/data/nullDotProperty.qml | 4 +++ .../qmlparser/data/propertyValueSource.qml | 4 +++ .../qmlparser/data/readOnly.1.errors.txt | 1 + .../auto/declarative/qmlparser/data/readOnly.1.qml | 4 +++ .../qmlparser/data/readOnly.2.errors.txt | 1 + .../auto/declarative/qmlparser/data/readOnly.2.qml | 4 +++ .../qmlparser/data/rootAsQmlComponent.qml | 6 ++++ .../declarative/qmlparser/data/simpleBindings.qml | 18 ++++++++++ .../declarative/qmlparser/data/simpleContainer.qml | 5 +++ .../declarative/qmlparser/data/simpleObject.qml | 2 ++ .../declarative/qmlparser/data/subdir/Test.qml | 2 ++ .../qmlparser/data/unregisteredObject.errors.txt | 1 + .../qmlparser/data/unregisteredObject.qml | 2 ++ .../qmlparser/data/unsupportedProperty.errors.txt | 1 + .../qmlparser/data/unsupportedProperty.qml | 4 +++ .../auto/declarative/qmlparser/data/valueTypes.qml | 13 ++++++++ .../qmlparser/data/wrongType.1.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.1.qml | 4 +++ .../qmlparser/data/wrongType.10.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.10.qml | 5 +++ .../qmlparser/data/wrongType.11.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.11.qml | 5 +++ .../qmlparser/data/wrongType.12.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.12.qml | 5 +++ .../qmlparser/data/wrongType.13.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.13.qml | 4 +++ .../qmlparser/data/wrongType.14.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.14.qml | 5 +++ .../qmlparser/data/wrongType.2.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.2.qml | 4 +++ .../qmlparser/data/wrongType.3.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.3.qml | 4 +++ .../qmlparser/data/wrongType.4.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.4.qml | 4 +++ .../qmlparser/data/wrongType.5.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.5.qml | 5 +++ .../qmlparser/data/wrongType.6.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.6.qml | 5 +++ .../qmlparser/data/wrongType.7.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.7.qml | 5 +++ .../qmlparser/data/wrongType.8.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.8.qml | 5 +++ .../qmlparser/data/wrongType.9.errors.txt | 1 + .../declarative/qmlparser/data/wrongType.9.qml | 5 +++ .../declarative/qmlparser/duplicateIDs.errors.txt | 1 - tests/auto/declarative/qmlparser/duplicateIDs.qml | 6 ---- .../auto/declarative/qmlparser/dynamicObject.1.qml | 8 ----- .../declarative/qmlparser/dynamicProperties.qml | 13 -------- .../qmlparser/dynamicSignalsAndSlots.qml | 7 ---- tests/auto/declarative/qmlparser/empty.errors.txt | 2 -- tests/auto/declarative/qmlparser/empty.qml | 0 .../qmlparser/failingComponent.errors.txt | 1 - .../declarative/qmlparser/failingComponentTest.qml | 4 --- .../qmlparser/fakeDotProperty.errors.txt | 1 - .../auto/declarative/qmlparser/fakeDotProperty.qml | 4 --- .../declarative/qmlparser/finalOverride.errors.txt | 1 - tests/auto/declarative/qmlparser/finalOverride.qml | 4 --- tests/auto/declarative/qmlparser/idProperty.qml | 8 ----- .../qmlparser/importNamespaceConflict.errors.txt | 1 - .../qmlparser/importNamespaceConflict.qml | 4 --- .../importVersionMissingBuiltIn.errors.txt | 1 - .../qmlparser/importVersionMissingBuiltIn.qml | 7 ---- .../importVersionMissingInstalled.errors.txt | 1 - .../qmlparser/importVersionMissingInstalled.qml | 3 -- .../declarative/qmlparser/inlineQmlComponents.qml | 10 ------ .../declarative/qmlparser/interfaceProperty.qml | 5 --- .../auto/declarative/qmlparser/interfaceQList.qml | 7 ---- .../declarative/qmlparser/interfaceQmlList.qml | 7 ---- .../declarative/qmlparser/invalidID.2.errors.txt | 2 -- tests/auto/declarative/qmlparser/invalidID.2.qml | 5 --- .../declarative/qmlparser/invalidID.3.errors.txt | 1 - tests/auto/declarative/qmlparser/invalidID.3.qml | 5 --- .../declarative/qmlparser/invalidID.4.errors.txt | 1 - tests/auto/declarative/qmlparser/invalidID.4.qml | 6 ---- .../declarative/qmlparser/invalidID.5.errors.txt | 1 - tests/auto/declarative/qmlparser/invalidID.5.qml | 6 ---- .../declarative/qmlparser/invalidID.6.errors.txt | 1 - tests/auto/declarative/qmlparser/invalidID.6.qml | 5 --- .../declarative/qmlparser/invalidID.errors.txt | 1 - tests/auto/declarative/qmlparser/invalidID.qml | 4 --- .../lib/com/nokia/installedtest/InstalledTest.qml | 2 -- .../lib/com/nokia/installedtest/InstalledTest2.qml | 2 -- .../qmlparser/lib/com/nokia/installedtest/qmldir | 3 -- .../qmlparser/listAssignment.1.errors.txt | 1 - .../declarative/qmlparser/listAssignment.1.qml | 4 --- .../qmlparser/listAssignment.2.errors.txt | 2 -- .../declarative/qmlparser/listAssignment.2.qml | 4 --- .../qmlparser/listAssignment.3.errors.txt | 1 - .../declarative/qmlparser/listAssignment.3.qml | 6 ---- .../declarative/qmlparser/listItemDeleteSelf.qml | 38 ---------------------- .../declarative/qmlparser/missingObject.errors.txt | 1 - tests/auto/declarative/qmlparser/missingObject.qml | 1 - .../declarative/qmlparser/missingSignal.errors.txt | 1 - tests/auto/declarative/qmlparser/missingSignal.qml | 5 --- .../qmlparser/nonexistantProperty.1.errors.txt | 1 - .../qmlparser/nonexistantProperty.1.qml | 2 -- .../qmlparser/nonexistantProperty.2.errors.txt | 1 - .../qmlparser/nonexistantProperty.2.qml | 4 --- .../qmlparser/nonexistantProperty.3.errors.txt | 1 - .../qmlparser/nonexistantProperty.3.qml | 4 --- .../qmlparser/nonexistantProperty.4.errors.txt | 1 - .../qmlparser/nonexistantProperty.4.qml | 4 --- .../qmlparser/nonexistantProperty.5.errors.txt | 1 - .../qmlparser/nonexistantProperty.5.qml | 4 --- .../qmlparser/nonexistantProperty.6.errors.txt | 1 - .../qmlparser/nonexistantProperty.6.qml | 4 --- .../qmlparser/nullDotProperty.errors.txt | 1 - .../auto/declarative/qmlparser/nullDotProperty.qml | 4 --- .../declarative/qmlparser/propertyValueSource.qml | 4 --- .../declarative/qmlparser/readOnly.1.errors.txt | 1 - tests/auto/declarative/qmlparser/readOnly.1.qml | 4 --- .../declarative/qmlparser/readOnly.2.errors.txt | 1 - tests/auto/declarative/qmlparser/readOnly.2.qml | 4 --- .../declarative/qmlparser/rootAsQmlComponent.qml | 6 ---- .../auto/declarative/qmlparser/simpleBindings.qml | 18 ---------- .../auto/declarative/qmlparser/simpleContainer.qml | 5 --- tests/auto/declarative/qmlparser/simpleObject.qml | 2 -- tests/auto/declarative/qmlparser/subdir/Test.qml | 2 -- tests/auto/declarative/qmlparser/tst_qmlparser.cpp | 6 ++-- .../qmlparser/unregisteredObject.errors.txt | 1 - .../declarative/qmlparser/unregisteredObject.qml | 2 -- .../qmlparser/unsupportedProperty.errors.txt | 1 - .../declarative/qmlparser/unsupportedProperty.qml | 4 --- tests/auto/declarative/qmlparser/valueTypes.qml | 13 -------- .../declarative/qmlparser/wrongType.1.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.1.qml | 4 --- .../declarative/qmlparser/wrongType.10.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.10.qml | 5 --- .../declarative/qmlparser/wrongType.11.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.11.qml | 5 --- .../declarative/qmlparser/wrongType.12.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.12.qml | 5 --- .../declarative/qmlparser/wrongType.13.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.13.qml | 4 --- .../declarative/qmlparser/wrongType.14.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.14.qml | 5 --- .../declarative/qmlparser/wrongType.2.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.2.qml | 4 --- .../declarative/qmlparser/wrongType.3.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.3.qml | 4 --- .../declarative/qmlparser/wrongType.4.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.4.qml | 4 --- .../declarative/qmlparser/wrongType.5.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.5.qml | 5 --- .../declarative/qmlparser/wrongType.6.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.6.qml | 5 --- .../declarative/qmlparser/wrongType.7.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.7.qml | 5 --- .../declarative/qmlparser/wrongType.8.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.8.qml | 5 --- .../declarative/qmlparser/wrongType.9.errors.txt | 1 - tests/auto/declarative/qmlparser/wrongType.9.qml | 5 --- 255 files changed, 525 insertions(+), 525 deletions(-) delete mode 100644 tests/auto/declarative/qmlparser/Alias.qml delete mode 100644 tests/auto/declarative/qmlparser/MyComponent.qml delete mode 100644 tests/auto/declarative/qmlparser/MyContainerComponent.qml delete mode 100644 tests/auto/declarative/qmlparser/alias.1.qml delete mode 100644 tests/auto/declarative/qmlparser/alias.2.qml delete mode 100644 tests/auto/declarative/qmlparser/alias.3.qml delete mode 100644 tests/auto/declarative/qmlparser/assignBasicTypes.qml delete mode 100644 tests/auto/declarative/qmlparser/assignLiteralSignalProperty.qml delete mode 100644 tests/auto/declarative/qmlparser/assignObjectToSignal.qml delete mode 100644 tests/auto/declarative/qmlparser/assignObjectToVariant.qml delete mode 100644 tests/auto/declarative/qmlparser/assignQmlComponent.qml delete mode 100644 tests/auto/declarative/qmlparser/assignSignal.qml delete mode 100644 tests/auto/declarative/qmlparser/assignTypeExtremes.qml delete mode 100644 tests/auto/declarative/qmlparser/attachedProperties.qml delete mode 100644 tests/auto/declarative/qmlparser/autoComponentCreation.qml delete mode 100644 tests/auto/declarative/qmlparser/cppnamespace.qml delete mode 100644 tests/auto/declarative/qmlparser/customParserIdNotAllowed.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/customParserIdNotAllowed.qml delete mode 100644 tests/auto/declarative/qmlparser/customParserTypes.qml delete mode 100644 tests/auto/declarative/qmlparser/customVariantTypes.qml create mode 100644 tests/auto/declarative/qmlparser/data/Alias.qml create mode 100644 tests/auto/declarative/qmlparser/data/MyComponent.qml create mode 100644 tests/auto/declarative/qmlparser/data/MyContainerComponent.qml create mode 100644 tests/auto/declarative/qmlparser/data/alias.1.qml create mode 100644 tests/auto/declarative/qmlparser/data/alias.2.qml create mode 100644 tests/auto/declarative/qmlparser/data/alias.3.qml create mode 100644 tests/auto/declarative/qmlparser/data/assignBasicTypes.qml create mode 100644 tests/auto/declarative/qmlparser/data/assignLiteralSignalProperty.qml create mode 100644 tests/auto/declarative/qmlparser/data/assignObjectToSignal.qml create mode 100644 tests/auto/declarative/qmlparser/data/assignObjectToVariant.qml create mode 100644 tests/auto/declarative/qmlparser/data/assignQmlComponent.qml create mode 100644 tests/auto/declarative/qmlparser/data/assignSignal.qml create mode 100644 tests/auto/declarative/qmlparser/data/assignTypeExtremes.qml create mode 100644 tests/auto/declarative/qmlparser/data/attachedProperties.qml create mode 100644 tests/auto/declarative/qmlparser/data/autoComponentCreation.qml create mode 100644 tests/auto/declarative/qmlparser/data/cppnamespace.qml create mode 100644 tests/auto/declarative/qmlparser/data/customParserIdNotAllowed.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/customParserIdNotAllowed.qml create mode 100644 tests/auto/declarative/qmlparser/data/customParserTypes.qml create mode 100644 tests/auto/declarative/qmlparser/data/customVariantTypes.qml create mode 100644 tests/auto/declarative/qmlparser/data/duplicateIDs.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/duplicateIDs.qml create mode 100644 tests/auto/declarative/qmlparser/data/dynamicObject.1.qml create mode 100644 tests/auto/declarative/qmlparser/data/dynamicProperties.qml create mode 100644 tests/auto/declarative/qmlparser/data/dynamicSignalsAndSlots.qml create mode 100644 tests/auto/declarative/qmlparser/data/empty.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/empty.qml create mode 100644 tests/auto/declarative/qmlparser/data/failingComponent.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/failingComponentTest.qml create mode 100644 tests/auto/declarative/qmlparser/data/fakeDotProperty.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/fakeDotProperty.qml create mode 100644 tests/auto/declarative/qmlparser/data/finalOverride.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/finalOverride.qml create mode 100644 tests/auto/declarative/qmlparser/data/idProperty.qml create mode 100644 tests/auto/declarative/qmlparser/data/importNamespaceConflict.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/importNamespaceConflict.qml create mode 100644 tests/auto/declarative/qmlparser/data/importVersionMissingBuiltIn.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/importVersionMissingBuiltIn.qml create mode 100644 tests/auto/declarative/qmlparser/data/importVersionMissingInstalled.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/importVersionMissingInstalled.qml create mode 100644 tests/auto/declarative/qmlparser/data/inlineQmlComponents.qml create mode 100644 tests/auto/declarative/qmlparser/data/interfaceProperty.qml create mode 100644 tests/auto/declarative/qmlparser/data/interfaceQList.qml create mode 100644 tests/auto/declarative/qmlparser/data/interfaceQmlList.qml create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.2.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.2.qml create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.3.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.3.qml create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.4.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.4.qml create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.5.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.5.qml create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.6.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.6.qml create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/invalidID.qml create mode 100644 tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/InstalledTest.qml create mode 100644 tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/InstalledTest2.qml create mode 100644 tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/qmldir create mode 100644 tests/auto/declarative/qmlparser/data/listAssignment.1.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/listAssignment.1.qml create mode 100644 tests/auto/declarative/qmlparser/data/listAssignment.2.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/listAssignment.2.qml create mode 100644 tests/auto/declarative/qmlparser/data/listAssignment.3.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/listAssignment.3.qml create mode 100644 tests/auto/declarative/qmlparser/data/listItemDeleteSelf.qml create mode 100644 tests/auto/declarative/qmlparser/data/missingObject.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/missingObject.qml create mode 100644 tests/auto/declarative/qmlparser/data/missingSignal.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/missingSignal.qml create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.1.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.1.qml create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.2.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.2.qml create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.3.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.3.qml create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.4.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.4.qml create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.5.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.5.qml create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.6.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/nonexistantProperty.6.qml create mode 100644 tests/auto/declarative/qmlparser/data/nullDotProperty.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/nullDotProperty.qml create mode 100644 tests/auto/declarative/qmlparser/data/propertyValueSource.qml create mode 100644 tests/auto/declarative/qmlparser/data/readOnly.1.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/readOnly.1.qml create mode 100644 tests/auto/declarative/qmlparser/data/readOnly.2.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/readOnly.2.qml create mode 100644 tests/auto/declarative/qmlparser/data/rootAsQmlComponent.qml create mode 100644 tests/auto/declarative/qmlparser/data/simpleBindings.qml create mode 100644 tests/auto/declarative/qmlparser/data/simpleContainer.qml create mode 100644 tests/auto/declarative/qmlparser/data/simpleObject.qml create mode 100644 tests/auto/declarative/qmlparser/data/subdir/Test.qml create mode 100644 tests/auto/declarative/qmlparser/data/unregisteredObject.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/unregisteredObject.qml create mode 100644 tests/auto/declarative/qmlparser/data/unsupportedProperty.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/unsupportedProperty.qml create mode 100644 tests/auto/declarative/qmlparser/data/valueTypes.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.1.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.1.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.10.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.10.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.11.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.11.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.12.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.12.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.13.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.13.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.14.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.14.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.2.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.2.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.3.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.3.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.4.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.4.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.5.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.5.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.6.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.6.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.7.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.7.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.8.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.8.qml create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.9.errors.txt create mode 100644 tests/auto/declarative/qmlparser/data/wrongType.9.qml delete mode 100644 tests/auto/declarative/qmlparser/duplicateIDs.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/duplicateIDs.qml delete mode 100644 tests/auto/declarative/qmlparser/dynamicObject.1.qml delete mode 100644 tests/auto/declarative/qmlparser/dynamicProperties.qml delete mode 100644 tests/auto/declarative/qmlparser/dynamicSignalsAndSlots.qml delete mode 100644 tests/auto/declarative/qmlparser/empty.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/empty.qml delete mode 100644 tests/auto/declarative/qmlparser/failingComponent.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/failingComponentTest.qml delete mode 100644 tests/auto/declarative/qmlparser/fakeDotProperty.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/fakeDotProperty.qml delete mode 100644 tests/auto/declarative/qmlparser/finalOverride.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/finalOverride.qml delete mode 100644 tests/auto/declarative/qmlparser/idProperty.qml delete mode 100644 tests/auto/declarative/qmlparser/importNamespaceConflict.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/importNamespaceConflict.qml delete mode 100644 tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.qml delete mode 100644 tests/auto/declarative/qmlparser/importVersionMissingInstalled.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/importVersionMissingInstalled.qml delete mode 100644 tests/auto/declarative/qmlparser/inlineQmlComponents.qml delete mode 100644 tests/auto/declarative/qmlparser/interfaceProperty.qml delete mode 100644 tests/auto/declarative/qmlparser/interfaceQList.qml delete mode 100644 tests/auto/declarative/qmlparser/interfaceQmlList.qml delete mode 100644 tests/auto/declarative/qmlparser/invalidID.2.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/invalidID.2.qml delete mode 100644 tests/auto/declarative/qmlparser/invalidID.3.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/invalidID.3.qml delete mode 100644 tests/auto/declarative/qmlparser/invalidID.4.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/invalidID.4.qml delete mode 100644 tests/auto/declarative/qmlparser/invalidID.5.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/invalidID.5.qml delete mode 100644 tests/auto/declarative/qmlparser/invalidID.6.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/invalidID.6.qml delete mode 100644 tests/auto/declarative/qmlparser/invalidID.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/invalidID.qml delete mode 100644 tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/InstalledTest.qml delete mode 100644 tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/InstalledTest2.qml delete mode 100644 tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/qmldir delete mode 100644 tests/auto/declarative/qmlparser/listAssignment.1.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/listAssignment.1.qml delete mode 100644 tests/auto/declarative/qmlparser/listAssignment.2.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/listAssignment.2.qml delete mode 100644 tests/auto/declarative/qmlparser/listAssignment.3.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/listAssignment.3.qml delete mode 100644 tests/auto/declarative/qmlparser/listItemDeleteSelf.qml delete mode 100644 tests/auto/declarative/qmlparser/missingObject.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/missingObject.qml delete mode 100644 tests/auto/declarative/qmlparser/missingSignal.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/missingSignal.qml delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.1.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.1.qml delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.2.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.2.qml delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.3.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.3.qml delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.4.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.4.qml delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.5.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.5.qml delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.6.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/nonexistantProperty.6.qml delete mode 100644 tests/auto/declarative/qmlparser/nullDotProperty.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/nullDotProperty.qml delete mode 100644 tests/auto/declarative/qmlparser/propertyValueSource.qml delete mode 100644 tests/auto/declarative/qmlparser/readOnly.1.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/readOnly.1.qml delete mode 100644 tests/auto/declarative/qmlparser/readOnly.2.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/readOnly.2.qml delete mode 100644 tests/auto/declarative/qmlparser/rootAsQmlComponent.qml delete mode 100644 tests/auto/declarative/qmlparser/simpleBindings.qml delete mode 100644 tests/auto/declarative/qmlparser/simpleContainer.qml delete mode 100644 tests/auto/declarative/qmlparser/simpleObject.qml delete mode 100644 tests/auto/declarative/qmlparser/subdir/Test.qml delete mode 100644 tests/auto/declarative/qmlparser/unregisteredObject.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/unregisteredObject.qml delete mode 100644 tests/auto/declarative/qmlparser/unsupportedProperty.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/unsupportedProperty.qml delete mode 100644 tests/auto/declarative/qmlparser/valueTypes.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.1.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.1.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.10.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.10.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.11.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.11.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.12.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.12.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.13.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.13.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.14.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.14.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.2.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.2.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.3.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.3.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.4.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.4.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.5.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.5.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.6.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.6.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.7.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.7.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.8.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.8.qml delete mode 100644 tests/auto/declarative/qmlparser/wrongType.9.errors.txt delete mode 100644 tests/auto/declarative/qmlparser/wrongType.9.qml diff --git a/tests/auto/declarative/qmlparser/Alias.qml b/tests/auto/declarative/qmlparser/Alias.qml deleted file mode 100644 index 8264e0d..0000000 --- a/tests/auto/declarative/qmlparser/Alias.qml +++ /dev/null @@ -1,8 +0,0 @@ -import Qt 4.6 - -Object { - id: Root - property int value: 1892 - property alias aliasValue: Root.value -} - diff --git a/tests/auto/declarative/qmlparser/MyComponent.qml b/tests/auto/declarative/qmlparser/MyComponent.qml deleted file mode 100644 index 1a23277..0000000 --- a/tests/auto/declarative/qmlparser/MyComponent.qml +++ /dev/null @@ -1,6 +0,0 @@ -import Test 1.0 - -MyQmlObject { - property real x; - property real y; -} diff --git a/tests/auto/declarative/qmlparser/MyContainerComponent.qml b/tests/auto/declarative/qmlparser/MyContainerComponent.qml deleted file mode 100644 index 61f54c5..0000000 --- a/tests/auto/declarative/qmlparser/MyContainerComponent.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 - -MyContainer { - property int x -} diff --git a/tests/auto/declarative/qmlparser/alias.1.qml b/tests/auto/declarative/qmlparser/alias.1.qml deleted file mode 100644 index 492d99a..0000000 --- a/tests/auto/declarative/qmlparser/alias.1.qml +++ /dev/null @@ -1,8 +0,0 @@ -import Test 1.0 -import Qt 4.6 - -Object { - id: Root - property int value: 10 - property alias valueAlias: Root.value -} diff --git a/tests/auto/declarative/qmlparser/alias.2.qml b/tests/auto/declarative/qmlparser/alias.2.qml deleted file mode 100644 index aa4d103..0000000 --- a/tests/auto/declarative/qmlparser/alias.2.qml +++ /dev/null @@ -1,8 +0,0 @@ -import Test 1.0 - -MyQmlObject { - id: Root - property alias aliasObject: Root.qmlobjectProperty - - qmlobjectProperty: MyQmlObject { value : 10 } -} diff --git a/tests/auto/declarative/qmlparser/alias.3.qml b/tests/auto/declarative/qmlparser/alias.3.qml deleted file mode 100644 index e25fbae..0000000 --- a/tests/auto/declarative/qmlparser/alias.3.qml +++ /dev/null @@ -1,10 +0,0 @@ -import Qt 4.6 - -Object { - property var other - other: Alias { id: MyAliasObject } - - property alias value: MyAliasObject.aliasValue - property alias value2: MyAliasObject.value -} - diff --git a/tests/auto/declarative/qmlparser/assignBasicTypes.qml b/tests/auto/declarative/qmlparser/assignBasicTypes.qml deleted file mode 100644 index cef9f8d..0000000 --- a/tests/auto/declarative/qmlparser/assignBasicTypes.qml +++ /dev/null @@ -1,26 +0,0 @@ -import Test 1.0 -MyTypeObject { - flagProperty: "FlagVal1 | FlagVal3" - enumProperty: "EnumVal2" - stringProperty: "Hello World!" - uintProperty: 10 - intProperty: -19 - realProperty: 23.2 - doubleProperty: -19.7 - colorProperty: "red" - dateProperty: "1982-11-25" - timeProperty: "11:11:31" - timeProperty: "11:11:32" - timeProperty: "11:11:32" - dateTimeProperty: "2009-05-12T13:22:01" - pointProperty: "99,13" - pointFProperty: "-10.1,12.3" - sizeProperty: "99x13" - sizeFProperty: "0.1x0.2" - rectProperty: "9,7,100x200" - rectFProperty: "1000.1,-10.9,400x90.99" - boolProperty: true - variantProperty: "Hello World!" - - objectProperty: MyTypeObject { intProperty: 8 } -} diff --git a/tests/auto/declarative/qmlparser/assignLiteralSignalProperty.qml b/tests/auto/declarative/qmlparser/assignLiteralSignalProperty.qml deleted file mode 100644 index 399fcea..0000000 --- a/tests/auto/declarative/qmlparser/assignLiteralSignalProperty.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - onLiteralSignal: 10 -} diff --git a/tests/auto/declarative/qmlparser/assignObjectToSignal.qml b/tests/auto/declarative/qmlparser/assignObjectToSignal.qml deleted file mode 100644 index 789cc66..0000000 --- a/tests/auto/declarative/qmlparser/assignObjectToSignal.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - onBasicSignal: MyQmlObject {} -} diff --git a/tests/auto/declarative/qmlparser/assignObjectToVariant.qml b/tests/auto/declarative/qmlparser/assignObjectToVariant.qml deleted file mode 100644 index 28c68c4..0000000 --- a/tests/auto/declarative/qmlparser/assignObjectToVariant.qml +++ /dev/null @@ -1,6 +0,0 @@ -import Test 1.0 -import Qt 4.6 -Object { - property var a; - a: MyQmlObject {} -} diff --git a/tests/auto/declarative/qmlparser/assignQmlComponent.qml b/tests/auto/declarative/qmlparser/assignQmlComponent.qml deleted file mode 100644 index 20bdc55..0000000 --- a/tests/auto/declarative/qmlparser/assignQmlComponent.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyContainer { - MyComponent { x: 10; y: 11; } -} diff --git a/tests/auto/declarative/qmlparser/assignSignal.qml b/tests/auto/declarative/qmlparser/assignSignal.qml deleted file mode 100644 index 3abc04d..0000000 --- a/tests/auto/declarative/qmlparser/assignSignal.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyQmlObject { - onBasicSignal: basicSlot() - onBasicParameterizedSignal: basicSlot(parameter) -} diff --git a/tests/auto/declarative/qmlparser/assignTypeExtremes.qml b/tests/auto/declarative/qmlparser/assignTypeExtremes.qml deleted file mode 100644 index 60ede52..0000000 --- a/tests/auto/declarative/qmlparser/assignTypeExtremes.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyTypeObject { - uintProperty: 4000000000 - intProperty: -2000000000 -} diff --git a/tests/auto/declarative/qmlparser/attachedProperties.qml b/tests/auto/declarative/qmlparser/attachedProperties.qml deleted file mode 100644 index 8343754..0000000 --- a/tests/auto/declarative/qmlparser/attachedProperties.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -import Qt 4.6 -Object { - MyQmlObject.value: 10 -} diff --git a/tests/auto/declarative/qmlparser/autoComponentCreation.qml b/tests/auto/declarative/qmlparser/autoComponentCreation.qml deleted file mode 100644 index 5d00144..0000000 --- a/tests/auto/declarative/qmlparser/autoComponentCreation.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyTypeObject { - componentProperty : MyTypeObject { realProperty: 9 } -} diff --git a/tests/auto/declarative/qmlparser/cppnamespace.qml b/tests/auto/declarative/qmlparser/cppnamespace.qml deleted file mode 100644 index e1daf3b..0000000 --- a/tests/auto/declarative/qmlparser/cppnamespace.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 - -MyNamespacedType { -} diff --git a/tests/auto/declarative/qmlparser/customParserIdNotAllowed.errors.txt b/tests/auto/declarative/qmlparser/customParserIdNotAllowed.errors.txt deleted file mode 100644 index d28c0bd..0000000 --- a/tests/auto/declarative/qmlparser/customParserIdNotAllowed.errors.txt +++ /dev/null @@ -1 +0,0 @@ -4:19:Cannot use reserved "id" property in ListModel diff --git a/tests/auto/declarative/qmlparser/customParserIdNotAllowed.qml b/tests/auto/declarative/qmlparser/customParserIdNotAllowed.qml deleted file mode 100644 index e607768..0000000 --- a/tests/auto/declarative/qmlparser/customParserIdNotAllowed.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Qt 4.6 -ListModel { - ListElement { a: 10 } - ListElement { id: Foo; a: 12 } -} diff --git a/tests/auto/declarative/qmlparser/customParserTypes.qml b/tests/auto/declarative/qmlparser/customParserTypes.qml deleted file mode 100644 index cf2f272..0000000 --- a/tests/auto/declarative/qmlparser/customParserTypes.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Qt 4.6 -ListModel { - ListElement { a: 10 } - ListElement { a: 12 } -} diff --git a/tests/auto/declarative/qmlparser/customVariantTypes.qml b/tests/auto/declarative/qmlparser/customVariantTypes.qml deleted file mode 100644 index 0263ed2..0000000 --- a/tests/auto/declarative/qmlparser/customVariantTypes.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - customType: "10" -} diff --git a/tests/auto/declarative/qmlparser/data/Alias.qml b/tests/auto/declarative/qmlparser/data/Alias.qml new file mode 100644 index 0000000..8264e0d --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/Alias.qml @@ -0,0 +1,8 @@ +import Qt 4.6 + +Object { + id: Root + property int value: 1892 + property alias aliasValue: Root.value +} + diff --git a/tests/auto/declarative/qmlparser/data/MyComponent.qml b/tests/auto/declarative/qmlparser/data/MyComponent.qml new file mode 100644 index 0000000..1a23277 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/MyComponent.qml @@ -0,0 +1,6 @@ +import Test 1.0 + +MyQmlObject { + property real x; + property real y; +} diff --git a/tests/auto/declarative/qmlparser/data/MyContainerComponent.qml b/tests/auto/declarative/qmlparser/data/MyContainerComponent.qml new file mode 100644 index 0000000..61f54c5 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/MyContainerComponent.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MyContainer { + property int x +} diff --git a/tests/auto/declarative/qmlparser/data/alias.1.qml b/tests/auto/declarative/qmlparser/data/alias.1.qml new file mode 100644 index 0000000..492d99a --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/alias.1.qml @@ -0,0 +1,8 @@ +import Test 1.0 +import Qt 4.6 + +Object { + id: Root + property int value: 10 + property alias valueAlias: Root.value +} diff --git a/tests/auto/declarative/qmlparser/data/alias.2.qml b/tests/auto/declarative/qmlparser/data/alias.2.qml new file mode 100644 index 0000000..aa4d103 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/alias.2.qml @@ -0,0 +1,8 @@ +import Test 1.0 + +MyQmlObject { + id: Root + property alias aliasObject: Root.qmlobjectProperty + + qmlobjectProperty: MyQmlObject { value : 10 } +} diff --git a/tests/auto/declarative/qmlparser/data/alias.3.qml b/tests/auto/declarative/qmlparser/data/alias.3.qml new file mode 100644 index 0000000..e25fbae --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/alias.3.qml @@ -0,0 +1,10 @@ +import Qt 4.6 + +Object { + property var other + other: Alias { id: MyAliasObject } + + property alias value: MyAliasObject.aliasValue + property alias value2: MyAliasObject.value +} + diff --git a/tests/auto/declarative/qmlparser/data/assignBasicTypes.qml b/tests/auto/declarative/qmlparser/data/assignBasicTypes.qml new file mode 100644 index 0000000..cef9f8d --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/assignBasicTypes.qml @@ -0,0 +1,26 @@ +import Test 1.0 +MyTypeObject { + flagProperty: "FlagVal1 | FlagVal3" + enumProperty: "EnumVal2" + stringProperty: "Hello World!" + uintProperty: 10 + intProperty: -19 + realProperty: 23.2 + doubleProperty: -19.7 + colorProperty: "red" + dateProperty: "1982-11-25" + timeProperty: "11:11:31" + timeProperty: "11:11:32" + timeProperty: "11:11:32" + dateTimeProperty: "2009-05-12T13:22:01" + pointProperty: "99,13" + pointFProperty: "-10.1,12.3" + sizeProperty: "99x13" + sizeFProperty: "0.1x0.2" + rectProperty: "9,7,100x200" + rectFProperty: "1000.1,-10.9,400x90.99" + boolProperty: true + variantProperty: "Hello World!" + + objectProperty: MyTypeObject { intProperty: 8 } +} diff --git a/tests/auto/declarative/qmlparser/data/assignLiteralSignalProperty.qml b/tests/auto/declarative/qmlparser/data/assignLiteralSignalProperty.qml new file mode 100644 index 0000000..399fcea --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/assignLiteralSignalProperty.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + onLiteralSignal: 10 +} diff --git a/tests/auto/declarative/qmlparser/data/assignObjectToSignal.qml b/tests/auto/declarative/qmlparser/data/assignObjectToSignal.qml new file mode 100644 index 0000000..789cc66 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/assignObjectToSignal.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + onBasicSignal: MyQmlObject {} +} diff --git a/tests/auto/declarative/qmlparser/data/assignObjectToVariant.qml b/tests/auto/declarative/qmlparser/data/assignObjectToVariant.qml new file mode 100644 index 0000000..28c68c4 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/assignObjectToVariant.qml @@ -0,0 +1,6 @@ +import Test 1.0 +import Qt 4.6 +Object { + property var a; + a: MyQmlObject {} +} diff --git a/tests/auto/declarative/qmlparser/data/assignQmlComponent.qml b/tests/auto/declarative/qmlparser/data/assignQmlComponent.qml new file mode 100644 index 0000000..20bdc55 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/assignQmlComponent.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyContainer { + MyComponent { x: 10; y: 11; } +} diff --git a/tests/auto/declarative/qmlparser/data/assignSignal.qml b/tests/auto/declarative/qmlparser/data/assignSignal.qml new file mode 100644 index 0000000..3abc04d --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/assignSignal.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyQmlObject { + onBasicSignal: basicSlot() + onBasicParameterizedSignal: basicSlot(parameter) +} diff --git a/tests/auto/declarative/qmlparser/data/assignTypeExtremes.qml b/tests/auto/declarative/qmlparser/data/assignTypeExtremes.qml new file mode 100644 index 0000000..60ede52 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/assignTypeExtremes.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + uintProperty: 4000000000 + intProperty: -2000000000 +} diff --git a/tests/auto/declarative/qmlparser/data/attachedProperties.qml b/tests/auto/declarative/qmlparser/data/attachedProperties.qml new file mode 100644 index 0000000..8343754 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/attachedProperties.qml @@ -0,0 +1,5 @@ +import Test 1.0 +import Qt 4.6 +Object { + MyQmlObject.value: 10 +} diff --git a/tests/auto/declarative/qmlparser/data/autoComponentCreation.qml b/tests/auto/declarative/qmlparser/data/autoComponentCreation.qml new file mode 100644 index 0000000..5d00144 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/autoComponentCreation.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyTypeObject { + componentProperty : MyTypeObject { realProperty: 9 } +} diff --git a/tests/auto/declarative/qmlparser/data/cppnamespace.qml b/tests/auto/declarative/qmlparser/data/cppnamespace.qml new file mode 100644 index 0000000..e1daf3b --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/cppnamespace.qml @@ -0,0 +1,4 @@ +import Test 1.0 + +MyNamespacedType { +} diff --git a/tests/auto/declarative/qmlparser/data/customParserIdNotAllowed.errors.txt b/tests/auto/declarative/qmlparser/data/customParserIdNotAllowed.errors.txt new file mode 100644 index 0000000..d28c0bd --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/customParserIdNotAllowed.errors.txt @@ -0,0 +1 @@ +4:19:Cannot use reserved "id" property in ListModel diff --git a/tests/auto/declarative/qmlparser/data/customParserIdNotAllowed.qml b/tests/auto/declarative/qmlparser/data/customParserIdNotAllowed.qml new file mode 100644 index 0000000..e607768 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/customParserIdNotAllowed.qml @@ -0,0 +1,5 @@ +import Qt 4.6 +ListModel { + ListElement { a: 10 } + ListElement { id: Foo; a: 12 } +} diff --git a/tests/auto/declarative/qmlparser/data/customParserTypes.qml b/tests/auto/declarative/qmlparser/data/customParserTypes.qml new file mode 100644 index 0000000..cf2f272 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/customParserTypes.qml @@ -0,0 +1,5 @@ +import Qt 4.6 +ListModel { + ListElement { a: 10 } + ListElement { a: 12 } +} diff --git a/tests/auto/declarative/qmlparser/data/customVariantTypes.qml b/tests/auto/declarative/qmlparser/data/customVariantTypes.qml new file mode 100644 index 0000000..0263ed2 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/customVariantTypes.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + customType: "10" +} diff --git a/tests/auto/declarative/qmlparser/data/duplicateIDs.errors.txt b/tests/auto/declarative/qmlparser/data/duplicateIDs.errors.txt new file mode 100644 index 0000000..66241cf --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/duplicateIDs.errors.txt @@ -0,0 +1 @@ +4:19:id is not unique diff --git a/tests/auto/declarative/qmlparser/data/duplicateIDs.qml b/tests/auto/declarative/qmlparser/data/duplicateIDs.qml new file mode 100644 index 0000000..9605b5b --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/duplicateIDs.qml @@ -0,0 +1,6 @@ +import Test 1.0 +MyContainer { + MyQmlObject { id: MyID } + MyQmlObject { id: MyID } +} + diff --git a/tests/auto/declarative/qmlparser/data/dynamicObject.1.qml b/tests/auto/declarative/qmlparser/data/dynamicObject.1.qml new file mode 100644 index 0000000..85d1052 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/dynamicObject.1.qml @@ -0,0 +1,8 @@ +import Test 1.0 +import Qt 4.6 +PropertyChanges { + propa: a + 10 + propb: Math.min(a, 10) + propc: MyPropertyValueSource {} + onPropA: a +} diff --git a/tests/auto/declarative/qmlparser/data/dynamicProperties.qml b/tests/auto/declarative/qmlparser/data/dynamicProperties.qml new file mode 100644 index 0000000..f93e446 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/dynamicProperties.qml @@ -0,0 +1,13 @@ +import Test 1.0 +import Qt 4.6 +Object { + default property int intProperty : 10 + property bool boolProperty: false + property double doubleProperty: -10.1 + property real realProperty: -19.9 + property string stringProperty: "Hello World!" + property color colorProperty: "red" + property date dateProperty: "1945-09-02" + property var varProperty: "Hello World!" + property variant variantProperty: 12 +} diff --git a/tests/auto/declarative/qmlparser/data/dynamicSignalsAndSlots.qml b/tests/auto/declarative/qmlparser/data/dynamicSignalsAndSlots.qml new file mode 100644 index 0000000..b0ca970 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/dynamicSignalsAndSlots.qml @@ -0,0 +1,7 @@ +import Qt 4.6 +Object { + signal signal1 + function slot1() {} + signal signal2 + function slot2() {} +} diff --git a/tests/auto/declarative/qmlparser/data/empty.errors.txt b/tests/auto/declarative/qmlparser/data/empty.errors.txt new file mode 100644 index 0000000..d416e76 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/empty.errors.txt @@ -0,0 +1,2 @@ +0:0:Expected token `numeric literal' +0:0:Expected a qualified name id diff --git a/tests/auto/declarative/qmlparser/data/empty.qml b/tests/auto/declarative/qmlparser/data/empty.qml new file mode 100644 index 0000000..e69de29 diff --git a/tests/auto/declarative/qmlparser/data/failingComponent.errors.txt b/tests/auto/declarative/qmlparser/data/failingComponent.errors.txt new file mode 100644 index 0000000..0cf0ef3 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/failingComponent.errors.txt @@ -0,0 +1 @@ +3:5:Type FailingComponent unavailable diff --git a/tests/auto/declarative/qmlparser/data/failingComponentTest.qml b/tests/auto/declarative/qmlparser/data/failingComponentTest.qml new file mode 100644 index 0000000..74a6acf --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/failingComponentTest.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyContainer { + FailingComponent {} +} diff --git a/tests/auto/declarative/qmlparser/data/fakeDotProperty.errors.txt b/tests/auto/declarative/qmlparser/data/fakeDotProperty.errors.txt new file mode 100644 index 0000000..e56ad3a --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/fakeDotProperty.errors.txt @@ -0,0 +1 @@ +3:5:Invalid property access diff --git a/tests/auto/declarative/qmlparser/data/fakeDotProperty.qml b/tests/auto/declarative/qmlparser/data/fakeDotProperty.qml new file mode 100644 index 0000000..d971eee --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/fakeDotProperty.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + value.something: "hello" +} diff --git a/tests/auto/declarative/qmlparser/data/finalOverride.errors.txt b/tests/auto/declarative/qmlparser/data/finalOverride.errors.txt new file mode 100644 index 0000000..49e06cb --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/finalOverride.errors.txt @@ -0,0 +1 @@ +3:5:Cannot override FINAL property diff --git a/tests/auto/declarative/qmlparser/data/finalOverride.qml b/tests/auto/declarative/qmlparser/data/finalOverride.qml new file mode 100644 index 0000000..a84393a --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/finalOverride.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + property int value: 10 +} diff --git a/tests/auto/declarative/qmlparser/data/idProperty.qml b/tests/auto/declarative/qmlparser/data/idProperty.qml new file mode 100644 index 0000000..a413c0b --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/idProperty.qml @@ -0,0 +1,8 @@ +import Test 1.0 +MyContainer { + property var object : MyObjectId + + MyTypeObject { + id: "MyObjectId" + } +} diff --git a/tests/auto/declarative/qmlparser/data/importNamespaceConflict.errors.txt b/tests/auto/declarative/qmlparser/data/importNamespaceConflict.errors.txt new file mode 100644 index 0000000..231998d --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/importNamespaceConflict.errors.txt @@ -0,0 +1 @@ +4:1:Namespace Rectangle cannot be used as a type diff --git a/tests/auto/declarative/qmlparser/data/importNamespaceConflict.qml b/tests/auto/declarative/qmlparser/data/importNamespaceConflict.qml new file mode 100644 index 0000000..cd112af --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/importNamespaceConflict.qml @@ -0,0 +1,4 @@ +import Test 1.0 as Rectangle +import Qt 4.6 + +Rectangle { } diff --git a/tests/auto/declarative/qmlparser/data/importVersionMissingBuiltIn.errors.txt b/tests/auto/declarative/qmlparser/data/importVersionMissingBuiltIn.errors.txt new file mode 100644 index 0000000..2235cbc --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/importVersionMissingBuiltIn.errors.txt @@ -0,0 +1 @@ +SHOULD GIVE AN ERROR ABOUT MISSING VERSION diff --git a/tests/auto/declarative/qmlparser/data/importVersionMissingBuiltIn.qml b/tests/auto/declarative/qmlparser/data/importVersionMissingBuiltIn.qml new file mode 100644 index 0000000..23ed566 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/importVersionMissingBuiltIn.qml @@ -0,0 +1,7 @@ +import Test as S + +S.MyQmlObject { + property real x; + property real y; +} + diff --git a/tests/auto/declarative/qmlparser/data/importVersionMissingInstalled.errors.txt b/tests/auto/declarative/qmlparser/data/importVersionMissingInstalled.errors.txt new file mode 100644 index 0000000..2235cbc --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/importVersionMissingInstalled.errors.txt @@ -0,0 +1 @@ +SHOULD GIVE AN ERROR ABOUT MISSING VERSION diff --git a/tests/auto/declarative/qmlparser/data/importVersionMissingInstalled.qml b/tests/auto/declarative/qmlparser/data/importVersionMissingInstalled.qml new file mode 100644 index 0000000..97ec222 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/importVersionMissingInstalled.qml @@ -0,0 +1,3 @@ +import com.nokia.installedtest as T + +T.InstalledTest {} diff --git a/tests/auto/declarative/qmlparser/data/inlineQmlComponents.qml b/tests/auto/declarative/qmlparser/data/inlineQmlComponents.qml new file mode 100644 index 0000000..79ceda6 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/inlineQmlComponents.qml @@ -0,0 +1,10 @@ +import Test 1.0 +import Qt 4.6 +MyContainer { + Component { + id: MyComponent + MyQmlObject { + value: 11 + } + } +} diff --git a/tests/auto/declarative/qmlparser/data/interfaceProperty.qml b/tests/auto/declarative/qmlparser/data/interfaceProperty.qml new file mode 100644 index 0000000..70879ff --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/interfaceProperty.qml @@ -0,0 +1,5 @@ +import Test 1.0 +import Qt 4.6 +MyQmlObject { + interfaceProperty: MyQmlObject {} +} diff --git a/tests/auto/declarative/qmlparser/data/interfaceQList.qml b/tests/auto/declarative/qmlparser/data/interfaceQList.qml new file mode 100644 index 0000000..c87dfae --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/interfaceQList.qml @@ -0,0 +1,7 @@ +import Test 1.0 +MyContainer { + qlistInterfaces: [ + MyQmlObject {}, + MyQmlObject {} + ] +} diff --git a/tests/auto/declarative/qmlparser/data/interfaceQmlList.qml b/tests/auto/declarative/qmlparser/data/interfaceQmlList.qml new file mode 100644 index 0000000..8392bea --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/interfaceQmlList.qml @@ -0,0 +1,7 @@ +import Test 1.0 +MyContainer { + qmllistInterfaces: [ + MyQmlObject {}, + MyQmlObject {} + ] +} diff --git a/tests/auto/declarative/qmlparser/data/invalidID.2.errors.txt b/tests/auto/declarative/qmlparser/data/invalidID.2.errors.txt new file mode 100644 index 0000000..56e3eeb --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.2.errors.txt @@ -0,0 +1,2 @@ +3:5:"" is not a valid object id + diff --git a/tests/auto/declarative/qmlparser/data/invalidID.2.qml b/tests/auto/declarative/qmlparser/data/invalidID.2.qml new file mode 100644 index 0000000..4fb3b29 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.2.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyQmlObject { + id: "" +} + diff --git a/tests/auto/declarative/qmlparser/data/invalidID.3.errors.txt b/tests/auto/declarative/qmlparser/data/invalidID.3.errors.txt new file mode 100644 index 0000000..bb811cf --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.3.errors.txt @@ -0,0 +1 @@ +3:5:Invalid use of id property diff --git a/tests/auto/declarative/qmlparser/data/invalidID.3.qml b/tests/auto/declarative/qmlparser/data/invalidID.3.qml new file mode 100644 index 0000000..6684172 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.3.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyQmlObject { + id.other: 10 +} + diff --git a/tests/auto/declarative/qmlparser/data/invalidID.4.errors.txt b/tests/auto/declarative/qmlparser/data/invalidID.4.errors.txt new file mode 100644 index 0000000..cfe8756 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.4.errors.txt @@ -0,0 +1 @@ +4:5:Invalid use of id property diff --git a/tests/auto/declarative/qmlparser/data/invalidID.4.qml b/tests/auto/declarative/qmlparser/data/invalidID.4.qml new file mode 100644 index 0000000..1f15fce --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.4.qml @@ -0,0 +1,6 @@ +import Test 1.0 +MyQmlObject { + id: Hello + id: World +} + diff --git a/tests/auto/declarative/qmlparser/data/invalidID.5.errors.txt b/tests/auto/declarative/qmlparser/data/invalidID.5.errors.txt new file mode 100644 index 0000000..b0a63a0 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.5.errors.txt @@ -0,0 +1 @@ +4:9:id conflicts with namespace prefix diff --git a/tests/auto/declarative/qmlparser/data/invalidID.5.qml b/tests/auto/declarative/qmlparser/data/invalidID.5.qml new file mode 100644 index 0000000..0545b0d --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.5.qml @@ -0,0 +1,6 @@ +import Test 1.0 +import Test 1.0 as Hello +MyQmlObject { + id: Hello +} + diff --git a/tests/auto/declarative/qmlparser/data/invalidID.6.errors.txt b/tests/auto/declarative/qmlparser/data/invalidID.6.errors.txt new file mode 100644 index 0000000..861e3d7 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.6.errors.txt @@ -0,0 +1 @@ +3:9:id conflicts with type name diff --git a/tests/auto/declarative/qmlparser/data/invalidID.6.qml b/tests/auto/declarative/qmlparser/data/invalidID.6.qml new file mode 100644 index 0000000..ea34007 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.6.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyQmlObject { + id: MyQmlObject +} + diff --git a/tests/auto/declarative/qmlparser/data/invalidID.errors.txt b/tests/auto/declarative/qmlparser/data/invalidID.errors.txt new file mode 100644 index 0000000..1ca678c --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.errors.txt @@ -0,0 +1 @@ +3:5:"1" is not a valid object id diff --git a/tests/auto/declarative/qmlparser/data/invalidID.qml b/tests/auto/declarative/qmlparser/data/invalidID.qml new file mode 100644 index 0000000..04db3eb --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/invalidID.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + id: 1 +} diff --git a/tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/InstalledTest.qml b/tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/InstalledTest.qml new file mode 100644 index 0000000..d8a22a8 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/InstalledTest.qml @@ -0,0 +1,2 @@ +import Qt 4.6 +Rectangle {} diff --git a/tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/InstalledTest2.qml b/tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/InstalledTest2.qml new file mode 100644 index 0000000..a0706ad --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/InstalledTest2.qml @@ -0,0 +1,2 @@ +import Qt 4.6 +Text {} diff --git a/tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/qmldir b/tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/qmldir new file mode 100644 index 0000000..ba0b42a --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/lib/com/nokia/installedtest/qmldir @@ -0,0 +1,3 @@ +InstalledTest 1.0-3 InstalledTest.qml +InstalledTest 1.4 InstalledTest2.qml +Rectangle 1.5 InstalledTest2.qml diff --git a/tests/auto/declarative/qmlparser/data/listAssignment.1.errors.txt b/tests/auto/declarative/qmlparser/data/listAssignment.1.errors.txt new file mode 100644 index 0000000..d68d487 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/listAssignment.1.errors.txt @@ -0,0 +1 @@ +3:24:Cannot assign primitives to lists diff --git a/tests/auto/declarative/qmlparser/data/listAssignment.1.qml b/tests/auto/declarative/qmlparser/data/listAssignment.1.qml new file mode 100644 index 0000000..4240425 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/listAssignment.1.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyContainer { + qmllistInterfaces: 1 +} diff --git a/tests/auto/declarative/qmlparser/data/listAssignment.2.errors.txt b/tests/auto/declarative/qmlparser/data/listAssignment.2.errors.txt new file mode 100644 index 0000000..8b40aa3 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/listAssignment.2.errors.txt @@ -0,0 +1,2 @@ +3:15:Cannot assign primitives to lists + diff --git a/tests/auto/declarative/qmlparser/data/listAssignment.2.qml b/tests/auto/declarative/qmlparser/data/listAssignment.2.qml new file mode 100644 index 0000000..e3baadb --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/listAssignment.2.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyContainer { + children: 2 +} diff --git a/tests/auto/declarative/qmlparser/data/listAssignment.3.errors.txt b/tests/auto/declarative/qmlparser/data/listAssignment.3.errors.txt new file mode 100644 index 0000000..8c7b7e9 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/listAssignment.3.errors.txt @@ -0,0 +1 @@ +4:15:Can only assign one binding to lists diff --git a/tests/auto/declarative/qmlparser/data/listAssignment.3.qml b/tests/auto/declarative/qmlparser/data/listAssignment.3.qml new file mode 100644 index 0000000..00c4c6b --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/listAssignment.3.qml @@ -0,0 +1,6 @@ +import Test 1.0 +MyContainer { + children: childBinding.expression + children: childBinding2.expression +} + diff --git a/tests/auto/declarative/qmlparser/data/listItemDeleteSelf.qml b/tests/auto/declarative/qmlparser/data/listItemDeleteSelf.qml new file mode 100644 index 0000000..fa2e831 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/listItemDeleteSelf.qml @@ -0,0 +1,38 @@ +import Qt 4.6 + +Item { + ListModel { + id: FruitModel + ListElement { + name: "Apple" + cost: 2.45 + } + ListElement { + name: "Orange" + cost: 3.25 + } + ListElement { + name: "Banana" + cost: 1.95 + } + } + + Component { + id: FruitDelegate + Item { + width: 200; height: 50 + Text { text: name } + Text { text: '$'+cost; anchors.right: parent.right } + MouseRegion { + anchors.fill: parent + onClicked: FruitModel.remove(index) + } + } + } + + ListView { + model: FruitModel + delegate: FruitDelegate + anchors.fill: parent + } +} diff --git a/tests/auto/declarative/qmlparser/data/missingObject.errors.txt b/tests/auto/declarative/qmlparser/data/missingObject.errors.txt new file mode 100644 index 0000000..b31b562 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/missingObject.errors.txt @@ -0,0 +1 @@ +1:10:Expected token `{' diff --git a/tests/auto/declarative/qmlparser/data/missingObject.qml b/tests/auto/declarative/qmlparser/data/missingObject.qml new file mode 100644 index 0000000..2f17045 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/missingObject.qml @@ -0,0 +1 @@ +something: 24 diff --git a/tests/auto/declarative/qmlparser/data/missingSignal.errors.txt b/tests/auto/declarative/qmlparser/data/missingSignal.errors.txt new file mode 100644 index 0000000..e243ae5 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/missingSignal.errors.txt @@ -0,0 +1 @@ +4:5:Cannot assign to non-existant property "onClicked" diff --git a/tests/auto/declarative/qmlparser/data/missingSignal.qml b/tests/auto/declarative/qmlparser/data/missingSignal.qml new file mode 100644 index 0000000..fd489ca --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/missingSignal.qml @@ -0,0 +1,5 @@ +import Test 1.0 +import Qt 4.6 +Object { + onClicked: print("Hello world!") +} diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.1.errors.txt b/tests/auto/declarative/qmlparser/data/nonexistantProperty.1.errors.txt new file mode 100644 index 0000000..cfc6fc8 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.1.errors.txt @@ -0,0 +1 @@ +2:15:Cannot assign to non-existant property "something" diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.1.qml b/tests/auto/declarative/qmlparser/data/nonexistantProperty.1.qml new file mode 100644 index 0000000..df7406c --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.1.qml @@ -0,0 +1,2 @@ +import Test 1.0 +MyQmlObject { something: 24 } diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.2.errors.txt b/tests/auto/declarative/qmlparser/data/nonexistantProperty.2.errors.txt new file mode 100644 index 0000000..8b13585 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.2.errors.txt @@ -0,0 +1 @@ +3:5:Cannot assign to non-existant property "something" diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.2.qml b/tests/auto/declarative/qmlparser/data/nonexistantProperty.2.qml new file mode 100644 index 0000000..06ccd37 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.2.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + something: 24 +} diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.3.errors.txt b/tests/auto/declarative/qmlparser/data/nonexistantProperty.3.errors.txt new file mode 100644 index 0000000..8b13585 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.3.errors.txt @@ -0,0 +1 @@ +3:5:Cannot assign to non-existant property "something" diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.3.qml b/tests/auto/declarative/qmlparser/data/nonexistantProperty.3.qml new file mode 100644 index 0000000..5b08608 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.3.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + something: 1 + 1 +} diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.4.errors.txt b/tests/auto/declarative/qmlparser/data/nonexistantProperty.4.errors.txt new file mode 100644 index 0000000..8b13585 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.4.errors.txt @@ -0,0 +1 @@ +3:5:Cannot assign to non-existant property "something" diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.4.qml b/tests/auto/declarative/qmlparser/data/nonexistantProperty.4.qml new file mode 100644 index 0000000..6579191 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.4.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + something: ; +} diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.5.errors.txt b/tests/auto/declarative/qmlparser/data/nonexistantProperty.5.errors.txt new file mode 100644 index 0000000..c07f2b9 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.5.errors.txt @@ -0,0 +1 @@ +3:5:Expected a qualified name id diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.5.qml b/tests/auto/declarative/qmlparser/data/nonexistantProperty.5.qml new file mode 100644 index 0000000..37af057 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.5.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + 24 +} diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.6.errors.txt b/tests/auto/declarative/qmlparser/data/nonexistantProperty.6.errors.txt new file mode 100644 index 0000000..c02d7bd --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.6.errors.txt @@ -0,0 +1 @@ +3:5:Cannot assign to non-existant default property diff --git a/tests/auto/declarative/qmlparser/data/nonexistantProperty.6.qml b/tests/auto/declarative/qmlparser/data/nonexistantProperty.6.qml new file mode 100644 index 0000000..5cd55d0 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nonexistantProperty.6.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + MyQmlObject {} +} diff --git a/tests/auto/declarative/qmlparser/data/nullDotProperty.errors.txt b/tests/auto/declarative/qmlparser/data/nullDotProperty.errors.txt new file mode 100644 index 0000000..07a4094 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nullDotProperty.errors.txt @@ -0,0 +1 @@ +3:-1:Cannot set properties on obj as it is null diff --git a/tests/auto/declarative/qmlparser/data/nullDotProperty.qml b/tests/auto/declarative/qmlparser/data/nullDotProperty.qml new file mode 100644 index 0000000..4e36779 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/nullDotProperty.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyDotPropertyObject { + obj.value: 1 +} diff --git a/tests/auto/declarative/qmlparser/data/propertyValueSource.qml b/tests/auto/declarative/qmlparser/data/propertyValueSource.qml new file mode 100644 index 0000000..ad71fcf --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/propertyValueSource.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyTypeObject { + intProperty : MyPropertyValueSource {} +} diff --git a/tests/auto/declarative/qmlparser/data/readOnly.1.errors.txt b/tests/auto/declarative/qmlparser/data/readOnly.1.errors.txt new file mode 100644 index 0000000..b8c3404 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/readOnly.1.errors.txt @@ -0,0 +1 @@ +3:21:Invalid property assignment: "readOnlyString" is a read-only property diff --git a/tests/auto/declarative/qmlparser/data/readOnly.1.qml b/tests/auto/declarative/qmlparser/data/readOnly.1.qml new file mode 100644 index 0000000..60757bd --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/readOnly.1.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + readOnlyString: "Hello World" +} diff --git a/tests/auto/declarative/qmlparser/data/readOnly.2.errors.txt b/tests/auto/declarative/qmlparser/data/readOnly.2.errors.txt new file mode 100644 index 0000000..d857a04 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/readOnly.2.errors.txt @@ -0,0 +1 @@ +3:5:Invalid property assignment: "readOnlyString" is a read-only property diff --git a/tests/auto/declarative/qmlparser/data/readOnly.2.qml b/tests/auto/declarative/qmlparser/data/readOnly.2.qml new file mode 100644 index 0000000..8f1633c --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/readOnly.2.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + readOnlyString: "Hello" + "World" +} diff --git a/tests/auto/declarative/qmlparser/data/rootAsQmlComponent.qml b/tests/auto/declarative/qmlparser/data/rootAsQmlComponent.qml new file mode 100644 index 0000000..8d72cd3 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/rootAsQmlComponent.qml @@ -0,0 +1,6 @@ +import Test 1.0 +MyContainerComponent { + x: 11 + MyQmlObject {} + MyQmlObject {} +} diff --git a/tests/auto/declarative/qmlparser/data/simpleBindings.qml b/tests/auto/declarative/qmlparser/data/simpleBindings.qml new file mode 100644 index 0000000..74867b3 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/simpleBindings.qml @@ -0,0 +1,18 @@ +import Test 1.0 +MyTypeObject { + id: Me + property int v1: 10 + property int v2: 11 + + property int value1 + property int value2 + property int value3 + property int value4 + + value1: v1 + value2: Me.v1 + value3: v1 + v2 + value4: Math.min(v1, v2) + + objectProperty: Me +} diff --git a/tests/auto/declarative/qmlparser/data/simpleContainer.qml b/tests/auto/declarative/qmlparser/data/simpleContainer.qml new file mode 100644 index 0000000..c3a795f --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/simpleContainer.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyContainer { + MyQmlObject {} + MyQmlObject {} +} diff --git a/tests/auto/declarative/qmlparser/data/simpleObject.qml b/tests/auto/declarative/qmlparser/data/simpleObject.qml new file mode 100644 index 0000000..30c7823 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/simpleObject.qml @@ -0,0 +1,2 @@ +import Test 1.0 +MyQmlObject {} diff --git a/tests/auto/declarative/qmlparser/data/subdir/Test.qml b/tests/auto/declarative/qmlparser/data/subdir/Test.qml new file mode 100644 index 0000000..c4d5905 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/subdir/Test.qml @@ -0,0 +1,2 @@ +import Qt 4.6 +Rectangle { } diff --git a/tests/auto/declarative/qmlparser/data/unregisteredObject.errors.txt b/tests/auto/declarative/qmlparser/data/unregisteredObject.errors.txt new file mode 100644 index 0000000..bc4f7f4 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/unregisteredObject.errors.txt @@ -0,0 +1 @@ +2:1:Type UnregisteredObject unavailable diff --git a/tests/auto/declarative/qmlparser/data/unregisteredObject.qml b/tests/auto/declarative/qmlparser/data/unregisteredObject.qml new file mode 100644 index 0000000..9498e31 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/unregisteredObject.qml @@ -0,0 +1,2 @@ +import Test 1.0 +UnregisteredObject {} diff --git a/tests/auto/declarative/qmlparser/data/unsupportedProperty.errors.txt b/tests/auto/declarative/qmlparser/data/unsupportedProperty.errors.txt new file mode 100644 index 0000000..3a90a7d --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/unsupportedProperty.errors.txt @@ -0,0 +1 @@ +3:13:Invalid property assignment: unknown type QVariant::QMatrix diff --git a/tests/auto/declarative/qmlparser/data/unsupportedProperty.qml b/tests/auto/declarative/qmlparser/data/unsupportedProperty.qml new file mode 100644 index 0000000..9f19680 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/unsupportedProperty.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + matrix: "1,0,0,0,1,0,0,0,1" +} diff --git a/tests/auto/declarative/qmlparser/data/valueTypes.qml b/tests/auto/declarative/qmlparser/data/valueTypes.qml new file mode 100644 index 0000000..bf325a7 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/valueTypes.qml @@ -0,0 +1,13 @@ +import Test 1.0 +MyTypeObject { + rectProperty.x: 10 + rectProperty.y: 11 + rectProperty.width: rectProperty.x + 2 + rectProperty.height: 13 + + intProperty: rectProperty.x + + onAction: { var a = rectProperty; a.x = 12; } + + rectProperty2: rectProperty +} diff --git a/tests/auto/declarative/qmlparser/data/wrongType.1.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.1.errors.txt new file mode 100644 index 0000000..ba7a076 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.1.errors.txt @@ -0,0 +1 @@ +3:12:Invalid property assignment: int expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.1.qml b/tests/auto/declarative/qmlparser/data/wrongType.1.qml new file mode 100644 index 0000000..289d37f --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.1.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + value: "hello" +} diff --git a/tests/auto/declarative/qmlparser/data/wrongType.10.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.10.errors.txt new file mode 100644 index 0000000..ae75b52 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.10.errors.txt @@ -0,0 +1 @@ +3:23:Invalid property assignment: datetime expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.10.qml b/tests/auto/declarative/qmlparser/data/wrongType.10.qml new file mode 100644 index 0000000..2cf0e50 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.10.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + dateTimeProperty: 12 +} + diff --git a/tests/auto/declarative/qmlparser/data/wrongType.11.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.11.errors.txt new file mode 100644 index 0000000..23a4cda --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.11.errors.txt @@ -0,0 +1 @@ +3:20:Invalid property assignment: point expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.11.qml b/tests/auto/declarative/qmlparser/data/wrongType.11.qml new file mode 100644 index 0000000..ae77ba1 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.11.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + pointProperty: "apples" +} + diff --git a/tests/auto/declarative/qmlparser/data/wrongType.12.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.12.errors.txt new file mode 100644 index 0000000..3092100 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.12.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: size expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.12.qml b/tests/auto/declarative/qmlparser/data/wrongType.12.qml new file mode 100644 index 0000000..b7a366f --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.12.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + sizeProperty: "red" +} + diff --git a/tests/auto/declarative/qmlparser/data/wrongType.13.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.13.errors.txt new file mode 100644 index 0000000..ba7a076 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.13.errors.txt @@ -0,0 +1 @@ +3:12:Invalid property assignment: int expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.13.qml b/tests/auto/declarative/qmlparser/data/wrongType.13.qml new file mode 100644 index 0000000..477aff1 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.13.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + value: "12" +} diff --git a/tests/auto/declarative/qmlparser/data/wrongType.14.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.14.errors.txt new file mode 100644 index 0000000..d621fdd --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.14.errors.txt @@ -0,0 +1 @@ +3:21:Invalid property assignment: string expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.14.qml b/tests/auto/declarative/qmlparser/data/wrongType.14.qml new file mode 100644 index 0000000..672d693 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.14.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + stringProperty: 10 +} + diff --git a/tests/auto/declarative/qmlparser/data/wrongType.2.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.2.errors.txt new file mode 100644 index 0000000..9ff9f25 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.2.errors.txt @@ -0,0 +1 @@ +3:14:Invalid property assignment: boolean expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.2.qml b/tests/auto/declarative/qmlparser/data/wrongType.2.qml new file mode 100644 index 0000000..34b74f7 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.2.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + enabled: 5 +} diff --git a/tests/auto/declarative/qmlparser/data/wrongType.3.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.3.errors.txt new file mode 100644 index 0000000..6d971c6 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.3.errors.txt @@ -0,0 +1 @@ +3:11:Invalid property assignment: rect expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.3.qml b/tests/auto/declarative/qmlparser/data/wrongType.3.qml new file mode 100644 index 0000000..384181a --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.3.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + rect: "5,5x10" +} diff --git a/tests/auto/declarative/qmlparser/data/wrongType.4.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.4.errors.txt new file mode 100644 index 0000000..ef34d0e --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.4.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: unknown enumeration diff --git a/tests/auto/declarative/qmlparser/data/wrongType.4.qml b/tests/auto/declarative/qmlparser/data/wrongType.4.qml new file mode 100644 index 0000000..0787bf5 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.4.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyTypeObject { + enumProperty: "InvalidEnumName" +} diff --git a/tests/auto/declarative/qmlparser/data/wrongType.5.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.5.errors.txt new file mode 100644 index 0000000..cab10bd --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.5.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: unsigned int expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.5.qml b/tests/auto/declarative/qmlparser/data/wrongType.5.qml new file mode 100644 index 0000000..c50ae9a --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.5.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + uintProperty: -13 +} + diff --git a/tests/auto/declarative/qmlparser/data/wrongType.6.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.6.errors.txt new file mode 100644 index 0000000..d0a0b00 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.6.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: double expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.6.qml b/tests/auto/declarative/qmlparser/data/wrongType.6.qml new file mode 100644 index 0000000..da10b78 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.6.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + realProperty: "Hello" +} + diff --git a/tests/auto/declarative/qmlparser/data/wrongType.7.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.7.errors.txt new file mode 100644 index 0000000..614346b --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.7.errors.txt @@ -0,0 +1 @@ +3:20:Invalid property assignment: color expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.7.qml b/tests/auto/declarative/qmlparser/data/wrongType.7.qml new file mode 100644 index 0000000..ddc3835 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.7.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + colorProperty: 12 +} + diff --git a/tests/auto/declarative/qmlparser/data/wrongType.8.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.8.errors.txt new file mode 100644 index 0000000..1773c00 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.8.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: date expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.8.qml b/tests/auto/declarative/qmlparser/data/wrongType.8.qml new file mode 100644 index 0000000..a5f6756 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.8.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + dateProperty: 12 +} + diff --git a/tests/auto/declarative/qmlparser/data/wrongType.9.errors.txt b/tests/auto/declarative/qmlparser/data/wrongType.9.errors.txt new file mode 100644 index 0000000..8630975 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.9.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: time expected diff --git a/tests/auto/declarative/qmlparser/data/wrongType.9.qml b/tests/auto/declarative/qmlparser/data/wrongType.9.qml new file mode 100644 index 0000000..a3db732 --- /dev/null +++ b/tests/auto/declarative/qmlparser/data/wrongType.9.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + timeProperty: 12 +} + diff --git a/tests/auto/declarative/qmlparser/duplicateIDs.errors.txt b/tests/auto/declarative/qmlparser/duplicateIDs.errors.txt deleted file mode 100644 index 66241cf..0000000 --- a/tests/auto/declarative/qmlparser/duplicateIDs.errors.txt +++ /dev/null @@ -1 +0,0 @@ -4:19:id is not unique diff --git a/tests/auto/declarative/qmlparser/duplicateIDs.qml b/tests/auto/declarative/qmlparser/duplicateIDs.qml deleted file mode 100644 index 9605b5b..0000000 --- a/tests/auto/declarative/qmlparser/duplicateIDs.qml +++ /dev/null @@ -1,6 +0,0 @@ -import Test 1.0 -MyContainer { - MyQmlObject { id: MyID } - MyQmlObject { id: MyID } -} - diff --git a/tests/auto/declarative/qmlparser/dynamicObject.1.qml b/tests/auto/declarative/qmlparser/dynamicObject.1.qml deleted file mode 100644 index 85d1052..0000000 --- a/tests/auto/declarative/qmlparser/dynamicObject.1.qml +++ /dev/null @@ -1,8 +0,0 @@ -import Test 1.0 -import Qt 4.6 -PropertyChanges { - propa: a + 10 - propb: Math.min(a, 10) - propc: MyPropertyValueSource {} - onPropA: a -} diff --git a/tests/auto/declarative/qmlparser/dynamicProperties.qml b/tests/auto/declarative/qmlparser/dynamicProperties.qml deleted file mode 100644 index f93e446..0000000 --- a/tests/auto/declarative/qmlparser/dynamicProperties.qml +++ /dev/null @@ -1,13 +0,0 @@ -import Test 1.0 -import Qt 4.6 -Object { - default property int intProperty : 10 - property bool boolProperty: false - property double doubleProperty: -10.1 - property real realProperty: -19.9 - property string stringProperty: "Hello World!" - property color colorProperty: "red" - property date dateProperty: "1945-09-02" - property var varProperty: "Hello World!" - property variant variantProperty: 12 -} diff --git a/tests/auto/declarative/qmlparser/dynamicSignalsAndSlots.qml b/tests/auto/declarative/qmlparser/dynamicSignalsAndSlots.qml deleted file mode 100644 index b0ca970..0000000 --- a/tests/auto/declarative/qmlparser/dynamicSignalsAndSlots.qml +++ /dev/null @@ -1,7 +0,0 @@ -import Qt 4.6 -Object { - signal signal1 - function slot1() {} - signal signal2 - function slot2() {} -} diff --git a/tests/auto/declarative/qmlparser/empty.errors.txt b/tests/auto/declarative/qmlparser/empty.errors.txt deleted file mode 100644 index d416e76..0000000 --- a/tests/auto/declarative/qmlparser/empty.errors.txt +++ /dev/null @@ -1,2 +0,0 @@ -0:0:Expected token `numeric literal' -0:0:Expected a qualified name id diff --git a/tests/auto/declarative/qmlparser/empty.qml b/tests/auto/declarative/qmlparser/empty.qml deleted file mode 100644 index e69de29..0000000 diff --git a/tests/auto/declarative/qmlparser/failingComponent.errors.txt b/tests/auto/declarative/qmlparser/failingComponent.errors.txt deleted file mode 100644 index 0cf0ef3..0000000 --- a/tests/auto/declarative/qmlparser/failingComponent.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:5:Type FailingComponent unavailable diff --git a/tests/auto/declarative/qmlparser/failingComponentTest.qml b/tests/auto/declarative/qmlparser/failingComponentTest.qml deleted file mode 100644 index 74a6acf..0000000 --- a/tests/auto/declarative/qmlparser/failingComponentTest.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyContainer { - FailingComponent {} -} diff --git a/tests/auto/declarative/qmlparser/fakeDotProperty.errors.txt b/tests/auto/declarative/qmlparser/fakeDotProperty.errors.txt deleted file mode 100644 index e56ad3a..0000000 --- a/tests/auto/declarative/qmlparser/fakeDotProperty.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:5:Invalid property access diff --git a/tests/auto/declarative/qmlparser/fakeDotProperty.qml b/tests/auto/declarative/qmlparser/fakeDotProperty.qml deleted file mode 100644 index d971eee..0000000 --- a/tests/auto/declarative/qmlparser/fakeDotProperty.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - value.something: "hello" -} diff --git a/tests/auto/declarative/qmlparser/finalOverride.errors.txt b/tests/auto/declarative/qmlparser/finalOverride.errors.txt deleted file mode 100644 index 49e06cb..0000000 --- a/tests/auto/declarative/qmlparser/finalOverride.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:5:Cannot override FINAL property diff --git a/tests/auto/declarative/qmlparser/finalOverride.qml b/tests/auto/declarative/qmlparser/finalOverride.qml deleted file mode 100644 index a84393a..0000000 --- a/tests/auto/declarative/qmlparser/finalOverride.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - property int value: 10 -} diff --git a/tests/auto/declarative/qmlparser/idProperty.qml b/tests/auto/declarative/qmlparser/idProperty.qml deleted file mode 100644 index a413c0b..0000000 --- a/tests/auto/declarative/qmlparser/idProperty.qml +++ /dev/null @@ -1,8 +0,0 @@ -import Test 1.0 -MyContainer { - property var object : MyObjectId - - MyTypeObject { - id: "MyObjectId" - } -} diff --git a/tests/auto/declarative/qmlparser/importNamespaceConflict.errors.txt b/tests/auto/declarative/qmlparser/importNamespaceConflict.errors.txt deleted file mode 100644 index 231998d..0000000 --- a/tests/auto/declarative/qmlparser/importNamespaceConflict.errors.txt +++ /dev/null @@ -1 +0,0 @@ -4:1:Namespace Rectangle cannot be used as a type diff --git a/tests/auto/declarative/qmlparser/importNamespaceConflict.qml b/tests/auto/declarative/qmlparser/importNamespaceConflict.qml deleted file mode 100644 index cd112af..0000000 --- a/tests/auto/declarative/qmlparser/importNamespaceConflict.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 as Rectangle -import Qt 4.6 - -Rectangle { } diff --git a/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.errors.txt b/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.errors.txt deleted file mode 100644 index 2235cbc..0000000 --- a/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.errors.txt +++ /dev/null @@ -1 +0,0 @@ -SHOULD GIVE AN ERROR ABOUT MISSING VERSION diff --git a/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.qml b/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.qml deleted file mode 100644 index 23ed566..0000000 --- a/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.qml +++ /dev/null @@ -1,7 +0,0 @@ -import Test as S - -S.MyQmlObject { - property real x; - property real y; -} - diff --git a/tests/auto/declarative/qmlparser/importVersionMissingInstalled.errors.txt b/tests/auto/declarative/qmlparser/importVersionMissingInstalled.errors.txt deleted file mode 100644 index 2235cbc..0000000 --- a/tests/auto/declarative/qmlparser/importVersionMissingInstalled.errors.txt +++ /dev/null @@ -1 +0,0 @@ -SHOULD GIVE AN ERROR ABOUT MISSING VERSION diff --git a/tests/auto/declarative/qmlparser/importVersionMissingInstalled.qml b/tests/auto/declarative/qmlparser/importVersionMissingInstalled.qml deleted file mode 100644 index 97ec222..0000000 --- a/tests/auto/declarative/qmlparser/importVersionMissingInstalled.qml +++ /dev/null @@ -1,3 +0,0 @@ -import com.nokia.installedtest as T - -T.InstalledTest {} diff --git a/tests/auto/declarative/qmlparser/inlineQmlComponents.qml b/tests/auto/declarative/qmlparser/inlineQmlComponents.qml deleted file mode 100644 index 79ceda6..0000000 --- a/tests/auto/declarative/qmlparser/inlineQmlComponents.qml +++ /dev/null @@ -1,10 +0,0 @@ -import Test 1.0 -import Qt 4.6 -MyContainer { - Component { - id: MyComponent - MyQmlObject { - value: 11 - } - } -} diff --git a/tests/auto/declarative/qmlparser/interfaceProperty.qml b/tests/auto/declarative/qmlparser/interfaceProperty.qml deleted file mode 100644 index 70879ff..0000000 --- a/tests/auto/declarative/qmlparser/interfaceProperty.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -import Qt 4.6 -MyQmlObject { - interfaceProperty: MyQmlObject {} -} diff --git a/tests/auto/declarative/qmlparser/interfaceQList.qml b/tests/auto/declarative/qmlparser/interfaceQList.qml deleted file mode 100644 index c87dfae..0000000 --- a/tests/auto/declarative/qmlparser/interfaceQList.qml +++ /dev/null @@ -1,7 +0,0 @@ -import Test 1.0 -MyContainer { - qlistInterfaces: [ - MyQmlObject {}, - MyQmlObject {} - ] -} diff --git a/tests/auto/declarative/qmlparser/interfaceQmlList.qml b/tests/auto/declarative/qmlparser/interfaceQmlList.qml deleted file mode 100644 index 8392bea..0000000 --- a/tests/auto/declarative/qmlparser/interfaceQmlList.qml +++ /dev/null @@ -1,7 +0,0 @@ -import Test 1.0 -MyContainer { - qmllistInterfaces: [ - MyQmlObject {}, - MyQmlObject {} - ] -} diff --git a/tests/auto/declarative/qmlparser/invalidID.2.errors.txt b/tests/auto/declarative/qmlparser/invalidID.2.errors.txt deleted file mode 100644 index 56e3eeb..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.2.errors.txt +++ /dev/null @@ -1,2 +0,0 @@ -3:5:"" is not a valid object id - diff --git a/tests/auto/declarative/qmlparser/invalidID.2.qml b/tests/auto/declarative/qmlparser/invalidID.2.qml deleted file mode 100644 index 4fb3b29..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.2.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyQmlObject { - id: "" -} - diff --git a/tests/auto/declarative/qmlparser/invalidID.3.errors.txt b/tests/auto/declarative/qmlparser/invalidID.3.errors.txt deleted file mode 100644 index bb811cf..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.3.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:5:Invalid use of id property diff --git a/tests/auto/declarative/qmlparser/invalidID.3.qml b/tests/auto/declarative/qmlparser/invalidID.3.qml deleted file mode 100644 index 6684172..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.3.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyQmlObject { - id.other: 10 -} - diff --git a/tests/auto/declarative/qmlparser/invalidID.4.errors.txt b/tests/auto/declarative/qmlparser/invalidID.4.errors.txt deleted file mode 100644 index cfe8756..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.4.errors.txt +++ /dev/null @@ -1 +0,0 @@ -4:5:Invalid use of id property diff --git a/tests/auto/declarative/qmlparser/invalidID.4.qml b/tests/auto/declarative/qmlparser/invalidID.4.qml deleted file mode 100644 index 1f15fce..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.4.qml +++ /dev/null @@ -1,6 +0,0 @@ -import Test 1.0 -MyQmlObject { - id: Hello - id: World -} - diff --git a/tests/auto/declarative/qmlparser/invalidID.5.errors.txt b/tests/auto/declarative/qmlparser/invalidID.5.errors.txt deleted file mode 100644 index b0a63a0..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.5.errors.txt +++ /dev/null @@ -1 +0,0 @@ -4:9:id conflicts with namespace prefix diff --git a/tests/auto/declarative/qmlparser/invalidID.5.qml b/tests/auto/declarative/qmlparser/invalidID.5.qml deleted file mode 100644 index 0545b0d..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.5.qml +++ /dev/null @@ -1,6 +0,0 @@ -import Test 1.0 -import Test 1.0 as Hello -MyQmlObject { - id: Hello -} - diff --git a/tests/auto/declarative/qmlparser/invalidID.6.errors.txt b/tests/auto/declarative/qmlparser/invalidID.6.errors.txt deleted file mode 100644 index 861e3d7..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.6.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:9:id conflicts with type name diff --git a/tests/auto/declarative/qmlparser/invalidID.6.qml b/tests/auto/declarative/qmlparser/invalidID.6.qml deleted file mode 100644 index ea34007..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.6.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyQmlObject { - id: MyQmlObject -} - diff --git a/tests/auto/declarative/qmlparser/invalidID.errors.txt b/tests/auto/declarative/qmlparser/invalidID.errors.txt deleted file mode 100644 index 1ca678c..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:5:"1" is not a valid object id diff --git a/tests/auto/declarative/qmlparser/invalidID.qml b/tests/auto/declarative/qmlparser/invalidID.qml deleted file mode 100644 index 04db3eb..0000000 --- a/tests/auto/declarative/qmlparser/invalidID.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - id: 1 -} diff --git a/tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/InstalledTest.qml b/tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/InstalledTest.qml deleted file mode 100644 index d8a22a8..0000000 --- a/tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/InstalledTest.qml +++ /dev/null @@ -1,2 +0,0 @@ -import Qt 4.6 -Rectangle {} diff --git a/tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/InstalledTest2.qml b/tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/InstalledTest2.qml deleted file mode 100644 index a0706ad..0000000 --- a/tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/InstalledTest2.qml +++ /dev/null @@ -1,2 +0,0 @@ -import Qt 4.6 -Text {} diff --git a/tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/qmldir b/tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/qmldir deleted file mode 100644 index ba0b42a..0000000 --- a/tests/auto/declarative/qmlparser/lib/com/nokia/installedtest/qmldir +++ /dev/null @@ -1,3 +0,0 @@ -InstalledTest 1.0-3 InstalledTest.qml -InstalledTest 1.4 InstalledTest2.qml -Rectangle 1.5 InstalledTest2.qml diff --git a/tests/auto/declarative/qmlparser/listAssignment.1.errors.txt b/tests/auto/declarative/qmlparser/listAssignment.1.errors.txt deleted file mode 100644 index d68d487..0000000 --- a/tests/auto/declarative/qmlparser/listAssignment.1.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:24:Cannot assign primitives to lists diff --git a/tests/auto/declarative/qmlparser/listAssignment.1.qml b/tests/auto/declarative/qmlparser/listAssignment.1.qml deleted file mode 100644 index 4240425..0000000 --- a/tests/auto/declarative/qmlparser/listAssignment.1.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyContainer { - qmllistInterfaces: 1 -} diff --git a/tests/auto/declarative/qmlparser/listAssignment.2.errors.txt b/tests/auto/declarative/qmlparser/listAssignment.2.errors.txt deleted file mode 100644 index 8b40aa3..0000000 --- a/tests/auto/declarative/qmlparser/listAssignment.2.errors.txt +++ /dev/null @@ -1,2 +0,0 @@ -3:15:Cannot assign primitives to lists - diff --git a/tests/auto/declarative/qmlparser/listAssignment.2.qml b/tests/auto/declarative/qmlparser/listAssignment.2.qml deleted file mode 100644 index e3baadb..0000000 --- a/tests/auto/declarative/qmlparser/listAssignment.2.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyContainer { - children: 2 -} diff --git a/tests/auto/declarative/qmlparser/listAssignment.3.errors.txt b/tests/auto/declarative/qmlparser/listAssignment.3.errors.txt deleted file mode 100644 index 8c7b7e9..0000000 --- a/tests/auto/declarative/qmlparser/listAssignment.3.errors.txt +++ /dev/null @@ -1 +0,0 @@ -4:15:Can only assign one binding to lists diff --git a/tests/auto/declarative/qmlparser/listAssignment.3.qml b/tests/auto/declarative/qmlparser/listAssignment.3.qml deleted file mode 100644 index 00c4c6b..0000000 --- a/tests/auto/declarative/qmlparser/listAssignment.3.qml +++ /dev/null @@ -1,6 +0,0 @@ -import Test 1.0 -MyContainer { - children: childBinding.expression - children: childBinding2.expression -} - diff --git a/tests/auto/declarative/qmlparser/listItemDeleteSelf.qml b/tests/auto/declarative/qmlparser/listItemDeleteSelf.qml deleted file mode 100644 index fa2e831..0000000 --- a/tests/auto/declarative/qmlparser/listItemDeleteSelf.qml +++ /dev/null @@ -1,38 +0,0 @@ -import Qt 4.6 - -Item { - ListModel { - id: FruitModel - ListElement { - name: "Apple" - cost: 2.45 - } - ListElement { - name: "Orange" - cost: 3.25 - } - ListElement { - name: "Banana" - cost: 1.95 - } - } - - Component { - id: FruitDelegate - Item { - width: 200; height: 50 - Text { text: name } - Text { text: '$'+cost; anchors.right: parent.right } - MouseRegion { - anchors.fill: parent - onClicked: FruitModel.remove(index) - } - } - } - - ListView { - model: FruitModel - delegate: FruitDelegate - anchors.fill: parent - } -} diff --git a/tests/auto/declarative/qmlparser/missingObject.errors.txt b/tests/auto/declarative/qmlparser/missingObject.errors.txt deleted file mode 100644 index b31b562..0000000 --- a/tests/auto/declarative/qmlparser/missingObject.errors.txt +++ /dev/null @@ -1 +0,0 @@ -1:10:Expected token `{' diff --git a/tests/auto/declarative/qmlparser/missingObject.qml b/tests/auto/declarative/qmlparser/missingObject.qml deleted file mode 100644 index 2f17045..0000000 --- a/tests/auto/declarative/qmlparser/missingObject.qml +++ /dev/null @@ -1 +0,0 @@ -something: 24 diff --git a/tests/auto/declarative/qmlparser/missingSignal.errors.txt b/tests/auto/declarative/qmlparser/missingSignal.errors.txt deleted file mode 100644 index e243ae5..0000000 --- a/tests/auto/declarative/qmlparser/missingSignal.errors.txt +++ /dev/null @@ -1 +0,0 @@ -4:5:Cannot assign to non-existant property "onClicked" diff --git a/tests/auto/declarative/qmlparser/missingSignal.qml b/tests/auto/declarative/qmlparser/missingSignal.qml deleted file mode 100644 index fd489ca..0000000 --- a/tests/auto/declarative/qmlparser/missingSignal.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -import Qt 4.6 -Object { - onClicked: print("Hello world!") -} diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.1.errors.txt b/tests/auto/declarative/qmlparser/nonexistantProperty.1.errors.txt deleted file mode 100644 index cfc6fc8..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.1.errors.txt +++ /dev/null @@ -1 +0,0 @@ -2:15:Cannot assign to non-existant property "something" diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.1.qml b/tests/auto/declarative/qmlparser/nonexistantProperty.1.qml deleted file mode 100644 index df7406c..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.1.qml +++ /dev/null @@ -1,2 +0,0 @@ -import Test 1.0 -MyQmlObject { something: 24 } diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.2.errors.txt b/tests/auto/declarative/qmlparser/nonexistantProperty.2.errors.txt deleted file mode 100644 index 8b13585..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.2.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:5:Cannot assign to non-existant property "something" diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.2.qml b/tests/auto/declarative/qmlparser/nonexistantProperty.2.qml deleted file mode 100644 index 06ccd37..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.2.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - something: 24 -} diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.3.errors.txt b/tests/auto/declarative/qmlparser/nonexistantProperty.3.errors.txt deleted file mode 100644 index 8b13585..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.3.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:5:Cannot assign to non-existant property "something" diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.3.qml b/tests/auto/declarative/qmlparser/nonexistantProperty.3.qml deleted file mode 100644 index 5b08608..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.3.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - something: 1 + 1 -} diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.4.errors.txt b/tests/auto/declarative/qmlparser/nonexistantProperty.4.errors.txt deleted file mode 100644 index 8b13585..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.4.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:5:Cannot assign to non-existant property "something" diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.4.qml b/tests/auto/declarative/qmlparser/nonexistantProperty.4.qml deleted file mode 100644 index 6579191..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.4.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - something: ; -} diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.5.errors.txt b/tests/auto/declarative/qmlparser/nonexistantProperty.5.errors.txt deleted file mode 100644 index c07f2b9..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.5.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:5:Expected a qualified name id diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.5.qml b/tests/auto/declarative/qmlparser/nonexistantProperty.5.qml deleted file mode 100644 index 37af057..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.5.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - 24 -} diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.6.errors.txt b/tests/auto/declarative/qmlparser/nonexistantProperty.6.errors.txt deleted file mode 100644 index c02d7bd..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.6.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:5:Cannot assign to non-existant default property diff --git a/tests/auto/declarative/qmlparser/nonexistantProperty.6.qml b/tests/auto/declarative/qmlparser/nonexistantProperty.6.qml deleted file mode 100644 index 5cd55d0..0000000 --- a/tests/auto/declarative/qmlparser/nonexistantProperty.6.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - MyQmlObject {} -} diff --git a/tests/auto/declarative/qmlparser/nullDotProperty.errors.txt b/tests/auto/declarative/qmlparser/nullDotProperty.errors.txt deleted file mode 100644 index 07a4094..0000000 --- a/tests/auto/declarative/qmlparser/nullDotProperty.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:-1:Cannot set properties on obj as it is null diff --git a/tests/auto/declarative/qmlparser/nullDotProperty.qml b/tests/auto/declarative/qmlparser/nullDotProperty.qml deleted file mode 100644 index 4e36779..0000000 --- a/tests/auto/declarative/qmlparser/nullDotProperty.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyDotPropertyObject { - obj.value: 1 -} diff --git a/tests/auto/declarative/qmlparser/propertyValueSource.qml b/tests/auto/declarative/qmlparser/propertyValueSource.qml deleted file mode 100644 index ad71fcf..0000000 --- a/tests/auto/declarative/qmlparser/propertyValueSource.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyTypeObject { - intProperty : MyPropertyValueSource {} -} diff --git a/tests/auto/declarative/qmlparser/readOnly.1.errors.txt b/tests/auto/declarative/qmlparser/readOnly.1.errors.txt deleted file mode 100644 index b8c3404..0000000 --- a/tests/auto/declarative/qmlparser/readOnly.1.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:21:Invalid property assignment: "readOnlyString" is a read-only property diff --git a/tests/auto/declarative/qmlparser/readOnly.1.qml b/tests/auto/declarative/qmlparser/readOnly.1.qml deleted file mode 100644 index 60757bd..0000000 --- a/tests/auto/declarative/qmlparser/readOnly.1.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - readOnlyString: "Hello World" -} diff --git a/tests/auto/declarative/qmlparser/readOnly.2.errors.txt b/tests/auto/declarative/qmlparser/readOnly.2.errors.txt deleted file mode 100644 index d857a04..0000000 --- a/tests/auto/declarative/qmlparser/readOnly.2.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:5:Invalid property assignment: "readOnlyString" is a read-only property diff --git a/tests/auto/declarative/qmlparser/readOnly.2.qml b/tests/auto/declarative/qmlparser/readOnly.2.qml deleted file mode 100644 index 8f1633c..0000000 --- a/tests/auto/declarative/qmlparser/readOnly.2.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - readOnlyString: "Hello" + "World" -} diff --git a/tests/auto/declarative/qmlparser/rootAsQmlComponent.qml b/tests/auto/declarative/qmlparser/rootAsQmlComponent.qml deleted file mode 100644 index 8d72cd3..0000000 --- a/tests/auto/declarative/qmlparser/rootAsQmlComponent.qml +++ /dev/null @@ -1,6 +0,0 @@ -import Test 1.0 -MyContainerComponent { - x: 11 - MyQmlObject {} - MyQmlObject {} -} diff --git a/tests/auto/declarative/qmlparser/simpleBindings.qml b/tests/auto/declarative/qmlparser/simpleBindings.qml deleted file mode 100644 index 74867b3..0000000 --- a/tests/auto/declarative/qmlparser/simpleBindings.qml +++ /dev/null @@ -1,18 +0,0 @@ -import Test 1.0 -MyTypeObject { - id: Me - property int v1: 10 - property int v2: 11 - - property int value1 - property int value2 - property int value3 - property int value4 - - value1: v1 - value2: Me.v1 - value3: v1 + v2 - value4: Math.min(v1, v2) - - objectProperty: Me -} diff --git a/tests/auto/declarative/qmlparser/simpleContainer.qml b/tests/auto/declarative/qmlparser/simpleContainer.qml deleted file mode 100644 index c3a795f..0000000 --- a/tests/auto/declarative/qmlparser/simpleContainer.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyContainer { - MyQmlObject {} - MyQmlObject {} -} diff --git a/tests/auto/declarative/qmlparser/simpleObject.qml b/tests/auto/declarative/qmlparser/simpleObject.qml deleted file mode 100644 index 30c7823..0000000 --- a/tests/auto/declarative/qmlparser/simpleObject.qml +++ /dev/null @@ -1,2 +0,0 @@ -import Test 1.0 -MyQmlObject {} diff --git a/tests/auto/declarative/qmlparser/subdir/Test.qml b/tests/auto/declarative/qmlparser/subdir/Test.qml deleted file mode 100644 index c4d5905..0000000 --- a/tests/auto/declarative/qmlparser/subdir/Test.qml +++ /dev/null @@ -1,2 +0,0 @@ -import Qt 4.6 -Rectangle { } diff --git a/tests/auto/declarative/qmlparser/tst_qmlparser.cpp b/tests/auto/declarative/qmlparser/tst_qmlparser.cpp index c2f1e1a..7f51639 100644 --- a/tests/auto/declarative/qmlparser/tst_qmlparser.cpp +++ b/tests/auto/declarative/qmlparser/tst_qmlparser.cpp @@ -14,7 +14,7 @@ public: tst_qmlparser() { QmlMetaType::registerCustomStringConverter(qMetaTypeId(), myCustomVariantTypeConverter); QFileInfo fileInfo(__FILE__); - engine.addImportPath(fileInfo.absoluteDir().filePath(QLatin1String("lib"))); + engine.addImportPath(fileInfo.absoluteDir().filePath(QLatin1String("data/lib"))); } private slots: @@ -74,7 +74,7 @@ private: QVERIFY(!component.isError()); \ QVERIFY(component.errors().isEmpty()); \ } else { \ - QFile file(errorfile); \ + QFile file(QLatin1String("data/") + QLatin1String(errorfile)); \ QVERIFY(file.open(QIODevice::ReadOnly)); \ QByteArray data = file.readAll(); \ QList expected = data.split('\n'); \ @@ -96,7 +96,7 @@ private: inline QUrl TEST_FILE(const QString &filename) { QFileInfo fileInfo(__FILE__); - return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath(filename)); + return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath(QLatin1String("data/") + filename)); } inline QUrl TEST_FILE(const char *filename) diff --git a/tests/auto/declarative/qmlparser/unregisteredObject.errors.txt b/tests/auto/declarative/qmlparser/unregisteredObject.errors.txt deleted file mode 100644 index bc4f7f4..0000000 --- a/tests/auto/declarative/qmlparser/unregisteredObject.errors.txt +++ /dev/null @@ -1 +0,0 @@ -2:1:Type UnregisteredObject unavailable diff --git a/tests/auto/declarative/qmlparser/unregisteredObject.qml b/tests/auto/declarative/qmlparser/unregisteredObject.qml deleted file mode 100644 index 9498e31..0000000 --- a/tests/auto/declarative/qmlparser/unregisteredObject.qml +++ /dev/null @@ -1,2 +0,0 @@ -import Test 1.0 -UnregisteredObject {} diff --git a/tests/auto/declarative/qmlparser/unsupportedProperty.errors.txt b/tests/auto/declarative/qmlparser/unsupportedProperty.errors.txt deleted file mode 100644 index 3a90a7d..0000000 --- a/tests/auto/declarative/qmlparser/unsupportedProperty.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:13:Invalid property assignment: unknown type QVariant::QMatrix diff --git a/tests/auto/declarative/qmlparser/unsupportedProperty.qml b/tests/auto/declarative/qmlparser/unsupportedProperty.qml deleted file mode 100644 index 9f19680..0000000 --- a/tests/auto/declarative/qmlparser/unsupportedProperty.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - matrix: "1,0,0,0,1,0,0,0,1" -} diff --git a/tests/auto/declarative/qmlparser/valueTypes.qml b/tests/auto/declarative/qmlparser/valueTypes.qml deleted file mode 100644 index bf325a7..0000000 --- a/tests/auto/declarative/qmlparser/valueTypes.qml +++ /dev/null @@ -1,13 +0,0 @@ -import Test 1.0 -MyTypeObject { - rectProperty.x: 10 - rectProperty.y: 11 - rectProperty.width: rectProperty.x + 2 - rectProperty.height: 13 - - intProperty: rectProperty.x - - onAction: { var a = rectProperty; a.x = 12; } - - rectProperty2: rectProperty -} diff --git a/tests/auto/declarative/qmlparser/wrongType.1.errors.txt b/tests/auto/declarative/qmlparser/wrongType.1.errors.txt deleted file mode 100644 index ba7a076..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.1.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:12:Invalid property assignment: int expected diff --git a/tests/auto/declarative/qmlparser/wrongType.1.qml b/tests/auto/declarative/qmlparser/wrongType.1.qml deleted file mode 100644 index 289d37f..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.1.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - value: "hello" -} diff --git a/tests/auto/declarative/qmlparser/wrongType.10.errors.txt b/tests/auto/declarative/qmlparser/wrongType.10.errors.txt deleted file mode 100644 index ae75b52..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.10.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:23:Invalid property assignment: datetime expected diff --git a/tests/auto/declarative/qmlparser/wrongType.10.qml b/tests/auto/declarative/qmlparser/wrongType.10.qml deleted file mode 100644 index 2cf0e50..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.10.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyTypeObject { - dateTimeProperty: 12 -} - diff --git a/tests/auto/declarative/qmlparser/wrongType.11.errors.txt b/tests/auto/declarative/qmlparser/wrongType.11.errors.txt deleted file mode 100644 index 23a4cda..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.11.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:20:Invalid property assignment: point expected diff --git a/tests/auto/declarative/qmlparser/wrongType.11.qml b/tests/auto/declarative/qmlparser/wrongType.11.qml deleted file mode 100644 index ae77ba1..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.11.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyTypeObject { - pointProperty: "apples" -} - diff --git a/tests/auto/declarative/qmlparser/wrongType.12.errors.txt b/tests/auto/declarative/qmlparser/wrongType.12.errors.txt deleted file mode 100644 index 3092100..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.12.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:19:Invalid property assignment: size expected diff --git a/tests/auto/declarative/qmlparser/wrongType.12.qml b/tests/auto/declarative/qmlparser/wrongType.12.qml deleted file mode 100644 index b7a366f..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.12.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyTypeObject { - sizeProperty: "red" -} - diff --git a/tests/auto/declarative/qmlparser/wrongType.13.errors.txt b/tests/auto/declarative/qmlparser/wrongType.13.errors.txt deleted file mode 100644 index ba7a076..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.13.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:12:Invalid property assignment: int expected diff --git a/tests/auto/declarative/qmlparser/wrongType.13.qml b/tests/auto/declarative/qmlparser/wrongType.13.qml deleted file mode 100644 index 477aff1..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.13.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - value: "12" -} diff --git a/tests/auto/declarative/qmlparser/wrongType.14.errors.txt b/tests/auto/declarative/qmlparser/wrongType.14.errors.txt deleted file mode 100644 index d621fdd..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.14.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:21:Invalid property assignment: string expected diff --git a/tests/auto/declarative/qmlparser/wrongType.14.qml b/tests/auto/declarative/qmlparser/wrongType.14.qml deleted file mode 100644 index 672d693..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.14.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyTypeObject { - stringProperty: 10 -} - diff --git a/tests/auto/declarative/qmlparser/wrongType.2.errors.txt b/tests/auto/declarative/qmlparser/wrongType.2.errors.txt deleted file mode 100644 index 9ff9f25..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.2.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:14:Invalid property assignment: boolean expected diff --git a/tests/auto/declarative/qmlparser/wrongType.2.qml b/tests/auto/declarative/qmlparser/wrongType.2.qml deleted file mode 100644 index 34b74f7..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.2.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - enabled: 5 -} diff --git a/tests/auto/declarative/qmlparser/wrongType.3.errors.txt b/tests/auto/declarative/qmlparser/wrongType.3.errors.txt deleted file mode 100644 index 6d971c6..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.3.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:11:Invalid property assignment: rect expected diff --git a/tests/auto/declarative/qmlparser/wrongType.3.qml b/tests/auto/declarative/qmlparser/wrongType.3.qml deleted file mode 100644 index 384181a..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.3.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyQmlObject { - rect: "5,5x10" -} diff --git a/tests/auto/declarative/qmlparser/wrongType.4.errors.txt b/tests/auto/declarative/qmlparser/wrongType.4.errors.txt deleted file mode 100644 index ef34d0e..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.4.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:19:Invalid property assignment: unknown enumeration diff --git a/tests/auto/declarative/qmlparser/wrongType.4.qml b/tests/auto/declarative/qmlparser/wrongType.4.qml deleted file mode 100644 index 0787bf5..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.4.qml +++ /dev/null @@ -1,4 +0,0 @@ -import Test 1.0 -MyTypeObject { - enumProperty: "InvalidEnumName" -} diff --git a/tests/auto/declarative/qmlparser/wrongType.5.errors.txt b/tests/auto/declarative/qmlparser/wrongType.5.errors.txt deleted file mode 100644 index cab10bd..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.5.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:19:Invalid property assignment: unsigned int expected diff --git a/tests/auto/declarative/qmlparser/wrongType.5.qml b/tests/auto/declarative/qmlparser/wrongType.5.qml deleted file mode 100644 index c50ae9a..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.5.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyTypeObject { - uintProperty: -13 -} - diff --git a/tests/auto/declarative/qmlparser/wrongType.6.errors.txt b/tests/auto/declarative/qmlparser/wrongType.6.errors.txt deleted file mode 100644 index d0a0b00..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.6.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:19:Invalid property assignment: double expected diff --git a/tests/auto/declarative/qmlparser/wrongType.6.qml b/tests/auto/declarative/qmlparser/wrongType.6.qml deleted file mode 100644 index da10b78..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.6.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyTypeObject { - realProperty: "Hello" -} - diff --git a/tests/auto/declarative/qmlparser/wrongType.7.errors.txt b/tests/auto/declarative/qmlparser/wrongType.7.errors.txt deleted file mode 100644 index 614346b..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.7.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:20:Invalid property assignment: color expected diff --git a/tests/auto/declarative/qmlparser/wrongType.7.qml b/tests/auto/declarative/qmlparser/wrongType.7.qml deleted file mode 100644 index ddc3835..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.7.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyTypeObject { - colorProperty: 12 -} - diff --git a/tests/auto/declarative/qmlparser/wrongType.8.errors.txt b/tests/auto/declarative/qmlparser/wrongType.8.errors.txt deleted file mode 100644 index 1773c00..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.8.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:19:Invalid property assignment: date expected diff --git a/tests/auto/declarative/qmlparser/wrongType.8.qml b/tests/auto/declarative/qmlparser/wrongType.8.qml deleted file mode 100644 index a5f6756..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.8.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyTypeObject { - dateProperty: 12 -} - diff --git a/tests/auto/declarative/qmlparser/wrongType.9.errors.txt b/tests/auto/declarative/qmlparser/wrongType.9.errors.txt deleted file mode 100644 index 8630975..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.9.errors.txt +++ /dev/null @@ -1 +0,0 @@ -3:19:Invalid property assignment: time expected diff --git a/tests/auto/declarative/qmlparser/wrongType.9.qml b/tests/auto/declarative/qmlparser/wrongType.9.qml deleted file mode 100644 index a3db732..0000000 --- a/tests/auto/declarative/qmlparser/wrongType.9.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Test 1.0 -MyTypeObject { - timeProperty: 12 -} - -- cgit v0.12 From c60dfe1f2732670eb48d98c9772815d37a16ec3c Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 23 Sep 2009 11:37:50 +1000 Subject: Add some of the functionality from the old debugger (e.g. dynamic updating of property values, watch table, colouring of tree widget items). --- src/declarative/debugger/qmldebug.cpp | 205 +++++++++++++-- src/declarative/debugger/qmldebug.h | 59 ++++- src/declarative/debugger/qmldebugservice.h | 2 +- src/declarative/qml/qml.pri | 6 +- src/declarative/qml/qmlenginedebug.cpp | 82 +++++- src/declarative/qml/qmlenginedebug_p.h | 8 + src/declarative/qml/qmlwatcher.cpp | 183 +++++++++++++ src/declarative/qml/qmlwatcher_p.h | 93 +++++++ tools/qmldebugger/engine.cpp | 407 ++++++++++++++++++++++++++++- tools/qmldebugger/engine.h | 25 +- 10 files changed, 1033 insertions(+), 37 deletions(-) create mode 100644 src/declarative/qml/qmlwatcher.cpp create mode 100644 src/declarative/qml/qmlwatcher_p.h diff --git a/src/declarative/debugger/qmldebug.cpp b/src/declarative/debugger/qmldebug.cpp index 57e5858..7483fe2 100644 --- a/src/declarative/debugger/qmldebug.cpp +++ b/src/declarative/debugger/qmldebug.cpp @@ -36,6 +36,8 @@ public: QHash enginesQuery; QHash rootContextQuery; QHash objectQuery; + + QHash watched; }; QmlEngineDebugClient::QmlEngineDebugClient(QmlDebugConnection *client, @@ -91,6 +93,7 @@ void QmlEngineDebugPrivate::decode(QDataStream &ds, QmlDebugObjectReference &o, o.m_source.m_url = data.url; o.m_source.m_lineNumber = data.lineNumber; o.m_source.m_columnNumber = data.columnNumber; + o.m_contextDebugId = data.contextId; if (simple) return; @@ -104,6 +107,7 @@ void QmlEngineDebugPrivate::decode(QDataStream &ds, QmlDebugObjectReference &o, QmlDebugPropertyReference prop; prop.m_name = data.name; prop.m_binding = data.binding; + prop.m_objectDebugId = o.m_debugId; if (data.type == QmlEngineDebugServer::QmlObjectProperty::Basic) prop.m_value = data.value; else if (data.type == QmlEngineDebugServer::QmlObjectProperty::Object) { @@ -144,6 +148,7 @@ void QmlEngineDebugPrivate::decode(QDataStream &ds, QmlDebugContextReference &c) QmlDebugObjectReference obj; decode(ds, obj, true); + obj.m_contextDebugId = c.m_debugId; c.m_objects << obj; } } @@ -155,6 +160,8 @@ void QmlEngineDebugPrivate::message(const QByteArray &data) QByteArray type; ds >> type; + //qDebug() << "QmlEngineDebugPrivate::message()" << type; + if (type == "LIST_ENGINES_R") { int queryId; ds >> queryId; @@ -204,6 +211,47 @@ void QmlEngineDebugPrivate::message(const QByteArray &data) query->m_client = 0; query->setState(QmlDebugQuery::Completed); + } else if (type == "WATCH_PROPERTY_R") { + int queryId; + bool ok; + ds >> queryId >> ok; + + QmlDebugWatch *watch = watched.value(queryId); + if (!watch) + return; + + watch->setState(ok ? QmlDebugWatch::Active : QmlDebugWatch::Inactive); + } else if (type == "WATCH_OBJECT_R") { + int queryId; + bool ok; + ds >> queryId >> ok; + + QmlDebugWatch *watch = watched.value(queryId); + if (!watch) + return; + + watch->setState(ok ? QmlDebugWatch::Active : QmlDebugWatch::Inactive); + } else if (type == "WATCH_EXPR_OBJECT_R") { + int queryId; + bool ok; + ds >> queryId >> ok; + + QmlDebugWatch *watch = watched.value(queryId); + if (!watch) + return; + + watch->setState(ok ? QmlDebugWatch::Active : QmlDebugWatch::Inactive); + } else if (type == "UPDATE_WATCH") { + int queryId; + int debugId; + QByteArray name; + QVariant value; + ds >> queryId >> debugId >> name >> value; + + QmlDebugWatch *watch = watched.value(queryId); + if (!watch) + return; + emit watch->valueChanged(name, value); } } @@ -212,10 +260,27 @@ QmlEngineDebug::QmlEngineDebug(QmlDebugConnection *client, QObject *parent) { } -QmlDebugWatch *QmlEngineDebug::addWatch(const QmlDebugPropertyReference &, QObject *) +QmlDebugPropertyWatch *QmlEngineDebug::addWatch(const QmlDebugPropertyReference &property, QObject *parent) { - qWarning("QmlEngineDebug::addWatch(): Not implemented"); - return 0; + Q_D(QmlEngineDebug); + + QmlDebugPropertyWatch *watch = new QmlDebugPropertyWatch(parent); + if (d->client->isConnected()) { + //query->m_client = this; + int queryId = d->getId(); + watch->m_queryId = queryId; + watch->m_objectDebugId = property.objectDebugId(); + d->watched.insert(queryId, watch); + + QByteArray message; + QDataStream ds(&message, QIODevice::WriteOnly); + ds << QByteArray("WATCH_PROPERTY") << queryId << property.objectDebugId() << property.name().toLatin1(); + d->client->sendMessage(message); + } else { + watch->m_state = QmlDebugWatch::Dead; + } + + return watch; } QmlDebugWatch *QmlEngineDebug::addWatch(const QmlDebugContextReference &, const QString &, QObject *) @@ -224,16 +289,46 @@ QmlDebugWatch *QmlEngineDebug::addWatch(const QmlDebugContextReference &, const return 0; } -QmlDebugWatch *QmlEngineDebug::addWatch(const QmlDebugObjectReference &, const QString &, QObject *) +QmlDebugObjectExpressionWatch *QmlEngineDebug::addWatch(const QmlDebugObjectReference &object, const QString &expr, QObject *parent) { - qWarning("QmlEngineDebug::addWatch(): Not implemented"); - return 0; + Q_D(QmlEngineDebug); + QmlDebugObjectExpressionWatch *watch = new QmlDebugObjectExpressionWatch(parent); + if (d->client->isConnected()) { + int queryId = d->getId(); + watch->m_queryId = queryId; + watch->m_objectDebugId = object.debugId(); + d->watched.insert(queryId, watch); + + QByteArray message; + QDataStream ds(&message, QIODevice::WriteOnly); + ds << QByteArray("WATCH_EXPR_OBJECT") << queryId << object.debugId() << expr; + d->client->sendMessage(message); + } else { + watch->m_state = QmlDebugWatch::Dead; + } + return watch; } -QmlDebugWatch *QmlEngineDebug::addWatch(const QmlDebugObjectReference &, QObject *) +QmlDebugWatch *QmlEngineDebug::addWatch(const QmlDebugObjectReference &object, QObject *parent) { - qWarning("QmlEngineDebug::addWatch(): Not implemented"); - return 0; + Q_D(QmlEngineDebug); + + QmlDebugWatch *watch = new QmlDebugWatch(parent); + if (d->client->isConnected()) { + int queryId = d->getId(); + watch->m_queryId = queryId; + watch->m_objectDebugId = object.debugId(); + d->watched.insert(queryId, watch); + + QByteArray message; + QDataStream ds(&message, QIODevice::WriteOnly); + ds << QByteArray("WATCH_OBJECT") << queryId << object.debugId(); + d->client->sendMessage(message); + } else { + watch->m_state = QmlDebugWatch::Dead; + } + + return watch; } QmlDebugWatch *QmlEngineDebug::addWatch(const QmlDebugFileReference &, QObject *) @@ -242,6 +337,20 @@ QmlDebugWatch *QmlEngineDebug::addWatch(const QmlDebugFileReference &, QObject * return 0; } +void QmlEngineDebug::removeWatch(QmlDebugWatch *watch) +{ + Q_D(QmlEngineDebug); + + d->watched.remove(watch->queryId()); + + if (d->client->isConnected()) { + QByteArray message; + QDataStream ds(&message, QIODevice::WriteOnly); + ds << QByteArray("NO_WATCH") << watch->queryId(); + d->client->sendMessage(message); + } +} + QmlDebugEnginesQuery *QmlEngineDebug::queryAvailableEngines(QObject *parent) { Q_D(QmlEngineDebug); @@ -332,6 +441,56 @@ QmlDebugObjectQuery *QmlEngineDebug::queryObjectRecursive(const QmlDebugObjectRe return query; } +QmlDebugWatch::QmlDebugWatch(QObject *parent) +: QObject(parent), m_state(Waiting), m_queryId(-1), m_objectDebugId(-1) +{ +} + +int QmlDebugWatch::queryId() const +{ + return m_queryId; +} + +int QmlDebugWatch::objectDebugId() const +{ + return m_objectDebugId; +} + +QmlDebugWatch::State QmlDebugWatch::state() const +{ + return m_state; +} + +void QmlDebugWatch::setState(State s) +{ + if (m_state == s) + return; + m_state = s; + emit stateChanged(m_state); +} + +QmlDebugPropertyWatch::QmlDebugPropertyWatch(QObject *parent) + : QmlDebugWatch(parent) +{ +} + +QString QmlDebugPropertyWatch::name() const +{ + return m_name; +} + + +QmlDebugObjectExpressionWatch::QmlDebugObjectExpressionWatch(QObject *parent) + : QmlDebugWatch(parent) +{ +} + +QString QmlDebugObjectExpressionWatch::expression() const +{ + return m_expr; +} + + QmlDebugQuery::QmlDebugQuery(QObject *parent) : QObject(parent), m_state(Waiting) { @@ -436,18 +595,19 @@ QString QmlDebugEngineReference::name() const } QmlDebugObjectReference::QmlDebugObjectReference() -: m_debugId(-1) +: m_debugId(-1), m_contextDebugId(-1) { } QmlDebugObjectReference::QmlDebugObjectReference(int debugId) -: m_debugId(debugId) +: m_debugId(debugId), m_contextDebugId(-1) { } QmlDebugObjectReference::QmlDebugObjectReference(const QmlDebugObjectReference &o) -: m_debugId(o.m_debugId), m_class(o.m_class), m_name(o.m_name), - m_source(o.m_source), m_properties(o.m_properties), m_children(o.m_children) +: m_debugId(o.m_debugId), m_class(o.m_class), m_name(o.m_name), + m_source(o.m_source), m_contextDebugId(o.m_contextDebugId), + m_properties(o.m_properties), m_children(o.m_children) { } @@ -455,8 +615,8 @@ QmlDebugObjectReference & QmlDebugObjectReference::operator=(const QmlDebugObjectReference &o) { m_debugId = o.m_debugId; m_class = o.m_class; m_name = o.m_name; - m_source = o.m_source; m_properties = o.m_properties; - m_children = o.m_children; + m_source = o.m_source; m_contextDebugId = o.m_contextDebugId; + m_properties = o.m_properties; m_children = o.m_children; return *this; } @@ -480,6 +640,11 @@ QmlDebugFileReference QmlDebugObjectReference::source() const return m_source; } +int QmlDebugObjectReference::contextDebugId() const +{ + return m_contextDebugId; +} + QList QmlDebugObjectReference::properties() const { return m_properties; @@ -574,20 +739,26 @@ void QmlDebugFileReference::setColumnNumber(int c) } QmlDebugPropertyReference::QmlDebugPropertyReference() +: m_objectDebugId(-1) { } QmlDebugPropertyReference::QmlDebugPropertyReference(const QmlDebugPropertyReference &o) -: m_name(o.m_name), m_value(o.m_value), m_binding(o.m_binding) +: m_objectDebugId(o.m_objectDebugId), m_name(o.m_name), m_value(o.m_value), m_binding(o.m_binding) { } QmlDebugPropertyReference &QmlDebugPropertyReference::operator=(const QmlDebugPropertyReference &o) { - m_name = o.m_name; m_value = o.m_value; m_binding = o.m_binding; + m_objectDebugId = o.m_objectDebugId; m_name = o.m_name; m_value = o.m_value; m_binding = o.m_binding; return *this; } +int QmlDebugPropertyReference::objectDebugId() const +{ + return m_objectDebugId; +} + QString QmlDebugPropertyReference::name() const { return m_name; diff --git a/src/declarative/debugger/qmldebug.h b/src/declarative/debugger/qmldebug.h index 11e6b3e..be28a7e 100644 --- a/src/declarative/debugger/qmldebug.h +++ b/src/declarative/debugger/qmldebug.h @@ -7,6 +7,8 @@ class QmlDebugConnection; class QmlDebugWatch; +class QmlDebugPropertyWatch; +class QmlDebugObjectExpressionWatch; class QmlDebugEnginesQuery; class QmlDebugRootContextQuery; class QmlDebugObjectQuery; @@ -22,17 +24,19 @@ Q_OBJECT public: QmlEngineDebug(QmlDebugConnection *, QObject * = 0); - QmlDebugWatch *addWatch(const QmlDebugPropertyReference &, + QmlDebugPropertyWatch *addWatch(const QmlDebugPropertyReference &, QObject *parent = 0); QmlDebugWatch *addWatch(const QmlDebugContextReference &, const QString &, QObject *parent = 0); - QmlDebugWatch *addWatch(const QmlDebugObjectReference &, const QString &, + QmlDebugObjectExpressionWatch *addWatch(const QmlDebugObjectReference &, const QString &, QObject *parent = 0); QmlDebugWatch *addWatch(const QmlDebugObjectReference &, QObject *parent = 0); QmlDebugWatch *addWatch(const QmlDebugFileReference &, QObject *parent = 0); + void removeWatch(QmlDebugWatch *watch); + QmlDebugEnginesQuery *queryAvailableEngines(QObject *parent = 0); QmlDebugRootContextQuery *queryRootContexts(const QmlDebugEngineReference &, QObject *parent = 0); @@ -51,14 +55,57 @@ Q_OBJECT public: enum State { Waiting, Active, Inactive, Dead }; + QmlDebugWatch(QObject *); + + int queryId() const; + int objectDebugId() const; State state() const; signals: void stateChanged(State); - void objectChanged(int, const QmlDebugObjectReference &); - void valueChanged(int, const QVariant &); + //void objectChanged(int, const QmlDebugObjectReference &); + //void valueChanged(int, const QVariant &); + + // Server sends value as string if it is a user-type variant + void valueChanged(const QByteArray &name, const QVariant &value); + +private: + friend class QmlEngineDebug; + friend class QmlEngineDebugPrivate; + void setState(State); + State m_state; + int m_queryId; + int m_objectDebugId; +}; + +class Q_DECLARATIVE_EXPORT QmlDebugPropertyWatch : public QmlDebugWatch +{ + Q_OBJECT +public: + QmlDebugPropertyWatch(QObject *parent); + + QString name() const; + +private: + friend class QmlEngineDebug; + QString m_name; }; +class Q_DECLARATIVE_EXPORT QmlDebugObjectExpressionWatch : public QmlDebugWatch +{ + Q_OBJECT +public: + QmlDebugObjectExpressionWatch(QObject *parent); + + QString expression() const; + +private: + friend class QmlEngineDebug; + QString m_expr; + int m_debugId; +}; + + class Q_DECLARATIVE_EXPORT QmlDebugQuery : public QObject { Q_OBJECT @@ -134,6 +181,7 @@ public: QString name() const; QmlDebugFileReference source() const; + int contextDebugId() const; QList properties() const; QList children() const; @@ -144,6 +192,7 @@ private: QString m_class; QString m_name; QmlDebugFileReference m_source; + int m_contextDebugId; QList m_properties; QList m_children; }; @@ -176,12 +225,14 @@ public: QmlDebugPropertyReference(const QmlDebugPropertyReference &); QmlDebugPropertyReference &operator=(const QmlDebugPropertyReference &); + int objectDebugId() const; QString name() const; QVariant value() const; QString binding() const; private: friend class QmlEngineDebugPrivate; + int m_objectDebugId; QString m_name; QVariant m_value; QString m_binding; diff --git a/src/declarative/debugger/qmldebugservice.h b/src/declarative/debugger/qmldebugservice.h index c3c3b01..5d20ba0 100644 --- a/src/declarative/debugger/qmldebugservice.h +++ b/src/declarative/debugger/qmldebugservice.h @@ -49,7 +49,7 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE class QmlDebugServicePrivate; -class QmlDebugService : public QObject +class Q_DECLARATIVE_EXPORT QmlDebugService : public QObject { Q_OBJECT Q_DECLARE_PRIVATE(QmlDebugService) diff --git a/src/declarative/qml/qml.pri b/src/declarative/qml/qml.pri index 29d97ba..5df6532 100644 --- a/src/declarative/qml/qml.pri +++ b/src/declarative/qml/qml.pri @@ -32,7 +32,8 @@ SOURCES += qml/qmlparser.cpp \ qml/qmlvaluetype.cpp \ qml/qmlbindingoptimizations.cpp \ qml/qmlxmlhttprequest.cpp \ - qml/qmetaobjectbuilder.cpp + qml/qmetaobjectbuilder.cpp \ + qml/qmlwatcher.cpp HEADERS += qml/qmlparser_p.h \ qml/qmlinstruction_p.h \ @@ -81,7 +82,8 @@ HEADERS += qml/qmlparser_p.h \ qml/qmlvaluetype_p.h \ qml/qmlbindingoptimizations_p.h \ qml/qmlxmlhttprequest_p.h \ - qml/qmetaobjectbuilder_p.h + qml/qmetaobjectbuilder_p.h \ + qml/qmlwatcher_p.h # for qtscript debugger contains(QT_CONFIG, scripttools):QT += scripttools diff --git a/src/declarative/qml/qmlenginedebug.cpp b/src/declarative/qml/qmlenginedebug.cpp index 7f9e530..f5c1297 100644 --- a/src/declarative/qml/qmlenginedebug.cpp +++ b/src/declarative/qml/qmlenginedebug.cpp @@ -48,20 +48,24 @@ #include #include #include "qmlcontext_p.h" +#include "qmlwatcher_p.h" QT_BEGIN_NAMESPACE QList QmlEngineDebugServer::m_engines; QmlEngineDebugServer::QmlEngineDebugServer(QObject *parent) -: QmlDebugService(QLatin1String("QmlEngine"), parent) +: QmlDebugService(QLatin1String("QmlEngine"), parent), + m_watch(new QmlWatcher(this)) { + QObject::connect(m_watch, SIGNAL(propertyChanged(int,int,QByteArray,QVariant)), + this, SLOT(propertyChanged(int,int,QByteArray,QVariant))); } QDataStream &operator<<(QDataStream &ds, const QmlEngineDebugServer::QmlObjectData &data) { ds << data.url << data.lineNumber << data.columnNumber << data.objectName - << data.objectType << data.objectId; + << data.objectType << data.objectId << data.contextId; return ds; } @@ -69,7 +73,7 @@ QDataStream &operator>>(QDataStream &ds, QmlEngineDebugServer::QmlObjectData &data) { ds >> data.url >> data.lineNumber >> data.columnNumber >> data.objectName - >> data.objectType >> data.objectId; + >> data.objectType >> data.objectId >> data.contextId; return ds; } @@ -200,6 +204,7 @@ QmlEngineDebugServer::objectData(QObject *object) rv.objectName = object->objectName(); rv.objectType = object->metaObject()->className(); rv.objectId = QmlDebugService::idForObject(object); + rv.contextId = QmlDebugService::idForObject(qmlContext(object)); return rv; } @@ -211,6 +216,8 @@ void QmlEngineDebugServer::messageReceived(const QByteArray &message) QByteArray type; ds >> type; + //qDebug() << "QmlEngineDebugServer::messageReceived()" << type; + if (type == "LIST_ENGINES") { int queryId; ds >> queryId; @@ -263,9 +270,78 @@ void QmlEngineDebugServer::messageReceived(const QByteArray &message) buildObjectDump(rs, object, recurse); sendMessage(reply); + } else if (type == "WATCH_OBJECT") { + int queryId; + int objectId; + + ds >> queryId >> objectId; + bool ok = m_watch->addWatch(queryId, objectId); + + QByteArray reply; + QDataStream rs(&reply, QIODevice::WriteOnly); + rs << QByteArray("WATCH_OBJECT_R") << queryId << objectId << ok; + + sendMessage(reply); + } else if (type == "WATCH_PROPERTY") { + int queryId; + int objectId; + QByteArray property; + + ds >> queryId >> objectId >> property; + bool ok = m_watch->addWatch(queryId, objectId, property); + + QByteArray reply; + QDataStream rs(&reply, QIODevice::WriteOnly); + rs << QByteArray("WATCH_PROPERTY_R") << queryId << ok; + + sendMessage(reply); + } else if (type == "WATCH_EXPR_OBJECT") { + int queryId; + int debugId; + QString expr; + + ds >> queryId >> debugId >> expr; + bool ok = m_watch->addWatch(queryId, debugId, expr); + + QByteArray reply; + QDataStream rs(&reply, QIODevice::WriteOnly); + rs << QByteArray("WATCH_EXPR_OBJECT_R") << queryId << ok; + + sendMessage(reply); + } else if (type == "NO_WATCH") { + int queryId; + + ds >> queryId; + m_watch->removeWatch(queryId); } } +void QmlEngineDebugServer::propertyChanged(int id, int objectId, const QByteArray &property, const QVariant &value) +{ + QByteArray reply; + QVariant v; + QDataStream rs(&reply, QIODevice::WriteOnly); + + if (value.type() == QVariant::UserType) { + QObject *o = QmlMetaType::toQObject(value); + if (o) { + QString objectName = o->objectName(); + if (objectName.isEmpty()) + objectName = QLatin1String(""); + v = QLatin1String(o->metaObject()->className()) + + QLatin1String(": ") + objectName; + } + if (v.isNull()) + v = value.toString(); + } else { + v = value; + } + + rs << QByteArray("UPDATE_WATCH") << id << objectId << property << v; + + sendMessage(reply); +} + void QmlEngineDebugServer::addEngine(QmlEngine *engine) { Q_ASSERT(engine); diff --git a/src/declarative/qml/qmlenginedebug_p.h b/src/declarative/qml/qmlenginedebug_p.h index 87b2ffd..f935c04 100644 --- a/src/declarative/qml/qmlenginedebug_p.h +++ b/src/declarative/qml/qmlenginedebug_p.h @@ -61,9 +61,12 @@ QT_BEGIN_NAMESPACE class QmlEngine; class QmlContext; +class QmlWatcher; class QDataStream; + class QmlEngineDebugServer : public QmlDebugService { + Q_OBJECT public: QmlEngineDebugServer(QObject * = 0); @@ -74,6 +77,7 @@ public: QString objectName; QString objectType; int objectId; + int contextId; }; struct QmlObjectProperty { @@ -90,6 +94,9 @@ public: protected: virtual void messageReceived(const QByteArray &); +private Q_SLOTS: + void propertyChanged(int id, int objectId, const QByteArray &property, const QVariant &value); + private: void buildObjectList(QDataStream &, QmlContext *); void buildObjectDump(QDataStream &, QObject *, bool); @@ -97,6 +104,7 @@ private: QmlObjectProperty propertyData(QObject *, int); static QList m_engines; + QmlWatcher *m_watch; }; Q_DECLARATIVE_EXPORT QDataStream &operator<<(QDataStream &, const QmlEngineDebugServer::QmlObjectData &); Q_DECLARATIVE_EXPORT QDataStream &operator>>(QDataStream &, QmlEngineDebugServer::QmlObjectData &); diff --git a/src/declarative/qml/qmlwatcher.cpp b/src/declarative/qml/qmlwatcher.cpp new file mode 100644 index 0000000..eb00dfe --- /dev/null +++ b/src/declarative/qml/qmlwatcher.cpp @@ -0,0 +1,183 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "qmlwatcher_p.h" + +QT_BEGIN_NAMESPACE + + +class QmlWatchProxy : public QObject +{ + Q_OBJECT +public: + QmlWatchProxy(int id, + QObject *object, + int debugId, + const QMetaProperty &prop, + QmlWatcher *parent = 0); + + QmlWatchProxy(int id, + QmlExpression *exp, + int debugId, + QmlWatcher *parent = 0); + +public slots: + void notifyValueChanged(); + +private: + friend class QmlWatcher; + int m_id; + QmlWatcher *m_watch; + QObject *m_object; + int m_debugId; + QMetaProperty m_property; + + QmlExpression *m_expr; +}; + +QmlWatchProxy::QmlWatchProxy(int id, + QmlExpression *exp, + int debugId, + QmlWatcher *parent) +: QObject(parent), m_id(id), m_watch(parent), m_object(0), m_debugId(debugId), m_expr(exp) +{ + QObject::connect(m_expr, SIGNAL(valueChanged()), this, SLOT(notifyValueChanged())); +} + +QmlWatchProxy::QmlWatchProxy(int id, + QObject *object, + int debugId, + const QMetaProperty &prop, + QmlWatcher *parent) +: QObject(parent), m_id(id), m_watch(parent), m_object(object), m_debugId(debugId), m_property(prop), m_expr(0) +{ + static int refreshIdx = -1; + if(refreshIdx == -1) + refreshIdx = QmlWatchProxy::staticMetaObject.indexOfMethod("notifyValueChanged()"); + + if (prop.hasNotifySignal()) + QMetaObject::connect(m_object, prop.notifySignalIndex(), this, refreshIdx); +} + +void QmlWatchProxy::notifyValueChanged() +{ + QVariant v; + if (m_expr) + v = m_expr->value(); + else + v = m_property.read(m_object); + + emit m_watch->propertyChanged(m_id, m_debugId, QByteArray(m_property.name()), v); +} + + +QmlWatcher::QmlWatcher(QObject *parent) + : QObject(parent) +{ +} + +bool QmlWatcher::addWatch(int id, quint32 debugId) +{ + QObject *object = QmlDebugService::objectForId(debugId); + if (object) { + int propCount = object->metaObject()->propertyCount(); + for (int ii=0; iimetaObject()->property(ii)); + return true; + } + return false; +} + +bool QmlWatcher::addWatch(int id, quint32 debugId, const QByteArray &property) +{ + QObject *object = QmlDebugService::objectForId(debugId); + if (object) { + int index = object->metaObject()->indexOfProperty(property.constData()); + if (index >= 0) { + addPropertyWatch(id, object, debugId, object->metaObject()->property(index)); + return true; + } + } + return false; +} + +bool QmlWatcher::addWatch(int id, quint32 objectId, const QString &expr) +{ + QObject *object = QmlDebugService::objectForId(objectId); + QmlContext *context = qmlContext(object); + if (context) { + QmlExpression *exprObj = new QmlExpression(context, expr, object); + QmlWatchProxy *proxy = new QmlWatchProxy(id, exprObj, objectId, this); + exprObj->setParent(proxy); + m_proxies[id].append(proxy); + proxy->notifyValueChanged(); + return true; + } + return false; +} + +void QmlWatcher::removeWatch(int id) +{ + if (!m_proxies.contains(id)) + return; + + QList > proxies = m_proxies.take(id); + qDeleteAll(proxies); +} + +void QmlWatcher::addPropertyWatch(int id, QObject *object, quint32 debugId, const QMetaProperty &property) +{ + QmlWatchProxy *proxy = new QmlWatchProxy(id, object, debugId, property, this); + m_proxies[id].append(proxy); + + proxy->notifyValueChanged(); +} + +QT_END_NAMESPACE + +#include "qmlwatch.moc" diff --git a/src/declarative/qml/qmlwatcher_p.h b/src/declarative/qml/qmlwatcher_p.h new file mode 100644 index 0000000..99cae88 --- /dev/null +++ b/src/declarative/qml/qmlwatcher_p.h @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLWATCHER_P_H +#define QMLWATCHER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QmlWatchProxy; +class QmlExpression; +class QmlContext; + +class QmlWatcher : public QObject +{ + Q_OBJECT +public: + QmlWatcher(QObject * = 0); + + bool addWatch(int id, quint32 objectId); + bool addWatch(int id, quint32 objectId, const QByteArray &property); + bool addWatch(int id, quint32 objectId, const QString &expr); + + void removeWatch(int id); + +Q_SIGNALS: + void propertyChanged(int id, int objectId, const QByteArray &property, const QVariant &value); + +private: + friend class QmlWatchProxy; + void addPropertyWatch(int id, QObject *object, quint32 objectId, const QMetaProperty &property); + + QHash > > m_proxies; +}; + +QT_END_NAMESPACE + +#endif // QMLWATCHER_P_H diff --git a/tools/qmldebugger/engine.cpp b/tools/qmldebugger/engine.cpp index 1f4bcc2..f5f9d93 100644 --- a/tools/qmldebugger/engine.cpp +++ b/tools/qmldebugger/engine.cpp @@ -6,13 +6,278 @@ #include #include #include +#include +#include +#include +#include +#include #include +#include #include #include #include +#include QT_BEGIN_NAMESPACE +class QmlObjectTree : public QTreeWidget +{ + Q_OBJECT +public: + enum AdditionalRoles { + ContextIdRole = Qt::UserRole + 1 + }; + + QmlObjectTree(QWidget *parent = 0); + + QTreeWidgetItem *findItemByObjectId(int debugId) const; + +signals: + void addExpressionWatch(int debugId, const QString &); + +protected: + virtual void mousePressEvent(QMouseEvent *); + +private: + QTreeWidgetItem *findItem(QTreeWidgetItem *item, int debugId) const; +}; + +QmlObjectTree::QmlObjectTree(QWidget *parent) +: QTreeWidget(parent) +{ +} + +QTreeWidgetItem *QmlObjectTree::findItemByObjectId(int debugId) const +{ + for (int i=0; idata(0, Qt::UserRole).toInt() == debugId) + return item; + + QTreeWidgetItem *child; + for (int i=0; ichildCount(); i++) { + child = findItem(item->child(i), debugId); + if (child) + return child; + } + + return 0; +} + +void QmlObjectTree::mousePressEvent(QMouseEvent *me) +{ + QTreeWidget::mousePressEvent(me); + if (!currentItem()) + return; + if(me->button() == Qt::RightButton && me->type() == QEvent::MouseButtonPress) { + QAction action(tr("Add watch..."), 0); + QList actions; + actions << &action; + int debugId = currentItem()->data(0, Qt::UserRole).toInt(); + if (debugId >= 0 && QMenu::exec(actions, me->globalPos())) { + bool ok = false; + QString watch = QInputDialog::getText(this, tr("Watch expression"), + tr("Expression:"), QLineEdit::Normal, QString(), &ok); + if (ok && !watch.isEmpty()) + emit addExpressionWatch(debugId, watch); + } + } +} + + +class WatchTableModel : public QAbstractTableModel +{ + Q_OBJECT +public: + WatchTableModel(QObject *parent = 0); + + void addWatch(QmlDebugWatch *watch, const QString &title); + QmlDebugWatch *removeWatch(QmlDebugWatch *watch); + + void updateWatch(QmlDebugWatch *watch, const QVariant &value); + + QmlDebugWatch *watchFromIndex(const QModelIndex &index) const; + + int rowCount(const QModelIndex &parent = QModelIndex()) const; + int columnCount(const QModelIndex &parent = QModelIndex()) const; + QVariant headerData(int section, Qt::Orientation orientation, int role) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + +private: + int columnForWatch(QmlDebugWatch *watch) const; + void addValue(int column, const QVariant &value); + + struct WatchedEntity + { + QString title; + bool hasFirstValue; + QPointer watch; + }; + + struct Value { + int column; + QVariant variant; + bool first; + }; + + QList m_columns; + QList m_values; +}; + +WatchTableModel::WatchTableModel(QObject *parent) + : QAbstractTableModel(parent) +{ +} + +void WatchTableModel::addWatch(QmlDebugWatch *watch, const QString &title) +{ + int col = columnCount(QModelIndex()); + beginInsertColumns(QModelIndex(), col, col); + + WatchedEntity e; + e.title = title; + e.hasFirstValue = false; + e.watch = watch; + m_columns.append(e); + + endInsertColumns(); +} + +QmlDebugWatch *WatchTableModel::removeWatch(QmlDebugWatch *watch) +{ + int column = columnForWatch(watch); + if (column == -1) + return 0; + + WatchedEntity entity = m_columns.takeAt(column); + + for (QList::Iterator iter = m_values.begin(); iter != m_values.end();) { + if (iter->column == column) { + iter = m_values.erase(iter); + } else { + if(iter->column > column) + --iter->column; + ++iter; + } + } + + reset(); + + return entity.watch; +} + +void WatchTableModel::updateWatch(QmlDebugWatch *watch, const QVariant &value) +{ + int column = columnForWatch(watch); + if (column == -1) + return; + + addValue(column, value); + + if (!m_columns[column].hasFirstValue) { + m_columns[column].hasFirstValue = true; + m_values[m_values.count() - 1].first = true; + } +} + +QmlDebugWatch *WatchTableModel::watchFromIndex(const QModelIndex &index) const +{ + if (index.isValid() && index.column() < m_columns.count()) + return m_columns.at(index.column()).watch; + return 0; +} + +int WatchTableModel::rowCount(const QModelIndex &) const +{ + return m_values.count(); +} + +int WatchTableModel::columnCount(const QModelIndex &) const +{ + return m_columns.count(); +} + +QVariant WatchTableModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if (orientation == Qt::Horizontal) { + if (section < m_columns.count() && role == Qt::DisplayRole) + return m_columns.at(section).title; + } else { + if (role == Qt::DisplayRole) + return section + 1; + } + return QVariant(); +} + +QVariant WatchTableModel::data(const QModelIndex &idx, int role) const +{ + if (m_values.at(idx.row()).column == idx.column()) { + if (role == Qt::DisplayRole) { + const QVariant &value = m_values.at(idx.row()).variant; + QString str = value.toString(); + + if (str.isEmpty() && QmlMetaType::isObject(value.userType())) { + QObject *o = QmlMetaType::toQObject(value); + if(o) { + QString objectName = o->objectName(); + if(objectName.isEmpty()) + objectName = QLatin1String(""); + str = QLatin1String(o->metaObject()->className()) + + QLatin1String(": ") + objectName; + } + } + + if(str.isEmpty()) { + QDebug d(&str); + d << value; + } + return QVariant(str); + } else if(role == Qt::BackgroundRole) { + if(m_values.at(idx.row()).first) + return QColor(Qt::green); + else + return QVariant(); + } else { + return QVariant(); + } + } else { + return QVariant(); + } +} + +int WatchTableModel::columnForWatch(QmlDebugWatch *watch) const +{ + for (int i=0; isetContentsMargins(0, 0, 0, 0); @@ -67,18 +332,31 @@ EnginePane::EnginePane(QmlDebugConnection *client, QWidget *parent) QHBoxLayout *hbox = new QHBoxLayout; hbox->setContentsMargins(0, 0, 0, 0); - m_objTree = new QTreeWidget(this); + m_objTree = new QmlObjectTree(this); m_objTree->setHeaderHidden(true); connect(m_objTree, SIGNAL(itemClicked(QTreeWidgetItem *, int)), this, SLOT(itemClicked(QTreeWidgetItem *))); + connect(m_objTree, SIGNAL(addExpressionWatch(int,QString)), this, SLOT(addExpressionWatch(int,QString))); hbox->addWidget(m_objTree); m_propTable = new QTableWidget(this); + connect(m_propTable, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), this, SLOT(propertyDoubleClicked(QTableWidgetItem *))); m_propTable->setColumnCount(2); m_propTable->setColumnWidth(0, 150); m_propTable->setColumnWidth(1, 400); m_propTable->setHorizontalHeaderLabels(QStringList() << "name" << "value"); - hbox->addWidget(m_propTable); - hbox->setStretchFactor(m_propTable, 2); + + m_watchTableModel = new WatchTableModel(this); + m_watchTable = new QTableView(this); + m_watchTable->setModel(m_watchTableModel); + QObject::connect(m_watchTable, SIGNAL(activated(QModelIndex)), + this, SLOT(watchedItemActivated(QModelIndex))); + + m_tabs = new QTabWidget(this); + m_tabs->addTab(m_propTable, tr("Properties")); + m_tabs->addTab(m_watchTable, tr("Watching")); + + hbox->addWidget(m_tabs); + hbox->setStretchFactor(m_tabs, 2); layout->addLayout(hbox); } @@ -112,15 +390,113 @@ void EnginePane::showProperties() m_propTable->setRowCount(obj.properties().count()); for (int ii = 0; ii < obj.properties().count(); ++ii) { QTableWidgetItem *name = new QTableWidgetItem(obj.properties().at(ii).name()); + name->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); m_propTable->setItem(ii, 0, name); QTableWidgetItem *value; if (!obj.properties().at(ii).binding().isEmpty()) value = new QTableWidgetItem(obj.properties().at(ii).binding()); else value = new QTableWidgetItem(obj.properties().at(ii).value().toString()); + value->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); m_propTable->setItem(ii, 1, value); } - delete m_object; m_object = 0; + + if (m_watchedObject) { + m_client.removeWatch(m_watchedObject); + delete m_watchedObject; + m_watchedObject = 0; + } + + QmlDebugWatch *watch = m_client.addWatch(obj, this); + m_watchedObject = watch; + QObject::connect(watch, SIGNAL(valueChanged(QByteArray,QVariant)), + this, SLOT(valueChanged(QByteArray,QVariant))); + + // don't delete, keep it for when property table cells are clicked + //delete m_object; m_object = 0; +} + +void EnginePane::addExpressionWatch(int debugId, const QString &expr) +{ + QmlDebugWatch *watch = m_client.addWatch(QmlDebugObjectReference(debugId), expr, this); + + QObject::connect(watch, SIGNAL(valueChanged(QByteArray,QVariant)), + this, SLOT(valueChanged(QByteArray,QVariant))); + m_watchTableModel->addWatch(watch, expr); + m_watchTable->resizeColumnsToContents(); +} + +void EnginePane::valueChanged(const QByteArray &propertyName, const QVariant &value) +{ + if (!m_object) + return; + + QmlDebugWatch *watch = qobject_cast(sender()); + + m_watchTableModel->updateWatch(watch, value); + + if (!propertyName.isEmpty()) { + QmlDebugObjectReference obj = m_object->object(); + if (obj.debugId() == watch->objectDebugId()) { + for (int ii=0; iirowCount(); ii++) { + if (m_propTable->item(ii, 0)->text() == propertyName) { + m_propTable->item(ii, 1)->setText(value.toString()); + break; + } + } + } + } +} + +void EnginePane::propertyDoubleClicked(QTableWidgetItem *item) +{ + if (!m_object || item->column() > 0) + return; + QList props = m_object->object().properties(); + if (item->row() < props.count()) { + bool watching = togglePropertyWatch(m_object->object(), props.at(item->row())); + if (watching) + item->setForeground(Qt::red); + else + item->setForeground(QBrush()); + } +} + +bool EnginePane::togglePropertyWatch(const QmlDebugObjectReference &object, const QmlDebugPropertyReference &property) +{ + QPair objProperty(object.debugId(), property.name()); + + if (m_watchedProps.contains(objProperty)) { + QmlDebugWatch *watch = m_watchedProps.take(objProperty); + m_watchTableModel->removeWatch(watch); + delete watch; + return false; + } else { + QmlDebugWatch *watch = m_client.addWatch(property, this); + m_watchedProps.insert(objProperty, watch); + QObject::connect(watch, SIGNAL(valueChanged(QByteArray,QVariant)), + this, SLOT(valueChanged(QByteArray,QVariant))); + QString desc = property.name() + + QLatin1String(" on\n") + + object.className() + + QLatin1String(": ") + + (object.name().isEmpty() ? QLatin1String("") : object.name()); + m_watchTableModel->addWatch(watch, desc); + m_watchTable->resizeColumnsToContents(); + return true; + } +} + +void EnginePane::watchedItemActivated(const QModelIndex &index) +{ + QmlDebugWatch *watch = m_watchTableModel->watchFromIndex(index); + if (!watch) + return; + QTreeWidgetItem *item = m_objTree->findItemByObjectId(watch->objectDebugId()); + if (item) { + m_objTree->setCurrentItem(item); + item->setExpanded(true); + } } void EnginePane::queryContext(int id) @@ -143,6 +519,7 @@ void EnginePane::contextChanged() dump(m_context->rootContext(), 0); foreach (const QmlDebugObjectReference &object, m_context->rootContext().objects()) fetchObject(object.debugId()); + delete m_context; m_context = 0; } @@ -175,17 +552,29 @@ void EnginePane::buildTree(const QmlDebugObjectReference &obj, QTreeWidgetItem * { if (!parent) m_objTree->clear(); - m_objTree->expandAll(); QTreeWidgetItem *item = parent ? new QTreeWidgetItem(parent) : new QTreeWidgetItem(m_objTree); item->setText(0, obj.className()); item->setData(0, Qt::UserRole, obj.debugId()); + item->setData(0, QmlObjectTree::ContextIdRole, obj.contextDebugId()); + + if (parent && obj.contextDebugId() >= 0 + && obj.contextDebugId() != parent->data(0, QmlObjectTree::ContextIdRole).toInt()) { + QmlDebugFileReference source = obj.source(); + if (!source.url().isEmpty()) { + QString toolTipString = QLatin1String("URL: ") + source.url().toString(); + item->setToolTip(0, toolTipString); + } + item->setForeground(0, QColor("orange")); + } else { + item->setExpanded(true); + } + + if (obj.contextDebugId() < 0) + item->setForeground(0, Qt::lightGray); for (int ii = 0; ii < obj.children().count(); ++ii) buildTree(obj.children().at(ii), item); - - if (!parent) - m_objTree->expandAll(); } void EnginePane::queryEngines() diff --git a/tools/qmldebugger/engine.h b/tools/qmldebugger/engine.h index 52f0608..b171df2 100644 --- a/tools/qmldebugger/engine.h +++ b/tools/qmldebugger/engine.h @@ -2,6 +2,7 @@ #define ENGINE_H #include +#include #include #include #include @@ -10,11 +11,20 @@ QT_BEGIN_NAMESPACE class QmlDebugConnection; +class QmlDebugPropertyReference; +class QmlDebugWatch; +class QmlObjectTree; class EngineClientPlugin; +class WatchTableModel; class QLineEdit; +class QModelIndex; class QTreeWidget; class QTreeWidgetItem; +class QTabWidget; class QTableWidget; +class QTableView; +class QTableWidgetItem; + class EnginePane : public QWidget { Q_OBJECT @@ -36,11 +46,18 @@ private slots: void itemClicked(QTreeWidgetItem *); void showProperties(); + void addExpressionWatch(int debugId, const QString &expr); + + void valueChanged(const QByteArray &property, const QVariant &value); + + void propertyDoubleClicked(QTableWidgetItem *); + void watchedItemActivated(const QModelIndex &index); private: void dump(const QmlDebugContextReference &, int); void dump(const QmlDebugObjectReference &, int); void buildTree(const QmlDebugObjectReference &, QTreeWidgetItem *parent); + bool togglePropertyWatch(const QmlDebugObjectReference &object, const QmlDebugPropertyReference &property); QmlEngineDebug m_client; QmlDebugEnginesQuery *m_engines; @@ -48,11 +65,17 @@ private: QmlDebugObjectQuery *m_object; QLineEdit *m_text; - QTreeWidget *m_objTree; + QmlObjectTree *m_objTree; + QTabWidget *m_tabs; QTableWidget *m_propTable; + QTableView *m_watchTable; QFxView *m_engineView; QList m_engineItems; + + QmlDebugWatch *m_watchedObject; + WatchTableModel *m_watchTableModel; + QHash< QPair, QPointer > m_watchedProps; }; QT_END_NAMESPACE -- cgit v0.12 From 1dfabbbb1b740060444a11cd894561aed3a884ad Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 23 Sep 2009 11:38:12 +1000 Subject: vector -> Qt.vector3d --- src/declarative/qml/qmlengine.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 2ea1bee..0efb5c8 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -250,8 +250,6 @@ void QmlEnginePrivate::init() scriptEngine.newFunction(QmlEnginePrivate::createQmlObject, 1)); scriptEngine.globalObject().setProperty(QLatin1String("createComponent"), scriptEngine.newFunction(QmlEnginePrivate::createComponent, 1)); - scriptEngine.globalObject().setProperty(QLatin1String("vector"), - scriptEngine.newFunction(QmlEnginePrivate::vector, 3)); if (QCoreApplication::instance()->thread() == q->thread() && QmlEngineDebugServer::isDebuggingEnabled()) { -- cgit v0.12 From a24183cc1df3f13b7ec7b4005a36bb58bcfeedb7 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 23 Sep 2009 12:41:27 +1000 Subject: Move test data into data/ subdir --- tests/auto/declarative/qmlbindengine/bindingLoop.txt | 14 -------------- .../qmlbindengine/boolPropertiesEvaluateAsBool.1.txt | 5 ----- .../qmlbindengine/boolPropertiesEvaluateAsBool.2.txt | 5 ----- .../declarative/qmlbindengine/data/bindingLoop.txt | 14 ++++++++++++++ .../data/boolPropertiesEvaluateAsBool.1.txt | 5 +++++ .../data/boolPropertiesEvaluateAsBool.2.txt | 5 +++++ .../qmlbindengine/data/deferredProperties.txt | 7 +++++++ .../auto/declarative/qmlbindengine/data/enums.1.qml | 20 ++++++++++++++++++++ .../qmlbindengine/data/extensionObjects.txt | 10 ++++++++++ .../qmlbindengine/data/idShortcutInvalidates.1.txt | 13 +++++++++++++ .../qmlbindengine/data/idShortcutInvalidates.txt | 12 ++++++++++++ .../declarative/qmlbindengine/data/methods.1.txt | 6 ++++++ .../declarative/qmlbindengine/data/methods.2.txt | 6 ++++++ .../qmlbindengine/data/signalAssignment.1.txt | 5 +++++ .../qmlbindengine/data/signalAssignment.2.txt | 5 +++++ .../declarative/qmlbindengine/deferredProperties.txt | 7 ------- tests/auto/declarative/qmlbindengine/enums.1.qml | 20 -------------------- .../declarative/qmlbindengine/extensionObjects.txt | 10 ---------- .../qmlbindengine/idShortcutInvalidates.1.txt | 13 ------------- .../qmlbindengine/idShortcutInvalidates.txt | 12 ------------ tests/auto/declarative/qmlbindengine/methods.1.txt | 6 ------ tests/auto/declarative/qmlbindengine/methods.2.txt | 6 ------ .../declarative/qmlbindengine/signalAssignment.1.txt | 5 ----- .../declarative/qmlbindengine/signalAssignment.2.txt | 5 ----- .../declarative/qmlbindengine/tst_qmlbindengine.cpp | 2 +- 25 files changed, 109 insertions(+), 109 deletions(-) delete mode 100644 tests/auto/declarative/qmlbindengine/bindingLoop.txt delete mode 100644 tests/auto/declarative/qmlbindengine/boolPropertiesEvaluateAsBool.1.txt delete mode 100644 tests/auto/declarative/qmlbindengine/boolPropertiesEvaluateAsBool.2.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/bindingLoop.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/deferredProperties.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/enums.1.qml create mode 100644 tests/auto/declarative/qmlbindengine/data/extensionObjects.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/methods.1.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/methods.2.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/signalAssignment.1.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/signalAssignment.2.txt delete mode 100644 tests/auto/declarative/qmlbindengine/deferredProperties.txt delete mode 100644 tests/auto/declarative/qmlbindengine/enums.1.qml delete mode 100644 tests/auto/declarative/qmlbindengine/extensionObjects.txt delete mode 100644 tests/auto/declarative/qmlbindengine/idShortcutInvalidates.1.txt delete mode 100644 tests/auto/declarative/qmlbindengine/idShortcutInvalidates.txt delete mode 100644 tests/auto/declarative/qmlbindengine/methods.1.txt delete mode 100644 tests/auto/declarative/qmlbindengine/methods.2.txt delete mode 100644 tests/auto/declarative/qmlbindengine/signalAssignment.1.txt delete mode 100644 tests/auto/declarative/qmlbindengine/signalAssignment.2.txt diff --git a/tests/auto/declarative/qmlbindengine/bindingLoop.txt b/tests/auto/declarative/qmlbindengine/bindingLoop.txt deleted file mode 100644 index 8b22dd1..0000000 --- a/tests/auto/declarative/qmlbindengine/bindingLoop.txt +++ /dev/null @@ -1,14 +0,0 @@ -import Qt.test 1.0 - -MyQmlContainer { - children : [ - MyQmlObject { - id: Object1 - stringProperty: "hello" + Object2.stringProperty - }, - MyQmlObject { - id: Object2 - stringProperty: "hello" + Object1.stringProperty - } - ] -} diff --git a/tests/auto/declarative/qmlbindengine/boolPropertiesEvaluateAsBool.1.txt b/tests/auto/declarative/qmlbindengine/boolPropertiesEvaluateAsBool.1.txt deleted file mode 100644 index 3147f63..0000000 --- a/tests/auto/declarative/qmlbindengine/boolPropertiesEvaluateAsBool.1.txt +++ /dev/null @@ -1,5 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - stringProperty: trueProperty?'pass':'fail' -} diff --git a/tests/auto/declarative/qmlbindengine/boolPropertiesEvaluateAsBool.2.txt b/tests/auto/declarative/qmlbindengine/boolPropertiesEvaluateAsBool.2.txt deleted file mode 100644 index c89bb49..0000000 --- a/tests/auto/declarative/qmlbindengine/boolPropertiesEvaluateAsBool.2.txt +++ /dev/null @@ -1,5 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - stringProperty: falseProperty?'fail':'pass' -} diff --git a/tests/auto/declarative/qmlbindengine/data/bindingLoop.txt b/tests/auto/declarative/qmlbindengine/data/bindingLoop.txt new file mode 100644 index 0000000..8b22dd1 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/bindingLoop.txt @@ -0,0 +1,14 @@ +import Qt.test 1.0 + +MyQmlContainer { + children : [ + MyQmlObject { + id: Object1 + stringProperty: "hello" + Object2.stringProperty + }, + MyQmlObject { + id: Object2 + stringProperty: "hello" + Object1.stringProperty + } + ] +} diff --git a/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.txt b/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.txt new file mode 100644 index 0000000..3147f63 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.txt @@ -0,0 +1,5 @@ +import Qt.test 1.0 + +MyQmlObject { + stringProperty: trueProperty?'pass':'fail' +} diff --git a/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.txt b/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.txt new file mode 100644 index 0000000..c89bb49 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.txt @@ -0,0 +1,5 @@ +import Qt.test 1.0 + +MyQmlObject { + stringProperty: falseProperty?'fail':'pass' +} diff --git a/tests/auto/declarative/qmlbindengine/data/deferredProperties.txt b/tests/auto/declarative/qmlbindengine/data/deferredProperties.txt new file mode 100644 index 0000000..9dabafe --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/deferredProperties.txt @@ -0,0 +1,7 @@ +import Qt.test 1.0 + +MyDeferredObject { + value: 10 + objectProperty: MyQmlObject {} + objectProperty2: MyQmlObject { id: blah } +} diff --git a/tests/auto/declarative/qmlbindengine/data/enums.1.qml b/tests/auto/declarative/qmlbindengine/data/enums.1.qml new file mode 100644 index 0000000..6351823 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/enums.1.qml @@ -0,0 +1,20 @@ +import Qt.test 1.0 +import Qt.test 1.0 as Namespace + +MyQmlObject { + // Enums from non-namespaced type + property int a: MyQmlObject.EnumValue1 + property int b: MyQmlObject.EnumValue2 + property int c: MyQmlObject.EnumValue3 + property int d: MyQmlObject.EnumValue4 + + // Enums from namespaced type + property int e: Namespace.MyQmlObject.EnumValue1 + property int f: Namespace.MyQmlObject.EnumValue2 + property int g: Namespace.MyQmlObject.EnumValue3 + property int h: Namespace.MyQmlObject.EnumValue4 + + // Test that enums don't mask attached properties + property int i: MyQmlObject.value + property int j: Namespace.MyQmlObject.value +} diff --git a/tests/auto/declarative/qmlbindengine/data/extensionObjects.txt b/tests/auto/declarative/qmlbindengine/data/extensionObjects.txt new file mode 100644 index 0000000..a902312 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/extensionObjects.txt @@ -0,0 +1,10 @@ +import Qt.test 1.0 + +MyExtendedObject +{ + baseProperty: baseExtendedProperty + baseExtendedProperty: 13 + + coreProperty: extendedProperty + extendedProperty: 9 +} diff --git a/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.txt b/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.txt new file mode 100644 index 0000000..ccb3a22 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.txt @@ -0,0 +1,13 @@ +import Qt.test 1.0 +import Qt 4.6 + +MyQmlObject { + objectProperty: if(1) OtherObject + + property var obj + + obj: Object { + id: OtherObject + } +} + diff --git a/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.txt b/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.txt new file mode 100644 index 0000000..6c1fca6 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.txt @@ -0,0 +1,12 @@ +import Qt.test 1.0 +import Qt 4.6 + +MyQmlObject { + objectProperty: OtherObject + + property var obj + + obj: Object { + id: OtherObject + } +} diff --git a/tests/auto/declarative/qmlbindengine/data/methods.1.txt b/tests/auto/declarative/qmlbindengine/data/methods.1.txt new file mode 100644 index 0000000..8ba300f --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/methods.1.txt @@ -0,0 +1,6 @@ +import Qt.test 1.0 + +MyQmlObject { + id: MyObject + onBasicSignal: MyObject.method() +} diff --git a/tests/auto/declarative/qmlbindengine/data/methods.2.txt b/tests/auto/declarative/qmlbindengine/data/methods.2.txt new file mode 100644 index 0000000..70911f7 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/methods.2.txt @@ -0,0 +1,6 @@ +import Qt.test 1.0 + +MyQmlObject { + id: MyObject + onBasicSignal: MyObject.method(163) +} diff --git a/tests/auto/declarative/qmlbindengine/data/signalAssignment.1.txt b/tests/auto/declarative/qmlbindengine/data/signalAssignment.1.txt new file mode 100644 index 0000000..fbd0914 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/signalAssignment.1.txt @@ -0,0 +1,5 @@ +import Qt.test 1.0 + +MyQmlObject { + onBasicSignal: setString('pass') +} diff --git a/tests/auto/declarative/qmlbindengine/data/signalAssignment.2.txt b/tests/auto/declarative/qmlbindengine/data/signalAssignment.2.txt new file mode 100644 index 0000000..8addcb9 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/signalAssignment.2.txt @@ -0,0 +1,5 @@ +import Qt.test 1.0 + +MyQmlObject { + onArgumentSignal: setString('pass ' + a + ' ' + b + ' ' + c) +} diff --git a/tests/auto/declarative/qmlbindengine/deferredProperties.txt b/tests/auto/declarative/qmlbindengine/deferredProperties.txt deleted file mode 100644 index 9dabafe..0000000 --- a/tests/auto/declarative/qmlbindengine/deferredProperties.txt +++ /dev/null @@ -1,7 +0,0 @@ -import Qt.test 1.0 - -MyDeferredObject { - value: 10 - objectProperty: MyQmlObject {} - objectProperty2: MyQmlObject { id: blah } -} diff --git a/tests/auto/declarative/qmlbindengine/enums.1.qml b/tests/auto/declarative/qmlbindengine/enums.1.qml deleted file mode 100644 index 6351823..0000000 --- a/tests/auto/declarative/qmlbindengine/enums.1.qml +++ /dev/null @@ -1,20 +0,0 @@ -import Qt.test 1.0 -import Qt.test 1.0 as Namespace - -MyQmlObject { - // Enums from non-namespaced type - property int a: MyQmlObject.EnumValue1 - property int b: MyQmlObject.EnumValue2 - property int c: MyQmlObject.EnumValue3 - property int d: MyQmlObject.EnumValue4 - - // Enums from namespaced type - property int e: Namespace.MyQmlObject.EnumValue1 - property int f: Namespace.MyQmlObject.EnumValue2 - property int g: Namespace.MyQmlObject.EnumValue3 - property int h: Namespace.MyQmlObject.EnumValue4 - - // Test that enums don't mask attached properties - property int i: MyQmlObject.value - property int j: Namespace.MyQmlObject.value -} diff --git a/tests/auto/declarative/qmlbindengine/extensionObjects.txt b/tests/auto/declarative/qmlbindengine/extensionObjects.txt deleted file mode 100644 index a902312..0000000 --- a/tests/auto/declarative/qmlbindengine/extensionObjects.txt +++ /dev/null @@ -1,10 +0,0 @@ -import Qt.test 1.0 - -MyExtendedObject -{ - baseProperty: baseExtendedProperty - baseExtendedProperty: 13 - - coreProperty: extendedProperty - extendedProperty: 9 -} diff --git a/tests/auto/declarative/qmlbindengine/idShortcutInvalidates.1.txt b/tests/auto/declarative/qmlbindengine/idShortcutInvalidates.1.txt deleted file mode 100644 index ccb3a22..0000000 --- a/tests/auto/declarative/qmlbindengine/idShortcutInvalidates.1.txt +++ /dev/null @@ -1,13 +0,0 @@ -import Qt.test 1.0 -import Qt 4.6 - -MyQmlObject { - objectProperty: if(1) OtherObject - - property var obj - - obj: Object { - id: OtherObject - } -} - diff --git a/tests/auto/declarative/qmlbindengine/idShortcutInvalidates.txt b/tests/auto/declarative/qmlbindengine/idShortcutInvalidates.txt deleted file mode 100644 index 6c1fca6..0000000 --- a/tests/auto/declarative/qmlbindengine/idShortcutInvalidates.txt +++ /dev/null @@ -1,12 +0,0 @@ -import Qt.test 1.0 -import Qt 4.6 - -MyQmlObject { - objectProperty: OtherObject - - property var obj - - obj: Object { - id: OtherObject - } -} diff --git a/tests/auto/declarative/qmlbindengine/methods.1.txt b/tests/auto/declarative/qmlbindengine/methods.1.txt deleted file mode 100644 index 8ba300f..0000000 --- a/tests/auto/declarative/qmlbindengine/methods.1.txt +++ /dev/null @@ -1,6 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - id: MyObject - onBasicSignal: MyObject.method() -} diff --git a/tests/auto/declarative/qmlbindengine/methods.2.txt b/tests/auto/declarative/qmlbindengine/methods.2.txt deleted file mode 100644 index 70911f7..0000000 --- a/tests/auto/declarative/qmlbindengine/methods.2.txt +++ /dev/null @@ -1,6 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - id: MyObject - onBasicSignal: MyObject.method(163) -} diff --git a/tests/auto/declarative/qmlbindengine/signalAssignment.1.txt b/tests/auto/declarative/qmlbindengine/signalAssignment.1.txt deleted file mode 100644 index fbd0914..0000000 --- a/tests/auto/declarative/qmlbindengine/signalAssignment.1.txt +++ /dev/null @@ -1,5 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - onBasicSignal: setString('pass') -} diff --git a/tests/auto/declarative/qmlbindengine/signalAssignment.2.txt b/tests/auto/declarative/qmlbindengine/signalAssignment.2.txt deleted file mode 100644 index 8addcb9..0000000 --- a/tests/auto/declarative/qmlbindengine/signalAssignment.2.txt +++ /dev/null @@ -1,5 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - onArgumentSignal: setString('pass ' + a + ' ' + b + ' ' + c) -} diff --git a/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp b/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp index 80373fe..2f2bb43 100644 --- a/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp +++ b/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp @@ -11,7 +11,7 @@ inline QUrl TEST_FILE(const QString &filename) { QFileInfo fileInfo(__FILE__); - return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath(filename)); + return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath("data/" + filename)); } inline QUrl TEST_FILE(const char *filename) -- cgit v0.12 From 11faf8ea7dbff1d81b6e5fbe7c907e5b06be1aa1 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 23 Sep 2009 12:51:48 +1000 Subject: Use .qml file extension in test --- .../declarative/qmlbindengine/data/bindingLoop.qml | 14 ++++++++++++++ .../declarative/qmlbindengine/data/bindingLoop.txt | 14 -------------- .../data/boolPropertiesEvaluateAsBool.1.qml | 5 +++++ .../data/boolPropertiesEvaluateAsBool.1.txt | 5 ----- .../data/boolPropertiesEvaluateAsBool.2.qml | 5 +++++ .../data/boolPropertiesEvaluateAsBool.2.txt | 5 ----- .../qmlbindengine/data/deferredProperties.qml | 7 +++++++ .../qmlbindengine/data/deferredProperties.txt | 7 ------- .../qmlbindengine/data/extensionObjects.qml | 10 ++++++++++ .../qmlbindengine/data/extensionObjects.txt | 10 ---------- .../qmlbindengine/data/idShortcutInvalidates.1.qml | 13 +++++++++++++ .../qmlbindengine/data/idShortcutInvalidates.1.txt | 13 ------------- .../qmlbindengine/data/idShortcutInvalidates.qml | 12 ++++++++++++ .../qmlbindengine/data/idShortcutInvalidates.txt | 12 ------------ .../declarative/qmlbindengine/data/methods.1.qml | 6 ++++++ .../declarative/qmlbindengine/data/methods.1.txt | 6 ------ .../declarative/qmlbindengine/data/methods.2.qml | 6 ++++++ .../declarative/qmlbindengine/data/methods.2.txt | 6 ------ .../qmlbindengine/data/signalAssignment.1.qml | 5 +++++ .../qmlbindengine/data/signalAssignment.1.txt | 5 ----- .../qmlbindengine/data/signalAssignment.2.qml | 5 +++++ .../qmlbindengine/data/signalAssignment.2.txt | 5 ----- .../qmlbindengine/tst_qmlbindengine.cpp | 22 +++++++++++----------- 23 files changed, 99 insertions(+), 99 deletions(-) create mode 100644 tests/auto/declarative/qmlbindengine/data/bindingLoop.qml delete mode 100644 tests/auto/declarative/qmlbindengine/data/bindingLoop.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.qml delete mode 100644 tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.qml delete mode 100644 tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/deferredProperties.qml delete mode 100644 tests/auto/declarative/qmlbindengine/data/deferredProperties.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/extensionObjects.qml delete mode 100644 tests/auto/declarative/qmlbindengine/data/extensionObjects.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.qml delete mode 100644 tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.qml delete mode 100644 tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/methods.1.qml delete mode 100644 tests/auto/declarative/qmlbindengine/data/methods.1.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/methods.2.qml delete mode 100644 tests/auto/declarative/qmlbindengine/data/methods.2.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/signalAssignment.1.qml delete mode 100644 tests/auto/declarative/qmlbindengine/data/signalAssignment.1.txt create mode 100644 tests/auto/declarative/qmlbindengine/data/signalAssignment.2.qml delete mode 100644 tests/auto/declarative/qmlbindengine/data/signalAssignment.2.txt diff --git a/tests/auto/declarative/qmlbindengine/data/bindingLoop.qml b/tests/auto/declarative/qmlbindengine/data/bindingLoop.qml new file mode 100644 index 0000000..8b22dd1 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/bindingLoop.qml @@ -0,0 +1,14 @@ +import Qt.test 1.0 + +MyQmlContainer { + children : [ + MyQmlObject { + id: Object1 + stringProperty: "hello" + Object2.stringProperty + }, + MyQmlObject { + id: Object2 + stringProperty: "hello" + Object1.stringProperty + } + ] +} diff --git a/tests/auto/declarative/qmlbindengine/data/bindingLoop.txt b/tests/auto/declarative/qmlbindengine/data/bindingLoop.txt deleted file mode 100644 index 8b22dd1..0000000 --- a/tests/auto/declarative/qmlbindengine/data/bindingLoop.txt +++ /dev/null @@ -1,14 +0,0 @@ -import Qt.test 1.0 - -MyQmlContainer { - children : [ - MyQmlObject { - id: Object1 - stringProperty: "hello" + Object2.stringProperty - }, - MyQmlObject { - id: Object2 - stringProperty: "hello" + Object1.stringProperty - } - ] -} diff --git a/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.qml b/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.qml new file mode 100644 index 0000000..3147f63 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.qml @@ -0,0 +1,5 @@ +import Qt.test 1.0 + +MyQmlObject { + stringProperty: trueProperty?'pass':'fail' +} diff --git a/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.txt b/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.txt deleted file mode 100644 index 3147f63..0000000 --- a/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.1.txt +++ /dev/null @@ -1,5 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - stringProperty: trueProperty?'pass':'fail' -} diff --git a/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.qml b/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.qml new file mode 100644 index 0000000..c89bb49 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.qml @@ -0,0 +1,5 @@ +import Qt.test 1.0 + +MyQmlObject { + stringProperty: falseProperty?'fail':'pass' +} diff --git a/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.txt b/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.txt deleted file mode 100644 index c89bb49..0000000 --- a/tests/auto/declarative/qmlbindengine/data/boolPropertiesEvaluateAsBool.2.txt +++ /dev/null @@ -1,5 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - stringProperty: falseProperty?'fail':'pass' -} diff --git a/tests/auto/declarative/qmlbindengine/data/deferredProperties.qml b/tests/auto/declarative/qmlbindengine/data/deferredProperties.qml new file mode 100644 index 0000000..9dabafe --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/deferredProperties.qml @@ -0,0 +1,7 @@ +import Qt.test 1.0 + +MyDeferredObject { + value: 10 + objectProperty: MyQmlObject {} + objectProperty2: MyQmlObject { id: blah } +} diff --git a/tests/auto/declarative/qmlbindengine/data/deferredProperties.txt b/tests/auto/declarative/qmlbindengine/data/deferredProperties.txt deleted file mode 100644 index 9dabafe..0000000 --- a/tests/auto/declarative/qmlbindengine/data/deferredProperties.txt +++ /dev/null @@ -1,7 +0,0 @@ -import Qt.test 1.0 - -MyDeferredObject { - value: 10 - objectProperty: MyQmlObject {} - objectProperty2: MyQmlObject { id: blah } -} diff --git a/tests/auto/declarative/qmlbindengine/data/extensionObjects.qml b/tests/auto/declarative/qmlbindengine/data/extensionObjects.qml new file mode 100644 index 0000000..a902312 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/extensionObjects.qml @@ -0,0 +1,10 @@ +import Qt.test 1.0 + +MyExtendedObject +{ + baseProperty: baseExtendedProperty + baseExtendedProperty: 13 + + coreProperty: extendedProperty + extendedProperty: 9 +} diff --git a/tests/auto/declarative/qmlbindengine/data/extensionObjects.txt b/tests/auto/declarative/qmlbindengine/data/extensionObjects.txt deleted file mode 100644 index a902312..0000000 --- a/tests/auto/declarative/qmlbindengine/data/extensionObjects.txt +++ /dev/null @@ -1,10 +0,0 @@ -import Qt.test 1.0 - -MyExtendedObject -{ - baseProperty: baseExtendedProperty - baseExtendedProperty: 13 - - coreProperty: extendedProperty - extendedProperty: 9 -} diff --git a/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.qml b/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.qml new file mode 100644 index 0000000..ccb3a22 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.qml @@ -0,0 +1,13 @@ +import Qt.test 1.0 +import Qt 4.6 + +MyQmlObject { + objectProperty: if(1) OtherObject + + property var obj + + obj: Object { + id: OtherObject + } +} + diff --git a/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.txt b/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.txt deleted file mode 100644 index ccb3a22..0000000 --- a/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.1.txt +++ /dev/null @@ -1,13 +0,0 @@ -import Qt.test 1.0 -import Qt 4.6 - -MyQmlObject { - objectProperty: if(1) OtherObject - - property var obj - - obj: Object { - id: OtherObject - } -} - diff --git a/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.qml b/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.qml new file mode 100644 index 0000000..6c1fca6 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.qml @@ -0,0 +1,12 @@ +import Qt.test 1.0 +import Qt 4.6 + +MyQmlObject { + objectProperty: OtherObject + + property var obj + + obj: Object { + id: OtherObject + } +} diff --git a/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.txt b/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.txt deleted file mode 100644 index 6c1fca6..0000000 --- a/tests/auto/declarative/qmlbindengine/data/idShortcutInvalidates.txt +++ /dev/null @@ -1,12 +0,0 @@ -import Qt.test 1.0 -import Qt 4.6 - -MyQmlObject { - objectProperty: OtherObject - - property var obj - - obj: Object { - id: OtherObject - } -} diff --git a/tests/auto/declarative/qmlbindengine/data/methods.1.qml b/tests/auto/declarative/qmlbindengine/data/methods.1.qml new file mode 100644 index 0000000..8ba300f --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/methods.1.qml @@ -0,0 +1,6 @@ +import Qt.test 1.0 + +MyQmlObject { + id: MyObject + onBasicSignal: MyObject.method() +} diff --git a/tests/auto/declarative/qmlbindengine/data/methods.1.txt b/tests/auto/declarative/qmlbindengine/data/methods.1.txt deleted file mode 100644 index 8ba300f..0000000 --- a/tests/auto/declarative/qmlbindengine/data/methods.1.txt +++ /dev/null @@ -1,6 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - id: MyObject - onBasicSignal: MyObject.method() -} diff --git a/tests/auto/declarative/qmlbindengine/data/methods.2.qml b/tests/auto/declarative/qmlbindengine/data/methods.2.qml new file mode 100644 index 0000000..70911f7 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/methods.2.qml @@ -0,0 +1,6 @@ +import Qt.test 1.0 + +MyQmlObject { + id: MyObject + onBasicSignal: MyObject.method(163) +} diff --git a/tests/auto/declarative/qmlbindengine/data/methods.2.txt b/tests/auto/declarative/qmlbindengine/data/methods.2.txt deleted file mode 100644 index 70911f7..0000000 --- a/tests/auto/declarative/qmlbindengine/data/methods.2.txt +++ /dev/null @@ -1,6 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - id: MyObject - onBasicSignal: MyObject.method(163) -} diff --git a/tests/auto/declarative/qmlbindengine/data/signalAssignment.1.qml b/tests/auto/declarative/qmlbindengine/data/signalAssignment.1.qml new file mode 100644 index 0000000..fbd0914 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/signalAssignment.1.qml @@ -0,0 +1,5 @@ +import Qt.test 1.0 + +MyQmlObject { + onBasicSignal: setString('pass') +} diff --git a/tests/auto/declarative/qmlbindengine/data/signalAssignment.1.txt b/tests/auto/declarative/qmlbindengine/data/signalAssignment.1.txt deleted file mode 100644 index fbd0914..0000000 --- a/tests/auto/declarative/qmlbindengine/data/signalAssignment.1.txt +++ /dev/null @@ -1,5 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - onBasicSignal: setString('pass') -} diff --git a/tests/auto/declarative/qmlbindengine/data/signalAssignment.2.qml b/tests/auto/declarative/qmlbindengine/data/signalAssignment.2.qml new file mode 100644 index 0000000..8addcb9 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/signalAssignment.2.qml @@ -0,0 +1,5 @@ +import Qt.test 1.0 + +MyQmlObject { + onArgumentSignal: setString('pass ' + a + ' ' + b + ' ' + c) +} diff --git a/tests/auto/declarative/qmlbindengine/data/signalAssignment.2.txt b/tests/auto/declarative/qmlbindengine/data/signalAssignment.2.txt deleted file mode 100644 index 8addcb9..0000000 --- a/tests/auto/declarative/qmlbindengine/data/signalAssignment.2.txt +++ /dev/null @@ -1,5 +0,0 @@ -import Qt.test 1.0 - -MyQmlObject { - onArgumentSignal: setString('pass ' + a + ' ' + b + ' ' + c) -} diff --git a/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp b/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp index 2f2bb43..c7d6a87 100644 --- a/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp +++ b/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp @@ -47,7 +47,7 @@ private: void tst_qmlbindengine::idShortcutInvalidates() { { - QmlComponent component(&engine, TEST_FILE("idShortcutInvalidates.txt")); + QmlComponent component(&engine, TEST_FILE("idShortcutInvalidates.qml")); MyQmlObject *object = qobject_cast(component.create()); QVERIFY(object != 0); QVERIFY(object->objectProperty() != 0); @@ -56,7 +56,7 @@ void tst_qmlbindengine::idShortcutInvalidates() } { - QmlComponent component(&engine, TEST_FILE("idShortcutInvalidates.1.txt")); + QmlComponent component(&engine, TEST_FILE("idShortcutInvalidates.1.qml")); MyQmlObject *object = qobject_cast(component.create()); QVERIFY(object != 0); QVERIFY(object->objectProperty() != 0); @@ -68,13 +68,13 @@ void tst_qmlbindengine::idShortcutInvalidates() void tst_qmlbindengine::boolPropertiesEvaluateAsBool() { { - QmlComponent component(&engine, TEST_FILE("boolPropertiesEvaluateAsBool.1.txt")); + QmlComponent component(&engine, TEST_FILE("boolPropertiesEvaluateAsBool.1.qml")); MyQmlObject *object = qobject_cast(component.create()); QVERIFY(object != 0); QCOMPARE(object->stringProperty(), QLatin1String("pass")); } { - QmlComponent component(&engine, TEST_FILE("boolPropertiesEvaluateAsBool.2.txt")); + QmlComponent component(&engine, TEST_FILE("boolPropertiesEvaluateAsBool.2.qml")); MyQmlObject *object = qobject_cast(component.create()); QVERIFY(object != 0); QCOMPARE(object->stringProperty(), QLatin1String("pass")); @@ -84,7 +84,7 @@ void tst_qmlbindengine::boolPropertiesEvaluateAsBool() void tst_qmlbindengine::signalAssignment() { { - QmlComponent component(&engine, TEST_FILE("signalAssignment.1.txt")); + QmlComponent component(&engine, TEST_FILE("signalAssignment.1.qml")); MyQmlObject *object = qobject_cast(component.create()); QVERIFY(object != 0); QCOMPARE(object->string(), QString()); @@ -93,7 +93,7 @@ void tst_qmlbindengine::signalAssignment() } { - QmlComponent component(&engine, TEST_FILE("signalAssignment.2.txt")); + QmlComponent component(&engine, TEST_FILE("signalAssignment.2.qml")); MyQmlObject *object = qobject_cast(component.create()); QVERIFY(object != 0); QCOMPARE(object->string(), QString()); @@ -105,7 +105,7 @@ void tst_qmlbindengine::signalAssignment() void tst_qmlbindengine::methods() { { - QmlComponent component(&engine, TEST_FILE("methods.1.txt")); + QmlComponent component(&engine, TEST_FILE("methods.1.qml")); MyQmlObject *object = qobject_cast(component.create()); QVERIFY(object != 0); QCOMPARE(object->methodCalled(), false); @@ -116,7 +116,7 @@ void tst_qmlbindengine::methods() } { - QmlComponent component(&engine, TEST_FILE("methods.2.txt")); + QmlComponent component(&engine, TEST_FILE("methods.2.qml")); MyQmlObject *object = qobject_cast(component.create()); QVERIFY(object != 0); QCOMPARE(object->methodCalled(), false); @@ -129,7 +129,7 @@ void tst_qmlbindengine::methods() void tst_qmlbindengine::bindingLoop() { - QmlComponent component(&engine, TEST_FILE("bindingLoop.txt")); + QmlComponent component(&engine, TEST_FILE("bindingLoop.qml")); QTest::ignoreMessage(QtWarningMsg, "QML MyQmlObject (unknown location): Binding loop detected for property \"stringProperty\" "); QObject *object = component.create(); QVERIFY(object != 0); @@ -337,7 +337,7 @@ void tst_qmlbindengine::objectPropertiesTriggerReeval() void tst_qmlbindengine::deferredProperties() { - QmlComponent component(&engine, TEST_FILE("deferredProperties.txt")); + QmlComponent component(&engine, TEST_FILE("deferredProperties.qml")); MyDeferredObject *object = qobject_cast(component.create()); QVERIFY(object != 0); @@ -354,7 +354,7 @@ void tst_qmlbindengine::deferredProperties() void tst_qmlbindengine::extensionObjects() { - QmlComponent component(&engine, TEST_FILE("extensionObjects.txt")); + QmlComponent component(&engine, TEST_FILE("extensionObjects.qml")); MyExtendedObject *object = qobject_cast(component.create()); QVERIFY(object != 0); -- cgit v0.12 From 267ab0cd6a1d7070a7139eda24eb372590603c01 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 23 Sep 2009 12:56:58 +1000 Subject: Compile --- src/declarative/qml/qmlwatcher.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/qml/qmlwatcher.cpp b/src/declarative/qml/qmlwatcher.cpp index eb00dfe..ca99472 100644 --- a/src/declarative/qml/qmlwatcher.cpp +++ b/src/declarative/qml/qmlwatcher.cpp @@ -180,4 +180,4 @@ void QmlWatcher::addPropertyWatch(int id, QObject *object, quint32 debugId, cons QT_END_NAMESPACE -#include "qmlwatch.moc" +#include "qmlwatcher.moc" -- cgit v0.12 From ecfe2b1cb35a8779bea5d23c0bb2c1b31939c01d Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 23 Sep 2009 13:02:57 +1000 Subject: Merge qmlengine and qmlbindengine tests --- .../qmlbindengine/data/valueTypeFunctions.qml | 6 ++ tests/auto/declarative/qmlbindengine/testtypes.cpp | 1 + tests/auto/declarative/qmlbindengine/testtypes.h | 67 +++++++++++++++ .../qmlbindengine/tst_qmlbindengine.cpp | 11 +++ tests/auto/declarative/qmlengine/functions.qml | 6 -- tests/auto/declarative/qmlengine/qmlengine.pro | 5 -- tests/auto/declarative/qmlengine/tst_qmlengine.cpp | 98 ---------------------- 7 files changed, 85 insertions(+), 109 deletions(-) create mode 100644 tests/auto/declarative/qmlbindengine/data/valueTypeFunctions.qml delete mode 100644 tests/auto/declarative/qmlengine/functions.qml delete mode 100644 tests/auto/declarative/qmlengine/qmlengine.pro delete mode 100644 tests/auto/declarative/qmlengine/tst_qmlengine.cpp diff --git a/tests/auto/declarative/qmlbindengine/data/valueTypeFunctions.qml b/tests/auto/declarative/qmlbindengine/data/valueTypeFunctions.qml new file mode 100644 index 0000000..33b4a68 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/data/valueTypeFunctions.qml @@ -0,0 +1,6 @@ +import Qt.test 1.0 + +MyTypeObject { + rectProperty: Qt.rect(0,0,100,100) + rectFProperty: Qt.rect(0,0.5,100,99.5) +} diff --git a/tests/auto/declarative/qmlbindengine/testtypes.cpp b/tests/auto/declarative/qmlbindengine/testtypes.cpp index 3ff05d7..22e3071 100644 --- a/tests/auto/declarative/qmlbindengine/testtypes.cpp +++ b/tests/auto/declarative/qmlbindengine/testtypes.cpp @@ -37,5 +37,6 @@ QML_DEFINE_TYPE(Qt.test, 1, 0, 0, MyDeferredObject,MyDeferredObject); QML_DEFINE_TYPE(Qt.test, 1, 0, 0, MyQmlContainer,MyQmlContainer); QML_DEFINE_EXTENDED_TYPE(Qt.test, 1, 0, 0, MyBaseExtendedObject,MyBaseExtendedObject,BaseExtensionObject); QML_DEFINE_EXTENDED_TYPE(Qt.test, 1, 0, 0, MyExtendedObject,MyExtendedObject,ExtensionObject); +QML_DEFINE_TYPE(Qt.test, 1, 0, 0, MyTypeObject, MyTypeObject); #include "testtypes.moc" diff --git a/tests/auto/declarative/qmlbindengine/testtypes.h b/tests/auto/declarative/qmlbindengine/testtypes.h index f27c0b0..f0302aa 100644 --- a/tests/auto/declarative/qmlbindengine/testtypes.h +++ b/tests/auto/declarative/qmlbindengine/testtypes.h @@ -4,6 +4,9 @@ #include #include #include +#include +#include +#include class MyQmlAttachedObject : public QObject { @@ -197,5 +200,69 @@ private: }; QML_DECLARE_TYPE(MyExtendedObject); +class MyTypeObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(QPoint pointProperty READ pointProperty WRITE setPointProperty); + Q_PROPERTY(QPointF pointFProperty READ pointFProperty WRITE setPointFProperty); + Q_PROPERTY(QSize sizeProperty READ sizeProperty WRITE setSizeProperty); + Q_PROPERTY(QSizeF sizeFProperty READ sizeFProperty WRITE setSizeFProperty); + Q_PROPERTY(QRect rectProperty READ rectProperty WRITE setRectProperty NOTIFY rectPropertyChanged); + Q_PROPERTY(QRectF rectFProperty READ rectFProperty WRITE setRectFProperty); + +public: + MyTypeObject() {} + + QPoint pointPropertyValue; + QPoint pointProperty() const { + return pointPropertyValue; + } + void setPointProperty(const QPoint &v) { + pointPropertyValue = v; + } + + QPointF pointFPropertyValue; + QPointF pointFProperty() const { + return pointFPropertyValue; + } + void setPointFProperty(const QPointF &v) { + pointFPropertyValue = v; + } + + QSize sizePropertyValue; + QSize sizeProperty() const { + return sizePropertyValue; + } + void setSizeProperty(const QSize &v) { + sizePropertyValue = v; + } + + QSizeF sizeFPropertyValue; + QSizeF sizeFProperty() const { + return sizeFPropertyValue; + } + void setSizeFProperty(const QSizeF &v) { + sizeFPropertyValue = v; + } + + QRect rectPropertyValue; + QRect rectProperty() const { + return rectPropertyValue; + } + void setRectProperty(const QRect &v) { + rectPropertyValue = v; + } + + QRectF rectFPropertyValue; + QRectF rectFProperty() const { + return rectFPropertyValue; + } + void setRectFProperty(const QRectF &v) { + rectFPropertyValue = v; + } + +}; +QML_DECLARE_TYPE(MyTypeObject); + #endif // TESTTYPES_H diff --git a/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp b/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp index c7d6a87..612220a 100644 --- a/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp +++ b/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp @@ -39,6 +39,7 @@ private slots: void deferredProperties(); void extensionObjects(); void enums(); + void valueTypeFunctions(); private: QmlEngine engine; @@ -385,6 +386,16 @@ void tst_qmlbindengine::enums() QCOMPARE(object->property("j").toInt(), 19); } +void tst_qmlbindengine::valueTypeFunctions() +{ + QmlComponent component(&engine, TEST_FILE("valueTypeFunctions.qml")); + MyTypeObject *obj = qobject_cast(component.create()); + QVERIFY(obj != 0); + QCOMPARE(obj->rectProperty(), QRect(0,0,100,100)); + QCOMPARE(obj->rectFProperty(), QRectF(0,0.5,100,99.5)); +} + + QTEST_MAIN(tst_qmlbindengine) #include "tst_qmlbindengine.moc" diff --git a/tests/auto/declarative/qmlengine/functions.qml b/tests/auto/declarative/qmlengine/functions.qml deleted file mode 100644 index 28e8ed4..0000000 --- a/tests/auto/declarative/qmlengine/functions.qml +++ /dev/null @@ -1,6 +0,0 @@ -import Test 1.0 - -MyTypeObject { - rectProperty: Qt.rect(0,0,100,100) - rectFProperty: Qt.rect(0,0.5,100,99.5) -} diff --git a/tests/auto/declarative/qmlengine/qmlengine.pro b/tests/auto/declarative/qmlengine/qmlengine.pro deleted file mode 100644 index 4ac81e9..0000000 --- a/tests/auto/declarative/qmlengine/qmlengine.pro +++ /dev/null @@ -1,5 +0,0 @@ -load(qttest_p4) -contains(QT_CONFIG,declarative): QT += declarative -SOURCES += tst_qmlengine.cpp - -DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qmlengine/tst_qmlengine.cpp b/tests/auto/declarative/qmlengine/tst_qmlengine.cpp deleted file mode 100644 index 8c050cb..0000000 --- a/tests/auto/declarative/qmlengine/tst_qmlengine.cpp +++ /dev/null @@ -1,98 +0,0 @@ -#include -#include -#include -#include - -#include -#include -#include - -class tst_qmlengine : public QObject -{ - Q_OBJECT -public: - tst_qmlengine() {} - -private slots: - void valueTypeFunctions(); - -private: - QmlEngine engine; -}; - -class MyTypeObject : public QObject -{ - Q_OBJECT - Q_PROPERTY(QPoint pointProperty READ pointProperty WRITE setPointProperty); - Q_PROPERTY(QPointF pointFProperty READ pointFProperty WRITE setPointFProperty); - Q_PROPERTY(QSize sizeProperty READ sizeProperty WRITE setSizeProperty); - Q_PROPERTY(QSizeF sizeFProperty READ sizeFProperty WRITE setSizeFProperty); - Q_PROPERTY(QRect rectProperty READ rectProperty WRITE setRectProperty NOTIFY rectPropertyChanged); - Q_PROPERTY(QRectF rectFProperty READ rectFProperty WRITE setRectFProperty); - -public: - MyTypeObject() {} - - QPoint pointPropertyValue; - QPoint pointProperty() const { - return pointPropertyValue; - } - void setPointProperty(const QPoint &v) { - pointPropertyValue = v; - } - - QPointF pointFPropertyValue; - QPointF pointFProperty() const { - return pointFPropertyValue; - } - void setPointFProperty(const QPointF &v) { - pointFPropertyValue = v; - } - - QSize sizePropertyValue; - QSize sizeProperty() const { - return sizePropertyValue; - } - void setSizeProperty(const QSize &v) { - sizePropertyValue = v; - } - - QSizeF sizeFPropertyValue; - QSizeF sizeFProperty() const { - return sizeFPropertyValue; - } - void setSizeFProperty(const QSizeF &v) { - sizeFPropertyValue = v; - } - - QRect rectPropertyValue; - QRect rectProperty() const { - return rectPropertyValue; - } - void setRectProperty(const QRect &v) { - rectPropertyValue = v; - } - - QRectF rectFPropertyValue; - QRectF rectFProperty() const { - return rectFPropertyValue; - } - void setRectFProperty(const QRectF &v) { - rectFPropertyValue = v; - } - -}; -QML_DECLARE_TYPE(MyTypeObject); -QML_DEFINE_TYPE(Test, 1, 0, 0, MyTypeObject, MyTypeObject); - -void tst_qmlengine::valueTypeFunctions() -{ - QmlComponent component(&engine, SRCDIR "/functions.qml"); - MyTypeObject *obj = qobject_cast(component.create()); - QCOMPARE(obj->rectProperty(), QRect(0,0,100,100)); - QCOMPARE(obj->rectFProperty(), QRectF(0,0.5,100,99.5)); -} - -QTEST_MAIN(tst_qmlengine) - -#include "tst_qmlengine.moc" -- cgit v0.12