diff options
67 files changed, 759 insertions, 401 deletions
diff --git a/demos/declarative/minehunt/minehunt.pro b/demos/declarative/minehunt/minehunt.pro index 43f68c3..41640f5 100644 --- a/demos/declarative/minehunt/minehunt.pro +++ b/demos/declarative/minehunt/minehunt.pro @@ -27,7 +27,7 @@ symbian:{ load(data_caging_paths) TARGET.EPOCALLOWDLLDATA = 1 include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) - + TARGET.CAPABILITY = NetworkServices ReadUserData importFiles.sources = minehunt.dll \ MinehuntCore/Explosion.qml \ MinehuntCore/pics \ diff --git a/src/declarative/graphicsitems/graphicsitems.pri b/src/declarative/graphicsitems/graphicsitems.pri index eab41e3..ad7ccb5 100644 --- a/src/declarative/graphicsitems/graphicsitems.pri +++ b/src/declarative/graphicsitems/graphicsitems.pri @@ -50,7 +50,8 @@ HEADERS += \ $$PWD/qdeclarativelistview_p.h \ $$PWD/qdeclarativelayoutitem_p.h \ $$PWD/qdeclarativeitemchangelistener_p.h \ - $$PWD/qdeclarativeeffects.cpp + $$PWD/qdeclarativeeffects.cpp \ + $$PWD/qdeclarativegraphicswidget_p.h SOURCES += \ $$PWD/qdeclarativeitemsmodule.cpp \ @@ -81,4 +82,5 @@ SOURCES += \ $$PWD/qdeclarativetextedit.cpp \ $$PWD/qdeclarativevisualitemmodel.cpp \ $$PWD/qdeclarativelistview.cpp \ - $$PWD/qdeclarativelayoutitem.cpp + $$PWD/qdeclarativelayoutitem.cpp \ + $$PWD/qdeclarativegraphicswidget.cpp diff --git a/src/declarative/graphicsitems/qdeclarativeanchors.cpp b/src/declarative/graphicsitems/qdeclarativeanchors.cpp index 7a7e5be..96d0867 100644 --- a/src/declarative/graphicsitems/qdeclarativeanchors.cpp +++ b/src/declarative/graphicsitems/qdeclarativeanchors.cpp @@ -55,30 +55,32 @@ QT_BEGIN_NAMESPACE //### const item? //local position -static qreal position(QDeclarativeItem *item, QDeclarativeAnchorLine::AnchorLine anchorLine) +static qreal position(QGraphicsObject *item, QDeclarativeAnchorLine::AnchorLine anchorLine) { qreal ret = 0.0; + QGraphicsItemPrivate *d = QGraphicsItemPrivate::get(item); switch(anchorLine) { case QDeclarativeAnchorLine::Left: ret = item->x(); break; case QDeclarativeAnchorLine::Right: - ret = item->x() + item->width(); + ret = item->x() + d->width(); break; case QDeclarativeAnchorLine::Top: ret = item->y(); break; case QDeclarativeAnchorLine::Bottom: - ret = item->y() + item->height(); + ret = item->y() + d->height(); break; case QDeclarativeAnchorLine::HCenter: - ret = item->x() + item->width()/2; + ret = item->x() + d->width()/2; break; case QDeclarativeAnchorLine::VCenter: - ret = item->y() + item->height()/2; + ret = item->y() + d->height()/2; break; case QDeclarativeAnchorLine::Baseline: - ret = item->y() + item->baselineOffset(); + if (d->isDeclarativeItem) + ret = item->y() + static_cast<QDeclarativeItem*>(item)->baselineOffset(); break; default: break; @@ -88,30 +90,32 @@ static qreal position(QDeclarativeItem *item, QDeclarativeAnchorLine::AnchorLine } //position when origin is 0,0 -static qreal adjustedPosition(QDeclarativeItem *item, QDeclarativeAnchorLine::AnchorLine anchorLine) +static qreal adjustedPosition(QGraphicsObject *item, QDeclarativeAnchorLine::AnchorLine anchorLine) { int ret = 0; + QGraphicsItemPrivate *d = QGraphicsItemPrivate::get(item); switch(anchorLine) { case QDeclarativeAnchorLine::Left: ret = 0; break; case QDeclarativeAnchorLine::Right: - ret = item->width(); + ret = d->width(); break; case QDeclarativeAnchorLine::Top: ret = 0; break; case QDeclarativeAnchorLine::Bottom: - ret = item->height(); + ret = d->height(); break; case QDeclarativeAnchorLine::HCenter: - ret = item->width()/2; + ret = d->width()/2; break; case QDeclarativeAnchorLine::VCenter: - ret = item->height()/2; + ret = d->height()/2; break; case QDeclarativeAnchorLine::Baseline: - ret = item->baselineOffset(); + if (d->isDeclarativeItem) + ret = static_cast<QDeclarativeItem*>(item)->baselineOffset(); break; default: break; @@ -136,7 +140,7 @@ QDeclarativeAnchors::QDeclarativeAnchors(QObject *parent) qFatal("QDeclarativeAnchors::QDeclarativeAnchors(QObject*) called"); } -QDeclarativeAnchors::QDeclarativeAnchors(QDeclarativeItem *item, QObject *parent) +QDeclarativeAnchors::QDeclarativeAnchors(QGraphicsObject *item, QObject *parent) : QObject(*new QDeclarativeAnchorsPrivate(item), parent) { } @@ -168,7 +172,8 @@ void QDeclarativeAnchorsPrivate::fillChanged() } else if (fill->parentItem() == item->parentItem()) { //siblings setItemPos(QPointF(fill->x()+leftMargin, fill->y()+topMargin)); } - setItemSize(QSizeF(fill->width()-leftMargin-rightMargin, fill->height()-topMargin-bottomMargin)); + QGraphicsItemPrivate *fillPrivate = QGraphicsItemPrivate::get(fill); + setItemSize(QSizeF(fillPrivate->width()-leftMargin-rightMargin, fillPrivate->height()-topMargin-bottomMargin)); --updatingFill; } else { @@ -185,16 +190,17 @@ void QDeclarativeAnchorsPrivate::centerInChanged() if (updatingCenterIn < 2) { ++updatingCenterIn; - + QGraphicsItemPrivate *itemPrivate = QGraphicsItemPrivate::get(item); if (centerIn == item->parentItem()) { - QPointF p((item->parentItem()->width() - item->width()) / 2. + hCenterOffset, - (item->parentItem()->height() - item->height()) / 2. + vCenterOffset); + QGraphicsItemPrivate *parentPrivate = QGraphicsItemPrivate::get(item->parentItem()); + QPointF p((parentPrivate->width() - itemPrivate->width()) / 2. + hCenterOffset, + (parentPrivate->height() - itemPrivate->height()) / 2. + vCenterOffset); setItemPos(p); } else if (centerIn->parentItem() == item->parentItem()) { - - QPointF p(centerIn->x() + (centerIn->width() - item->width()) / 2. + hCenterOffset, - centerIn->y() + (centerIn->height() - item->height()) / 2. + vCenterOffset); + QGraphicsItemPrivate *centerPrivate = QGraphicsItemPrivate::get(centerIn); + QPointF p(centerIn->x() + (centerPrivate->width() - itemPrivate->width()) / 2. + hCenterOffset, + centerIn->y() + (centerPrivate->height() - itemPrivate->height()) / 2. + vCenterOffset); setItemPos(p); } @@ -205,7 +211,7 @@ void QDeclarativeAnchorsPrivate::centerInChanged() } } -void QDeclarativeAnchorsPrivate::clearItem(QDeclarativeItem *item) +void QDeclarativeAnchorsPrivate::clearItem(QGraphicsObject *item) { if (!item) return; @@ -243,22 +249,38 @@ void QDeclarativeAnchorsPrivate::clearItem(QDeclarativeItem *item) } } -void QDeclarativeAnchorsPrivate::addDepend(QDeclarativeItem *item) +void QDeclarativeAnchorsPrivate::addDepend(QGraphicsObject *item) { if (!item) return; - QDeclarativeItemPrivate *p = - static_cast<QDeclarativeItemPrivate *>(QGraphicsItemPrivate::get(item)); - p->addItemChangeListener(this, QDeclarativeItemPrivate::Geometry); + QGraphicsItemPrivate * itemPrivate = QGraphicsItemPrivate::get(item); + if (itemPrivate->isDeclarativeItem) { + QDeclarativeItemPrivate *p = + static_cast<QDeclarativeItemPrivate *>(QGraphicsItemPrivate::get(item)); + p->addItemChangeListener(this, QDeclarativeItemPrivate::Geometry); + } else if(itemPrivate->isWidget) { + Q_Q(QDeclarativeAnchors); + QGraphicsWidget *widget = static_cast<QGraphicsWidget *>(item); + QObject::connect(widget, SIGNAL(destroyed(QObject *)), q, SLOT(_q_widgetDestroyed(QObject *))); + QObject::connect(widget, SIGNAL(geometryChanged()), q, SLOT(_q_widgetGeometryChanged())); + } } -void QDeclarativeAnchorsPrivate::remDepend(QDeclarativeItem *item) +void QDeclarativeAnchorsPrivate::remDepend(QGraphicsObject *item) { if (!item) return; - QDeclarativeItemPrivate *p = - static_cast<QDeclarativeItemPrivate *>(QGraphicsItemPrivate::get(item)); - p->removeItemChangeListener(this, QDeclarativeItemPrivate::Geometry); + QGraphicsItemPrivate * itemPrivate = QGraphicsItemPrivate::get(item); + if (itemPrivate->isDeclarativeItem) { + QDeclarativeItemPrivate *p = + static_cast<QDeclarativeItemPrivate *>(itemPrivate); + p->removeItemChangeListener(this, QDeclarativeItemPrivate::Geometry); + } else if(itemPrivate->isWidget) { + Q_Q(QDeclarativeAnchors); + QGraphicsWidget *widget = static_cast<QGraphicsWidget *>(item); + QObject::disconnect(widget, SIGNAL(destroyed(QObject *)), q, SLOT(_q_widgetDestroyed(QObject *))); + QObject::disconnect(widget, SIGNAL(geometryChanged()), q, SLOT(_q_widgetGeometryChanged())); + } } bool QDeclarativeAnchorsPrivate::isItemComplete() const @@ -281,14 +303,14 @@ void QDeclarativeAnchors::componentComplete() void QDeclarativeAnchorsPrivate::setItemHeight(qreal v) { updatingMe = true; - item->setHeight(v); + QGraphicsItemPrivate::get(item)->setHeight(v); updatingMe = false; } void QDeclarativeAnchorsPrivate::setItemWidth(qreal v) { updatingMe = true; - item->setWidth(v); + QGraphicsItemPrivate::get(item)->setWidth(v); updatingMe = false; } @@ -316,7 +338,10 @@ void QDeclarativeAnchorsPrivate::setItemPos(const QPointF &v) void QDeclarativeAnchorsPrivate::setItemSize(const QSizeF &v) { updatingMe = true; - item->setSize(v); + if(QGraphicsItemPrivate::get(item)->isWidget) + static_cast<QGraphicsWidget *>(item)->resize(v); + else if (QGraphicsItemPrivate::get(item)->isDeclarativeItem) + static_cast<QDeclarativeItem *>(item)->setSize(v); updatingMe = false; } @@ -341,24 +366,36 @@ void QDeclarativeAnchorsPrivate::updateOnComplete() updateVerticalAnchors(); } -void QDeclarativeAnchorsPrivate::itemGeometryChanged(QDeclarativeItem *, const QRectF &newG, const QRectF &oldG) +void QDeclarativeAnchorsPrivate::_q_widgetDestroyed(QObject *obj) +{ + clearItem(qobject_cast<QGraphicsObject*>(obj)); +} + +void QDeclarativeAnchorsPrivate::_q_widgetGeometryChanged() { fillChanged(); centerInChanged(); + updateHorizontalAnchors(); + updateVerticalAnchors(); +} +void QDeclarativeAnchorsPrivate::itemGeometryChanged(QDeclarativeItem *, const QRectF &newG, const QRectF &oldG) +{ + fillChanged(); + centerInChanged(); if (newG.x() != oldG.x() || newG.width() != oldG.width()) updateHorizontalAnchors(); if (newG.y() != oldG.y() || newG.height() != oldG.height()) updateVerticalAnchors(); } -QDeclarativeItem *QDeclarativeAnchors::fill() const +QGraphicsObject *QDeclarativeAnchors::fill() const { Q_D(const QDeclarativeAnchors); return d->fill; } -void QDeclarativeAnchors::setFill(QDeclarativeItem *f) +void QDeclarativeAnchors::setFill(QGraphicsObject *f) { Q_D(QDeclarativeAnchors); if (d->fill == f) @@ -386,13 +423,13 @@ void QDeclarativeAnchors::resetFill() setFill(0); } -QDeclarativeItem *QDeclarativeAnchors::centerIn() const +QGraphicsObject *QDeclarativeAnchors::centerIn() const { Q_D(const QDeclarativeAnchors); return d->centerIn; } -void QDeclarativeAnchors::setCenterIn(QDeclarativeItem* c) +void QDeclarativeAnchors::setCenterIn(QGraphicsObject* c) { Q_D(QDeclarativeAnchors); if (d->centerIn == c) @@ -439,10 +476,10 @@ bool QDeclarativeAnchorsPrivate::calcStretch(const QDeclarativeAnchorLine &edge1 - ((int)position(edge1.item, edge1.anchorLine) + offset1); } else if (edge2IsParent && edge1IsSibling) { stretch = ((int)position(edge2.item, edge2.anchorLine) + offset2) - - ((int)position(item->parentItem(), line) + - ((int)position(item->parentObject(), line) + (int)position(edge1.item, edge1.anchorLine) + offset1); } else if (edge2IsSibling && edge1IsParent) { - stretch = ((int)position(item->parentItem(), line) + (int)position(edge2.item, edge2.anchorLine) + offset2) + stretch = ((int)position(item->parentObject(), line) + (int)position(edge2.item, edge2.anchorLine) + offset2) - ((int)position(edge1.item, edge1.anchorLine) + offset1); } else invalid = true; @@ -457,6 +494,7 @@ void QDeclarativeAnchorsPrivate::updateVerticalAnchors() if (updatingVerticalAnchor < 2) { ++updatingVerticalAnchor; + QGraphicsItemPrivate *itemPrivate = QGraphicsItemPrivate::get(item); if (usedAnchors & QDeclarativeAnchors::HasTopAnchor) { //Handle stretching bool invalid = true; @@ -488,9 +526,9 @@ void QDeclarativeAnchorsPrivate::updateVerticalAnchors() //Handle bottom if (bottom.item == item->parentItem()) { - setItemY(adjustedPosition(bottom.item, bottom.anchorLine) - item->height() - bottomMargin); + setItemY(adjustedPosition(bottom.item, bottom.anchorLine) - itemPrivate->height() - bottomMargin); } else if (bottom.item->parentItem() == item->parentItem()) { - setItemY(position(bottom.item, bottom.anchorLine) - item->height() - bottomMargin); + setItemY(position(bottom.item, bottom.anchorLine) - itemPrivate->height() - bottomMargin); } } else if (usedAnchors & QDeclarativeAnchors::HasVCenterAnchor) { //(stetching handled above) @@ -498,18 +536,20 @@ void QDeclarativeAnchorsPrivate::updateVerticalAnchors() //Handle vCenter if (vCenter.item == item->parentItem()) { setItemY(adjustedPosition(vCenter.item, vCenter.anchorLine) - - item->height()/2 + vCenterOffset); + - itemPrivate->height()/2 + vCenterOffset); } else if (vCenter.item->parentItem() == item->parentItem()) { - setItemY(position(vCenter.item, vCenter.anchorLine) - item->height()/2 + vCenterOffset); + setItemY(position(vCenter.item, vCenter.anchorLine) - itemPrivate->height()/2 + vCenterOffset); } } else if (usedAnchors & QDeclarativeAnchors::HasBaselineAnchor) { //Handle baseline if (baseline.item == item->parentItem()) { - setItemY(adjustedPosition(baseline.item, baseline.anchorLine) - - item->baselineOffset() + baselineOffset); + if (itemPrivate->isDeclarativeItem) + setItemY(adjustedPosition(baseline.item, baseline.anchorLine) + - static_cast<QDeclarativeItem *>(item)->baselineOffset() + baselineOffset); } else if (baseline.item->parentItem() == item->parentItem()) { - setItemY(position(baseline.item, baseline.anchorLine) - - item->baselineOffset() + baselineOffset); + if (itemPrivate->isDeclarativeItem) + setItemY(position(baseline.item, baseline.anchorLine) + - static_cast<QDeclarativeItem *>(item)->baselineOffset() + baselineOffset); } } --updatingVerticalAnchor; @@ -526,7 +566,7 @@ void QDeclarativeAnchorsPrivate::updateHorizontalAnchors() if (updatingHorizontalAnchor < 2) { ++updatingHorizontalAnchor; - + QGraphicsItemPrivate *itemPrivate = QGraphicsItemPrivate::get(item); if (usedAnchors & QDeclarativeAnchors::HasLeftAnchor) { //Handle stretching bool invalid = true; @@ -558,16 +598,16 @@ void QDeclarativeAnchorsPrivate::updateHorizontalAnchors() //Handle right if (right.item == item->parentItem()) { - setItemX(adjustedPosition(right.item, right.anchorLine) - item->width() - rightMargin); + setItemX(adjustedPosition(right.item, right.anchorLine) - itemPrivate->width() - rightMargin); } else if (right.item->parentItem() == item->parentItem()) { - setItemX(position(right.item, right.anchorLine) - item->width() - rightMargin); + setItemX(position(right.item, right.anchorLine) - itemPrivate->width() - rightMargin); } } else if (usedAnchors & QDeclarativeAnchors::HasHCenterAnchor) { //Handle hCenter if (hCenter.item == item->parentItem()) { - setItemX(adjustedPosition(hCenter.item, hCenter.anchorLine) - item->width()/2 + hCenterOffset); + setItemX(adjustedPosition(hCenter.item, hCenter.anchorLine) - itemPrivate->width()/2 + hCenterOffset); } else if (hCenter.item->parentItem() == item->parentItem()) { - setItemX(position(hCenter.item, hCenter.anchorLine) - item->width()/2 + hCenterOffset); + setItemX(position(hCenter.item, hCenter.anchorLine) - itemPrivate->width()/2 + hCenterOffset); } } diff --git a/src/declarative/graphicsitems/qdeclarativeanchors_p.h b/src/declarative/graphicsitems/qdeclarativeanchors_p.h index 0b97e8c..f2e57cc 100644 --- a/src/declarative/graphicsitems/qdeclarativeanchors_p.h +++ b/src/declarative/graphicsitems/qdeclarativeanchors_p.h @@ -75,12 +75,12 @@ class Q_DECLARATIVE_EXPORT QDeclarativeAnchors : public QObject Q_PROPERTY(qreal bottomMargin READ bottomMargin WRITE setBottomMargin NOTIFY bottomMarginChanged) Q_PROPERTY(qreal verticalCenterOffset READ verticalCenterOffset WRITE setVerticalCenterOffset NOTIFY verticalCenterOffsetChanged()) Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged()) - Q_PROPERTY(QDeclarativeItem *fill READ fill WRITE setFill RESET resetFill NOTIFY fillChanged) - Q_PROPERTY(QDeclarativeItem *centerIn READ centerIn WRITE setCenterIn RESET resetCenterIn NOTIFY centerInChanged) + Q_PROPERTY(QGraphicsObject *fill READ fill WRITE setFill RESET resetFill NOTIFY fillChanged) + Q_PROPERTY(QGraphicsObject *centerIn READ centerIn WRITE setCenterIn RESET resetCenterIn NOTIFY centerInChanged) public: QDeclarativeAnchors(QObject *parent=0); - QDeclarativeAnchors(QDeclarativeItem *item, QObject *parent=0); + QDeclarativeAnchors(QGraphicsObject *item, QObject *parent=0); virtual ~QDeclarativeAnchors(); enum UsedAnchor { @@ -148,12 +148,12 @@ public: qreal baselineOffset() const; void setBaselineOffset(qreal); - QDeclarativeItem *fill() const; - void setFill(QDeclarativeItem *); + QGraphicsObject *fill() const; + void setFill(QGraphicsObject *); void resetFill(); - QDeclarativeItem *centerIn() const; - void setCenterIn(QDeclarativeItem *); + QGraphicsObject *centerIn() const; + void setCenterIn(QGraphicsObject *); void resetCenterIn(); UsedAnchors usedAnchors() const; @@ -182,8 +182,11 @@ Q_SIGNALS: private: friend class QDeclarativeItem; + friend class QDeclarativeGraphicsWidget; Q_DISABLE_COPY(QDeclarativeAnchors) Q_DECLARE_PRIVATE(QDeclarativeAnchors) + Q_PRIVATE_SLOT(d_func(), void _q_widgetGeometryChanged()) + Q_PRIVATE_SLOT(d_func(), void _q_widgetDestroyed(QObject *obj)) }; Q_DECLARE_OPERATORS_FOR_FLAGS(QDeclarativeAnchors::UsedAnchors) diff --git a/src/declarative/graphicsitems/qdeclarativeanchors_p_p.h b/src/declarative/graphicsitems/qdeclarativeanchors_p_p.h index 4cadb43..f8489aa 100644 --- a/src/declarative/graphicsitems/qdeclarativeanchors_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativeanchors_p_p.h @@ -77,7 +77,7 @@ public: Vertical_Mask = Top | Bottom | VCenter | Baseline }; - QDeclarativeItem *item; + QGraphicsObject *item; AnchorLine anchorLine; }; @@ -90,7 +90,7 @@ class QDeclarativeAnchorsPrivate : public QObjectPrivate, public QDeclarativeIte { Q_DECLARE_PUBLIC(QDeclarativeAnchors) public: - QDeclarativeAnchorsPrivate(QDeclarativeItem *i) + QDeclarativeAnchorsPrivate(QGraphicsObject *i) : componentComplete(true), updatingMe(false), updatingHorizontalAnchor(0), updatingVerticalAnchor(0), updatingFill(0), updatingCenterIn(0), item(i), usedAnchors(0), fill(0), centerIn(0), leftMargin(0), rightMargin(0), topMargin(0), bottomMargin(0), @@ -98,10 +98,10 @@ public: { } - void clearItem(QDeclarativeItem *); + void clearItem(QGraphicsObject *); - void addDepend(QDeclarativeItem *); - void remDepend(QDeclarativeItem *); + void addDepend(QGraphicsObject *); + void remDepend(QGraphicsObject *); bool isItemComplete() const; bool componentComplete:1; @@ -123,6 +123,8 @@ public: // QDeclarativeItemGeometryListener interface void itemGeometryChanged(QDeclarativeItem *, const QRectF &, const QRectF &); + void _q_widgetDestroyed(QObject *); + void _q_widgetGeometryChanged(); QDeclarativeAnchorsPrivate *anchorPrivate() { return this; } bool checkHValid() const; @@ -136,11 +138,11 @@ public: void fillChanged(); void centerInChanged(); - QDeclarativeItem *item; + QGraphicsObject *item; QDeclarativeAnchors::UsedAnchors usedAnchors; - QDeclarativeItem *fill; - QDeclarativeItem *centerIn; + QGraphicsObject *fill; + QGraphicsObject *centerIn; QDeclarativeAnchorLine left; QDeclarativeAnchorLine right; diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index fc7a87b..951b171 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -816,6 +816,8 @@ void QDeclarativeFlickable::wheelEvent(QGraphicsSceneWheelEvent *event) d->vData.velocity = qMin(event->delta() - d->vData.smoothVelocity.value(), qreal(-250.0)); d->flicked = false; d->flickY(d->vData.velocity); + if (d->flicked) + movementStarting(); event->accept(); } else if (xflick()) { if (event->delta() > 0) @@ -824,6 +826,8 @@ void QDeclarativeFlickable::wheelEvent(QGraphicsSceneWheelEvent *event) d->hData.velocity = qMin(event->delta() - d->hData.smoothVelocity.value(), qreal(-250.0)); d->flicked = false; d->flickX(d->hData.velocity); + if (d->flicked) + movementStarting(); event->accept(); } else { QDeclarativeItem::wheelEvent(event); diff --git a/src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp b/src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp new file mode 100644 index 0000000..ee45406 --- /dev/null +++ b/src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp @@ -0,0 +1,144 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qdeclarativegraphicswidget_p.h" +#include "private/qdeclarativeanchors_p.h" +#include "private/qdeclarativeitem_p.h" +#include "private/qdeclarativeanchors_p_p.h" + +QT_BEGIN_NAMESPACE + +class QDeclarativeGraphicsWidgetPrivate : public QObjectPrivate { + Q_DECLARE_PUBLIC(QDeclarativeGraphicsWidget) +public : + QDeclarativeGraphicsWidgetPrivate() : + _anchors(0), _anchorLines(0) + {} + QDeclarativeItemPrivate::AnchorLines *anchorLines() const; + QDeclarativeAnchors *_anchors; + mutable QDeclarativeItemPrivate::AnchorLines *_anchorLines; +}; + +QDeclarativeGraphicsWidget::QDeclarativeGraphicsWidget(QObject *parent) : + QObject(*new QDeclarativeGraphicsWidgetPrivate, parent) +{ +} +QDeclarativeGraphicsWidget::~QDeclarativeGraphicsWidget() +{ + Q_D(QDeclarativeGraphicsWidget); + delete d->_anchorLines; d->_anchorLines = 0; + delete d->_anchors; d->_anchors = 0; +} + +/*! \internal */ +QDeclarativeAnchors *QDeclarativeGraphicsWidget::anchors() +{ + Q_D(QDeclarativeGraphicsWidget); + if (!d->_anchors) + d->_anchors = new QDeclarativeAnchors(static_cast<QGraphicsObject *>(parent())); + return d->_anchors; +} + +QDeclarativeItemPrivate::AnchorLines *QDeclarativeGraphicsWidgetPrivate::anchorLines() const +{ + Q_Q(const QDeclarativeGraphicsWidget); + if (!_anchorLines) + _anchorLines = new QDeclarativeItemPrivate::AnchorLines(static_cast<QGraphicsObject *>(q->parent())); + return _anchorLines; +} + +/*! + \internal +*/ +QDeclarativeAnchorLine QDeclarativeGraphicsWidget::left() const +{ + Q_D(const QDeclarativeGraphicsWidget); + return d->anchorLines()->left; +} + +/*! + \internal +*/ +QDeclarativeAnchorLine QDeclarativeGraphicsWidget::right() const +{ + Q_D(const QDeclarativeGraphicsWidget); + return d->anchorLines()->right; +} + +/*! + \internal +*/ +QDeclarativeAnchorLine QDeclarativeGraphicsWidget::horizontalCenter() const +{ + Q_D(const QDeclarativeGraphicsWidget); + return d->anchorLines()->hCenter; +} + +/*! + \internal +*/ +QDeclarativeAnchorLine QDeclarativeGraphicsWidget::top() const +{ + Q_D(const QDeclarativeGraphicsWidget); + return d->anchorLines()->top; +} + +/*! + \internal +*/ +QDeclarativeAnchorLine QDeclarativeGraphicsWidget::bottom() const +{ + Q_D(const QDeclarativeGraphicsWidget); + return d->anchorLines()->bottom; +} + +/*! + \internal +*/ +QDeclarativeAnchorLine QDeclarativeGraphicsWidget::verticalCenter() const +{ + Q_D(const QDeclarativeGraphicsWidget); + return d->anchorLines()->vCenter; +} + +QT_END_NAMESPACE + +#include <moc_qdeclarativegraphicswidget_p.cpp> diff --git a/src/declarative/graphicsitems/qdeclarativegraphicswidget_p.h b/src/declarative/graphicsitems/qdeclarativegraphicswidget_p.h new file mode 100644 index 0000000..987303e --- /dev/null +++ b/src/declarative/graphicsitems/qdeclarativegraphicswidget_p.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QDECLARATIVEGRAPHICSWIDGET_P_H +#define QDECLARATIVEGRAPHICSWIDGET_P_H + +#include <QObject> +#include <QtDeclarative/qdeclarativecomponent.h> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QDeclarativeAnchorLine; +class QDeclarativeAnchors; +class QGraphicsObject; +class QDeclarativeGraphicsWidgetPrivate; + +// ### TODO can the extension object be the anchor directly? We save one allocation -> awesome. +class QDeclarativeGraphicsWidget : public QObject +{ + Q_OBJECT + Q_PROPERTY(QDeclarativeAnchors * anchors READ anchors DESIGNABLE false CONSTANT FINAL) + Q_PROPERTY(QDeclarativeAnchorLine left READ left CONSTANT FINAL) + Q_PROPERTY(QDeclarativeAnchorLine right READ right CONSTANT FINAL) + Q_PROPERTY(QDeclarativeAnchorLine horizontalCenter READ horizontalCenter CONSTANT FINAL) + Q_PROPERTY(QDeclarativeAnchorLine top READ top CONSTANT FINAL) + Q_PROPERTY(QDeclarativeAnchorLine bottom READ bottom CONSTANT FINAL) + Q_PROPERTY(QDeclarativeAnchorLine verticalCenter READ verticalCenter CONSTANT FINAL) + // ### TODO : QGraphicsWidget don't have a baseline concept yet. + //Q_PROPERTY(QDeclarativeAnchorLine baseline READ baseline CONSTANT FINAL) +public: + QDeclarativeGraphicsWidget(QObject *parent = 0); + ~QDeclarativeGraphicsWidget(); + QDeclarativeAnchors *anchors(); + QDeclarativeAnchorLine left() const; + QDeclarativeAnchorLine right() const; + QDeclarativeAnchorLine horizontalCenter() const; + QDeclarativeAnchorLine top() const; + QDeclarativeAnchorLine bottom() const; + QDeclarativeAnchorLine verticalCenter() const; + Q_DISABLE_COPY(QDeclarativeGraphicsWidget) + Q_DECLARE_PRIVATE(QDeclarativeGraphicsWidget) +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QDECLARATIVEGRAPHICSWIDGET_P_H diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp index 5cd6de4..562ba2a 100644 --- a/src/declarative/graphicsitems/qdeclarativegridview.cpp +++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp @@ -936,10 +936,10 @@ QDeclarativeGridView::~QDeclarativeGridView() id: myDelegate Item { id: wrapper - SequentialAnimation on GridView.onRemove { - PropertyAction { target: wrapper.GridView; property: "delayRemove"; value: true } + GridView.onRemove: SequentialAnimation { + PropertyAction { target: wrapper; property: "GridView.delayRemove"; value: true } NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing.type: "InOutQuad" } - PropertyAction { target: wrapper.GridView; property: "delayRemove"; value: false } + PropertyAction { target: wrapper; property: "GridView.delayRemove"; value: false } } } } diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index 55a81f4..86dbaf0 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -2507,7 +2507,7 @@ QDeclarativeStateGroup *QDeclarativeItemPrivate::states() return _stateGroup; } -QDeclarativeItemPrivate::AnchorLines::AnchorLines(QDeclarativeItem *q) +QDeclarativeItemPrivate::AnchorLines::AnchorLines(QGraphicsObject *q) { left.item = q; left.anchorLine = QDeclarativeAnchorLine::Left; diff --git a/src/declarative/graphicsitems/qdeclarativeitem_p.h b/src/declarative/graphicsitems/qdeclarativeitem_p.h index 2607137..cf138c3 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem_p.h +++ b/src/declarative/graphicsitems/qdeclarativeitem_p.h @@ -120,6 +120,7 @@ public: mWidth(0), mHeight(0), implicitWidth(0), implicitHeight(0) { QGraphicsItemPrivate::acceptedMouseButtons = 0; + isDeclarativeItem = 1; QGraphicsItemPrivate::flags = QGraphicsItem::GraphicsItemFlags( QGraphicsItem::ItemHasNoContents | QGraphicsItem::ItemIsFocusable @@ -183,7 +184,7 @@ public: QDeclarativeNullableValue<qreal> _baselineOffset; struct AnchorLines { - AnchorLines(QDeclarativeItem *); + AnchorLines(QGraphicsObject *); QDeclarativeAnchorLine left; QDeclarativeAnchorLine right; QDeclarativeAnchorLine hCenter; diff --git a/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp b/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp index 8e5b863..eb055da 100644 --- a/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp @@ -73,6 +73,7 @@ #include "private/qdeclarativetextedit_p.h" #include "private/qdeclarativetextinput_p.h" #include "private/qdeclarativevisualitemmodel_p.h" +#include "private/qdeclarativegraphicswidget_p.h" #ifdef QT_WEBKIT_LIB #include "private/qdeclarativewebview_p.h" #include "private/qdeclarativewebview_p_p.h" @@ -132,7 +133,8 @@ void QDeclarativeItemModule::defineModule() qmlRegisterType<QDeclarativeKeyEvent>(); qmlRegisterType<QDeclarativeMouseEvent>(); qmlRegisterType<QGraphicsObject>(); - qmlRegisterType<QGraphicsWidget>(); + qmlRegisterType<QGraphicsWidget>("Qt",4,6,"QGraphicsWidget"); + qmlRegisterExtendedType<QGraphicsWidget,QDeclarativeGraphicsWidget>("Qt",4,6,"QGraphicsWidget"); qmlRegisterType<QGraphicsTransform>(); qmlRegisterType<QDeclarativePathElement>(); qmlRegisterType<QDeclarativeCurve>(); diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index 622da5b..cf7b96f 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -1362,10 +1362,10 @@ QDeclarativeListView::~QDeclarativeListView() id: myDelegate Item { id: wrapper - SequentialAnimation on ListView.onRemove { - PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: true } + ListView.onRemove: SequentialAnimation { + PropertyAction { target: wrapper; property: "ListView.delayRemove"; value: true } NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing.type: "InOutQuad" } - PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: false } + PropertyAction { target: wrapper; property: "ListView.delayRemove"; value: false } } } } diff --git a/src/declarative/qml/qdeclarativeboundsignal.cpp b/src/declarative/qml/qdeclarativeboundsignal.cpp index 762c6428..8c7a977 100644 --- a/src/declarative/qml/qdeclarativeboundsignal.cpp +++ b/src/declarative/qml/qdeclarativeboundsignal.cpp @@ -176,7 +176,7 @@ int QDeclarativeBoundSignal::qt_metacall(QMetaObject::Call c, int id, void **a) } if (m_params) m_params->setValues(a); - if (m_expression) { + if (m_expression && m_expression->engine()) { QDeclarativeExpressionPrivate::get(m_expression)->value(m_params); if (m_expression && m_expression->hasError()) qWarning().nospace() << qPrintable(m_expression->error().toString()); diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index f1adc16..e2f810e 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -1486,13 +1486,17 @@ public: QSet<QString> qmlDirFilesForWhichPluginsHaveBeenLoaded; - QDeclarativeDirComponents importExtension(const QString &absoluteFilePath, const QString &uri, QDeclarativeEngine *engine) { + bool importExtension(const QString &absoluteFilePath, const QString &uri, QDeclarativeEngine *engine, QDeclarativeDirComponents* components, QString *errorString) { QFile file(absoluteFilePath); QString filecontent; if (file.open(QFile::ReadOnly)) { filecontent = QString::fromUtf8(file.readAll()); if (qmlImportTrace()) qDebug() << "QDeclarativeEngine::add: loaded" << absoluteFilePath; + } else { + if (errorString) + *errorString = QDeclarativeEngine::tr("module \"%1\" definition \"%2\" not readable").arg(uri).arg(absoluteFilePath); + return false; } QDir dir = QFileInfo(file).dir(); @@ -1512,11 +1516,23 @@ public: plugin.name); if (!resolvedFilePath.isEmpty()) { - engine->importPlugin(resolvedFilePath, uri); + if (!engine->importPlugin(resolvedFilePath, uri, errorString)) { + if (errorString) + *errorString = QDeclarativeEngine::tr("plugin cannot be loaded for module \"%1\": %2").arg(uri).arg(*errorString); + return false; + } + } else { + if (errorString) + *errorString = QDeclarativeEngine::tr("module \"%1\" plugin \"%2\" not found").arg(uri).arg(plugin.name); + return false; } } } - return qmldirParser.components(); + + if (components) + *components = qmldirParser.components(); + + return true; } QString resolvedUri(const QString &dir_arg, QDeclarativeEngine *engine) @@ -1577,7 +1593,8 @@ public: url = QUrl::fromLocalFile(fi.absolutePath()).toString(); uri = resolvedUri(dir, engine); - qmldircomponents = importExtension(absoluteFilePath, uri, engine); + if (!importExtension(absoluteFilePath, uri, engine, &qmldircomponents, errorString)) + return false; break; } } @@ -1608,12 +1625,12 @@ public: return false; // local import dirs must exist } uri = resolvedUri(toLocalFileOrQrc(base.resolved(QUrl(uri))), engine); - qmldircomponents = importExtension(localFileOrQrc, - uri, - engine); - if (uri.endsWith(QLatin1Char('/'))) uri.chop(1); + if (QFile::exists(localFileOrQrc)) { + if (!importExtension(localFileOrQrc,uri,engine,&qmldircomponents,errorString)) + return false; + } } else { if (prefix.isEmpty()) { // directory must at least exist for valid import @@ -1927,7 +1944,7 @@ void QDeclarativeEngine::setPluginPathList(const QStringList &paths) Imports the plugin named \a filePath with the \a uri provided. Returns true if the plugin was successfully imported; otherwise returns false. */ -bool QDeclarativeEngine::importPlugin(const QString &filePath, const QString &uri) +bool QDeclarativeEngine::importPlugin(const QString &filePath, const QString &uri, QString *errorString) { if (qmlImportTrace()) qDebug() << "QDeclarativeEngine::importPlugin" << uri << "from" << filePath; @@ -1948,9 +1965,8 @@ bool QDeclarativeEngine::importPlugin(const QString &filePath, const QString &ur QPluginLoader loader(absoluteFilePath); if (!loader.load()) { - if (qmlImportTrace()) { - qDebug() << "QDeclarativeEngine::importPlugin: " << loader.errorString(); - } + if (errorString) + *errorString = loader.errorString(); return false; } @@ -1972,8 +1988,8 @@ bool QDeclarativeEngine::importPlugin(const QString &filePath, const QString &ur iface->initializeEngine(this, moduleId); } } else { - if (qmlImportTrace()) - qDebug() << "QDeclarativeEngine::importPlugin: no DeclarativeExtensionInterface error"; + if (errorString) + *errorString = loader.errorString(); return false; } } diff --git a/src/declarative/qml/qdeclarativeengine.h b/src/declarative/qml/qdeclarativeengine.h index fcaddcf..7b058ea 100644 --- a/src/declarative/qml/qdeclarativeengine.h +++ b/src/declarative/qml/qdeclarativeengine.h @@ -85,7 +85,7 @@ public: void setPluginPathList(const QStringList &paths); void addPluginPath(const QString& dir); - bool importPlugin(const QString &filePath, const QString &uri); + bool importPlugin(const QString &filePath, const QString &uri, QString *errorString); void setNetworkAccessManagerFactory(QDeclarativeNetworkAccessManagerFactory *); QDeclarativeNetworkAccessManagerFactory *networkAccessManagerFactory() const; diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h index 922581d..f922842 100644 --- a/src/gui/graphicsview/qgraphicsitem_p.h +++ b/src/gui/graphicsview/qgraphicsitem_p.h @@ -237,6 +237,7 @@ public: scenePosDescendants(0), pendingPolish(0), mayHaveChildWithGraphicsEffect(0), + isDeclarativeItem(0), globalStackingOrder(-1), q_ptr(0) { @@ -576,7 +577,8 @@ public: quint32 scenePosDescendants : 1; quint32 pendingPolish : 1; quint32 mayHaveChildWithGraphicsEffect : 1; - quint32 padding : 25; + quint32 isDeclarativeItem : 1; + quint32 padding : 24; // Optional stacking order int globalStackingOrder; diff --git a/src/imports/widgets/widgets.cpp b/src/imports/widgets/widgets.cpp index f26969a..1a71a68 100644 --- a/src/imports/widgets/widgets.cpp +++ b/src/imports/widgets/widgets.cpp @@ -44,7 +44,7 @@ #include <QGraphicsWidget> #include "graphicslayouts_p.h" - +#include <private/qdeclarativegraphicswidget_p.h> QT_BEGIN_NAMESPACE class QWidgetsQmlModule : public QDeclarativeExtensionPlugin @@ -60,7 +60,6 @@ public: qmlRegisterType<QGraphicsLinearLayoutStretchItemObject>(uri,4,6,"QGraphicsLinearLayoutStretchItem"); qmlRegisterType<QGraphicsLinearLayoutObject>(uri,4,6,"QGraphicsLinearLayout"); qmlRegisterType<QGraphicsGridLayoutObject>(uri,4,6,"QGraphicsGridLayout"); - qmlRegisterType<QGraphicsWidget>(uri,4,6,"QGraphicsWidget"); } }; diff --git a/tests/auto/declarative/examples/tst_examples.cpp b/tests/auto/declarative/examples/tst_examples.cpp index dfcc9c0..ee8111e 100644 --- a/tests/auto/declarative/examples/tst_examples.cpp +++ b/tests/auto/declarative/examples/tst_examples.cpp @@ -293,8 +293,10 @@ void tst_examples::examples() sync.waitForFinished(); - for (int ii = 0; ii < tests.count(); ++ii) - QVERIFY(tests.at(ii).result == Example::Pass); + for (int ii = 0; ii < tests.count(); ++ii) { + if (tests.at(ii).result != Example::Pass) + QFAIL(qPrintable(tests.at(ii).file)); + } #else diff --git a/tests/auto/declarative/qdeclarativeanchors/data/anchorsqgraphicswidget.qml b/tests/auto/declarative/qdeclarativeanchors/data/anchorsqgraphicswidget.qml new file mode 100644 index 0000000..ba424b9 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeanchors/data/anchorsqgraphicswidget.qml @@ -0,0 +1,163 @@ +import Qt 4.6 +import Qt.widgets 4.7 + +Rectangle { + color: "white" + width: 240 + height: 320 + Rectangle { id: masterRect; objectName: "masterRect"; x: 26; width: 96; height: 20; color: "red" } + QGraphicsWidget { + id: rect1; objectName: "rect1" + y: 20; width: 10; height: 10 + anchors.left: masterRect.left + } + QGraphicsWidget { + id: rect2; objectName: "rect2" + y: 20; width: 10; height: 10 + anchors.left: masterRect.right + } + QGraphicsWidget { + id: rect3; objectName: "rect3" + y: 20; width: 10; height: 10 + anchors.left: masterRect.horizontalCenter + } + QGraphicsWidget { + id: rect4; objectName: "rect4" + y: 30; width: 10; height: 10 + anchors.right: masterRect.left + } + QGraphicsWidget { + id: rect5; objectName: "rect5" + y: 30; width: 10; height: 10 + anchors.right: masterRect.right + } + QGraphicsWidget { + id: rect6; objectName: "rect6" + y: 30; width: 10; height: 10 + anchors.right: masterRect.horizontalCenter + } + QGraphicsWidget { + id: rect7; objectName: "rect7" + y: 50; width: 10; height: 10 + anchors.left: parent.left + } + QGraphicsWidget { + id: rect8; objectName: "rect8" + y: 50; width: 10; height: 10 + anchors.left: parent.right + } + QGraphicsWidget { + id: rect9; objectName: "rect9" + y: 50; width: 10; height: 10 + anchors.left: parent.horizontalCenter + } + QGraphicsWidget { + id: rect10; objectName: "rect10" + y: 60; width: 10; height: 10 + anchors.right: parent.left + } + QGraphicsWidget { + id: rect11; objectName: "rect11" + y: 60; width: 10; height: 10 + anchors.right: parent.right + } + QGraphicsWidget { + id: rect12; objectName: "rect12" + y: 60; width: 10; height: 10 + anchors.right: parent.horizontalCenter + } + QGraphicsWidget { + id: rect13; objectName: "rect13" + x: 200; width: 10; height: 10 + anchors.top: masterRect.bottom + } + QGraphicsWidget { + id: rect14; objectName: "rect14" + width: 10; height: 10; + anchors.verticalCenter: parent.verticalCenter + } + QGraphicsWidget { + id: rect15; objectName: "rect15" + y: 200; height: 10 + anchors.left: masterRect.left + anchors.right: masterRect.right + } + QGraphicsWidget { + id: rect16; objectName: "rect16" + y: 220; height: 10 + anchors.left: masterRect.left + anchors.horizontalCenter: masterRect.right + } + QGraphicsWidget { + id: rect17; objectName: "rect17" + y: 240; height: 10 + anchors.right: masterRect.right + anchors.horizontalCenter: masterRect.left + } + QGraphicsWidget { + id: rect18; objectName: "rect18" + x: 180; width: 10 + anchors.top: masterRect.bottom + anchors.bottom: rect12.top + } + QGraphicsWidget { + id: rect19; objectName: "rect19" + y: 70; width: 10; height: 10 + anchors.horizontalCenter: parent.horizontalCenter + } + QGraphicsWidget { + id: rect20; objectName: "rect20" + y: 70; width: 10; height: 10 + anchors.horizontalCenter: parent.right + } + QGraphicsWidget { + id: rect21; objectName: "rect21" + y: 70; width: 10; height: 10 + anchors.horizontalCenter: parent.left + } + QGraphicsWidget { + id: rect22; objectName: "rect22" + width: 10; height: 10 + anchors.centerIn: masterRect + } + QGraphicsWidget { + id: rect23; objectName: "rect23" + anchors.left: masterRect.left + anchors.leftMargin: 5 + anchors.right: masterRect.right + anchors.rightMargin: 5 + anchors.top: masterRect.top + anchors.topMargin: 5 + anchors.bottom: masterRect.bottom + anchors.bottomMargin: 5 + } + QGraphicsWidget { + id: rect24; objectName: "rect24" + width: 10; height: 10 + anchors.horizontalCenter: masterRect.left + anchors.horizontalCenterOffset: width/2 + } + QGraphicsWidget { + id: rect25; objectName: "rect25" + width: 10; height: 10 + anchors.verticalCenter: rect12.top + anchors.verticalCenterOffset: height/2 + } + Rectangle { + id: rect26; objectName: "rect26" + width: 10; height: 10 + anchors.baseline: masterRect.top + anchors.baselineOffset: height/2 + } + Text { + id: text1; objectName: "text1" + y: 200; + text: "Hello" + } + Text { + id: text2; objectName: "text2" + anchors.baseline: text1.baseline + anchors.left: text1.right + text: "World" + } +} diff --git a/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp b/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp index 9eaa400..05974aa 100644 --- a/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp +++ b/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp @@ -40,6 +40,8 @@ ****************************************************************************/ #include <qtest.h> #include <QSignalSpy> +#include <QtGui/QGraphicsWidget> +#include <private/qgraphicsitem_p.h> #include <QtDeclarative/qdeclarativeengine.h> #include <QtDeclarative/qdeclarativecomponent.h> #include <QtDeclarative/qdeclarativeview.h> @@ -59,9 +61,11 @@ public: template<typename T> T *findItem(QGraphicsObject *parent, const QString &id); + QGraphicsObject *findObject(QGraphicsObject *parent, const QString &objectName); private slots: void basicAnchors(); + void basicAnchorsQGraphicsWidget(); void loops(); void illegalSets(); void illegalSets_data(); @@ -99,6 +103,25 @@ T *tst_qdeclarativeanchors::findItem(QGraphicsObject *parent, const QString &obj return 0; } +QGraphicsObject *tst_qdeclarativeanchors::findObject(QGraphicsObject *parent, const QString &objectName) +{ + QList<QGraphicsItem *> children = parent->childItems(); + for (int i = 0; i < children.count(); ++i) { + QGraphicsObject *item = children.at(i)->toGraphicsObject(); + if (item) { + if (objectName.isEmpty() || item->objectName() == objectName) { + return item; + } + item = findObject(item, objectName); + if (item) + return item; + } + } + + return 0; +} + + void tst_qdeclarativeanchors::basicAnchors() { QDeclarativeView *view = new QDeclarativeView; @@ -166,6 +189,73 @@ void tst_qdeclarativeanchors::basicAnchors() delete view; } +void tst_qdeclarativeanchors::basicAnchorsQGraphicsWidget() +{ + QDeclarativeView *view = new QDeclarativeView; + view->setSource(QUrl::fromLocalFile(SRCDIR "/data/anchorsqgraphicswidget.qml")); + + qApp->processEvents(); + + //sibling horizontal + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect1"))->x(), 26.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect2"))->x(), 122.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect3"))->x(), 74.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect4"))->x(), 16.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect5"))->x(), 112.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect6"))->x(), 64.0); + + //parent horizontal + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect7"))->x(), 0.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect8"))->x(), 240.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect9"))->x(), 120.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect10"))->x(), -10.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect11"))->x(), 230.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect12"))->x(), 110.0); + + //vertical + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect13"))->y(), 20.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect14"))->y(), 155.0); + + //stretch + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect15"))->x(), 26.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect15"))->property("width").toReal(), 96.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect16"))->x(), 26.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect16"))->property("width").toReal(), 192.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect17"))->x(), -70.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect17"))->property("width").toReal(), 192.0); + + //vertical stretch + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect18"))->y(), 20.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect18"))->property("height").toReal(), 40.0); + + //more parent horizontal + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect19"))->x(), 115.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect20"))->x(), 235.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect21"))->x(), -5.0); + + //centerIn + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect22"))->x(), 69.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect22"))->y(), 5.0); + + //margins + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect23"))->x(), 31.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect23"))->y(), 5.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect23"))->property("width").toReal(), 86.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect23"))->property("height").toReal(), 10.0); + + // offsets + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect24"))->x(), 26.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect25"))->y(), 60.0); + QCOMPARE(findObject(view->rootObject(), QLatin1String("rect26"))->y(), 5.0); + + //baseline + QDeclarativeText *text1 = findItem<QDeclarativeText>(view->rootObject(), QLatin1String("text1")); + QDeclarativeText *text2 = findItem<QDeclarativeText>(view->rootObject(), QLatin1String("text2")); + QCOMPARE(text1->y(), text2->y()); + + delete view; +} + // mostly testing that we don't crash void tst_qdeclarativeanchors::loops() { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_9792.qml b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_9792.qml new file mode 100644 index 0000000..9ac4430 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_9792.qml @@ -0,0 +1,5 @@ +import Qt.test 1.0 + +MyQmlObject { + onBasicSignal: print("Hello world!"); +} diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp index c9fb116..c648de4 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -141,6 +141,7 @@ private slots: void deletedEngine(); void libraryScriptAssert(); void variantsAssignedUndefined(); + void qtbug_9792(); void callQtInvokables(); private: @@ -2211,6 +2212,32 @@ void tst_qdeclarativeecmascript::variantsAssignedUndefined() delete object; } +void tst_qdeclarativeecmascript::qtbug_9792() +{ + QDeclarativeComponent component(&engine, TEST_FILE("qtbug_9792.qml")); + + QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext()); + + MyQmlObject *object = qobject_cast<MyQmlObject*>(component.create(context)); + QVERIFY(object != 0); + + QTest::ignoreMessage(QtDebugMsg, "Hello world!"); + object->basicSignal(); + + delete context; + + transientErrorsMsgCount = 0; + QtMsgHandler old = qInstallMsgHandler(transientErrorsMsgHandler); + + object->basicSignal(); + + qInstallMsgHandler(old); + + QCOMPARE(transientErrorsMsgCount, 0); + + delete object; +} + QTEST_MAIN(tst_qdeclarativeecmascript) #include "tst_qdeclarativeecmascript.moc" diff --git a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp index aa82403..e6553dd 100644 --- a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp +++ b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp @@ -468,7 +468,7 @@ void tst_QDeclarativeLoader::failNetworkRequest() QTest::ignoreMessage(QtWarningMsg, "(:-1: Network error for URL http://127.0.0.1:14450/IDontExist.qml) "); QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.6\nLoader { source: \"http://127.0.0.1:14450/IDontExist.qml\" }"), QUrl("http://127.0.0.1:14450/dummy.qml")); + component.setData(QByteArray("import Qt 4.6\nLoader { source: \"http://127.0.0.1:14450/IDontExist.qml\" }"), QUrl::fromLocalFile("http://127.0.0.1:14450/dummy.qml")); QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create()); QVERIFY(loader != 0); @@ -518,8 +518,9 @@ void tst_QDeclarativeLoader::nonItem() void tst_QDeclarativeLoader::vmeErrors() { QDeclarativeComponent component(&engine, TEST_FILE("vmeErrors.qml")); - QString err = QString("(") + QUrl::fromLocalFile(SRCDIR).toString() + QString("/data/VmeError.qml:6: Cannot assign object type QObject with no default method\n onSomethingHappened: QtObject {}) "); - QTest::ignoreMessage(QtWarningMsg, err.toLatin1().constData()); + //ignore message for now + //QString err = QUrl::fromLocalFile(SRCDIR "/data/VmeError.qml:6: Cannot assign object type QObject with no default method\n onSomethingHappened: QtObject {}) "); + //QTest::ignoreMessage(QtWarningMsg, err.toLatin1().constData()); QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create()); QVERIFY(loader); QVERIFY(loader->item() == 0); diff --git a/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists.png Binary files differnew file mode 100644 index 0000000..399bd0b --- /dev/null +++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists.png diff --git a/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists1.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists1.png Binary files differnew file mode 100644 index 0000000..399bd0b --- /dev/null +++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists1.png diff --git a/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists2.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists2.png Binary files differnew file mode 100644 index 0000000..399bd0b --- /dev/null +++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists2.png diff --git a/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists3.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists3.png Binary files differnew file mode 100644 index 0000000..399bd0b --- /dev/null +++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists3.png diff --git a/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists4.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists4.png Binary files differnew file mode 100644 index 0000000..399bd0b --- /dev/null +++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists4.png diff --git a/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists5.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists5.png Binary files differnew file mode 100644 index 0000000..399bd0b --- /dev/null +++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists5.png diff --git a/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro b/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro index b5b033a..4b247fc 100644 --- a/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro +++ b/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro @@ -5,6 +5,12 @@ macx:CONFIG -= app_bundle SOURCES += tst_qdeclarativepixmapcache.cpp +INCLUDEPATH += ../shared/ +HEADERS += ../shared/testhttpserver.h +SOURCES += ../shared/testhttpserver.cpp + +DEFINES += SRCDIR=\\\"$$PWD\\\" + # QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage # LIBS += -lgcov diff --git a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp index 223f54f..f2ccf80 100644 --- a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp +++ b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp @@ -43,6 +43,8 @@ #include <private/qdeclarativepixmapcache_p.h> #include <QtDeclarative/qdeclarativeengine.h> #include <QNetworkReply> +#include "testhttpserver.h" +#include "../../../shared/util.h" // These don't let normal people run tests! //#include "../network-settings.h" @@ -52,8 +54,10 @@ class tst_qdeclarativepixmapcache : public QObject Q_OBJECT public: tst_qdeclarativepixmapcache() : - thisfile(QUrl::fromLocalFile(__FILE__)) + thisfile(QUrl::fromLocalFile(__FILE__)), + server(14452) { + server.serveDirectory(SRCDIR "/data/http"); } private slots: @@ -65,6 +69,7 @@ private slots: private: QDeclarativeEngine engine; QUrl thisfile; + TestHTTPServer server; }; @@ -110,8 +115,8 @@ void tst_qdeclarativepixmapcache::single_data() // File URLs are optimized QTest::newRow("local") << thisfile.resolved(QUrl("data/exists.png")) << localfile_optimized << true << false; QTest::newRow("local") << thisfile.resolved(QUrl("data/notexists.png")) << localfile_optimized << false << false; - QTest::newRow("remote") << QUrl("http://qt.nokia.com/logo.png") << false << true << false; - QTest::newRow("remote") << QUrl("http://qt.nokia.com/thereisnologo.png") << false << false << true; + QTest::newRow("remote") << QUrl("http://127.0.0.1:14452/exists.png") << false << true << false; + QTest::newRow("remote") << QUrl("http://127.0.0.1:14452/notexists.png") << false << false << true; } void tst_qdeclarativepixmapcache::single() @@ -122,7 +127,7 @@ void tst_qdeclarativepixmapcache::single() QFETCH(bool, neterror); if (neterror) { - QString expected = "\"Error downloading " + target.toString() + " - server replied: Not Found\" "; + QString expected = "\"Error downloading " + target.toString() + " - server replied: Not found\" "; QTest::ignoreMessage(QtWarningMsg, expected.toLatin1()); } else if (!exists) { QString expected = "Cannot open QUrl( \"" + target.toString() + "\" ) "; @@ -183,32 +188,32 @@ void tst_qdeclarativepixmapcache::parallel_data() ; QTest::newRow("remote") - << QUrl("http://qt.nokia.com/images/template/checkbox-on.png") - << QUrl("http://qt.nokia.com/images/products/qt-logo/image_tile") + << QUrl("http://127.0.0.1:14452/exists2.png") + << QUrl("http://127.0.0.1:14452/exists3.png") << 0 << -1 << 2 ; QTest::newRow("remoteagain") - << QUrl("http://qt.nokia.com/images/template/checkbox-on.png") - << QUrl("http://qt.nokia.com/images/products/qt-logo/image_tile") + << QUrl("http://127.0.0.1:14452/exists2.png") + << QUrl("http://127.0.0.1:14452/exists3.png") << 2 << -1 << 0 ; QTest::newRow("remotecopy") - << QUrl("http://qt.nokia.com/images/template/checkbox-off.png") - << QUrl("http://qt.nokia.com/images/template/checkbox-off.png") + << QUrl("http://127.0.0.1:14452/exists4.png") + << QUrl("http://127.0.0.1:14452/exists4.png") << 0 << -1 << 1 ; QTest::newRow("remotecopycancel") - << QUrl("http://qt.nokia.com/rounded_block_bg.png") - << QUrl("http://qt.nokia.com/rounded_block_bg.png") + << QUrl("http://127.0.0.1:14452/exists5.png") + << QUrl("http://127.0.0.1:14452/exists5.png") << 0 << 0 << 1 @@ -233,6 +238,7 @@ void tst_qdeclarativepixmapcache::parallel() QPixmap pixmap; QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(target, &pixmap); QDeclarativePixmapReply *reply = 0; + QVERIFY(status != QDeclarativePixmapReply::Error); if (status != QDeclarativePixmapReply::Error && status != QDeclarativePixmapReply::Ready) reply = QDeclarativePixmapCache::request(&engine, target); replies.append(reply); diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.expect index f43e043..4d21122 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.expect +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.expect @@ -1,9 +1,9 @@ PUT /testdocument.html HTTP/1.1 +ACCEPT-LANGUAGE: en-US Content-Type: text/plain;charset=UTF-8 Content-Length: 9 Connection: Keep-Alive Accept-Encoding: gzip -Accept-Language: en-US,* User-Agent: Mozilla/5.0 Host: 127.0.0.1:14445 diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml index d7b9266..729793e 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml @@ -13,6 +13,7 @@ QtObject { var x = new XMLHttpRequest; x.open("GET", urlDummy); x.setRequestHeader("Test-header", "TestValue"); + x.setRequestHeader("Accept-Language", "en-US"); x.send(); x.onreadystatechange = function() { @@ -35,6 +36,7 @@ QtObject { } } x.open("PUT", url); + x.setRequestHeader("Accept-Language", "en-US"); x.send("Test Data"); } } diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml index 72a45e7..33ca020 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml @@ -21,10 +21,12 @@ QtObject { readyState = true; x.open("PUT", url); + x.setRequestHeader("Accept-Language", "en-US"); x.abort(); x.open("GET", url); + x.setRequestHeader("Accept-Language", "en-US"); if (x.readyState == XMLHttpRequest.OPENED) openedState = true; diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml index aa78cde..c0957ed 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml @@ -21,6 +21,7 @@ QtObject { readyState = true; x.open("GET", url); + x.setRequestHeader("Accept-Language", "en-US"); if (x.readyState == XMLHttpRequest.OPENED) openedState = true; diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml index 8d67fad..9096999 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml @@ -31,6 +31,7 @@ QtObject { readyState = true; x.open("GET", url); + x.setRequestHeader("Accept-Language", "en-US"); if (x.readyState == XMLHttpRequest.OPENED) openedState = true; diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.expect index a740c79..c6cad70 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.expect +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.expect @@ -1,7 +1,7 @@ GET /testdocument.html HTTP/1.1 +ACCEPT-LANGUAGE: en-US Connection: Keep-Alive Accept-Encoding: gzip -Accept-Language: en-US,* User-Agent: Mozilla/5.0 Host: 127.0.0.1:14445 diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml index 2f949e1..7a65e25 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml @@ -37,6 +37,7 @@ QtObject { readyState = true; x.open("GET", url); + x.setRequestHeader("Accept-Language", "en-US"); if (x.readyState == XMLHttpRequest.OPENED) openedState = true; diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml index c06bae3..72fb9d7 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml @@ -20,6 +20,7 @@ QtObject { readyState = true; x.open("GET", url); + x.setRequestHeader("Accept-Language","en-US"); if (x.readyState == XMLHttpRequest.OPENED) openedState = true; diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.expect index a740c79..c6cad70 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.expect +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.expect @@ -1,7 +1,7 @@ GET /testdocument.html HTTP/1.1 +ACCEPT-LANGUAGE: en-US Connection: Keep-Alive Accept-Encoding: gzip -Accept-Language: en-US,* User-Agent: Mozilla/5.0 Host: 127.0.0.1:14445 diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml index 19e37fa..b07f8e7 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml @@ -20,6 +20,7 @@ QtObject { readyState = true; x.open("GET", url, true, "username", "password"); + x.setRequestHeader("Accept-Language","en-US"); if (x.readyState == XMLHttpRequest.OPENED) openedState = true; diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml index 4bb3a7a..9fa4847 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml @@ -22,6 +22,7 @@ QtObject { unsent = (x.responseText == ""); x.open("GET", url); + x.setRequestHeader("Accept-Language", "en-US"); opened = (x.responseText == ""); @@ -39,6 +40,7 @@ QtObject { dataOK = (x.responseText == expectedText); x.open("GET", url); + x.setRequestHeader("Accept-Language", "en-US"); reset = (x.responseText == ""); } diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml index 0bad7df..a9ef3e8 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml @@ -7,6 +7,7 @@ QtObject { Component.onCompleted: { var x = new XMLHttpRequest; x.open("GET", "testdocument.html"); + x.setRequestHeader("Accept-Language","en-US"); // Test to the end x.onreadystatechange = function() { diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.expect index 81dd4a0..2effbdc 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.expect +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.expect @@ -1,9 +1,9 @@ POST /testdocument.html HTTP/1.1 +ACCEPT-LANGUAGE: en-US Content-Type: text/plain;charset=UTF-8 Content-Length: 12 Connection: Keep-Alive Accept-Encoding: gzip -Accept-Language: en-US,* User-Agent: Mozilla/5.0 Host: 127.0.0.1:14445 diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml index 03543a9..171e0b1 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml @@ -8,6 +8,7 @@ QtObject { Component.onCompleted: { var x = new XMLHttpRequest; x.open("POST", url); + x.setRequestHeader("Accept-Language","en-US"); // Test to the end x.onreadystatechange = function() { diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml index 79a27b6..09b742b 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml @@ -9,6 +9,7 @@ QtObject { var x = new XMLHttpRequest; x.open("POST", url); x.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); + x.setRequestHeader("Accept-Language","en-US"); // Test to the end x.onreadystatechange = function() { diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml index e048769..8786917 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml @@ -9,6 +9,7 @@ QtObject { var x = new XMLHttpRequest; x.open("POST", url); x.setRequestHeader("Content-Type", "text/plain;charset=latin1"); + x.setRequestHeader("Accept-Language","en-US"); // Test to the end x.onreadystatechange = function() { diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.expect index 8fcf3ac..8336860 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.expect +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.expect @@ -1,9 +1,9 @@ POST /testdocument.html HTTP/1.1 +ACCEPT-LANGUAGE: en-US Content-Type: charset=UTF-8;text/plain Content-Length: 12 Connection: Keep-Alive Accept-Encoding: gzip -Accept-Language: en-US,* User-Agent: Mozilla/5.0 Host: 127.0.0.1:14445 diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml index 7ab0b27..6789480 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml @@ -9,6 +9,7 @@ QtObject { var x = new XMLHttpRequest; x.open("POST", url); x.setRequestHeader("Content-Type", "charset=UTF-8;text/plain"); + x.setRequestHeader("Accept-Language","en-US"); // Test to the end x.onreadystatechange = function() { diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml index 29bf2c2..08d999d 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml @@ -9,6 +9,7 @@ QtObject { var x = new XMLHttpRequest; x.open("POST", url); x.setRequestHeader("Content-Type", "charset=latin1;text/plain"); + x.setRequestHeader("Accept-Language","en-US"); // Test to the end x.onreadystatechange = function() { diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.expect index 97e6fac..4f10bbc 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.expect +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.expect @@ -1,9 +1,9 @@ PUT /testdocument.html HTTP/1.1 +ACCEPT-LANGUAGE: en-US Content-Type: text/plain;charset=UTF-8 Content-Length: 12 Connection: Keep-Alive Accept-Encoding: gzip -Accept-Language: en-US,* User-Agent: Mozilla/5.0 Host: 127.0.0.1:14445 diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml index 135f45c..e047fc8 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml @@ -8,6 +8,7 @@ QtObject { Component.onCompleted: { var x = new XMLHttpRequest; x.open("PUT", url); + x.setRequestHeader("Accept-Language","en-US"); // Test to the end x.onreadystatechange = function() { diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml index 4a09527..ba0db25 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml @@ -9,6 +9,7 @@ QtObject { var x = new XMLHttpRequest; x.open("POST", url); x.setRequestHeader("Content-Type", "text/plain"); + x.setRequestHeader("Accept-Language","en-US"); // Test to the end x.onreadystatechange = function() { diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml index dd5fa46..ddf520e 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml @@ -9,6 +9,7 @@ QtObject { Component.onCompleted: { var x = new XMLHttpRequest; x.open(reqType, url); + x.setRequestHeader("Accept-Language","en-US"); // Test to the end x.onreadystatechange = function() { diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_GET.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_GET.expect index a740c79..c6cad70 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_GET.expect +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_GET.expect @@ -1,7 +1,7 @@ GET /testdocument.html HTTP/1.1 +ACCEPT-LANGUAGE: en-US Connection: Keep-Alive Accept-Encoding: gzip -Accept-Language: en-US,* User-Agent: Mozilla/5.0 Host: 127.0.0.1:14445 diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_PUT.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_PUT.expect index 991bd59..74a9798 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_PUT.expect +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_PUT.expect @@ -1,7 +1,7 @@ HEAD /testdocument.html HTTP/1.1 +ACCEPT-LANGUAGE: en-US Connection: Keep-Alive Accept-Encoding: gzip -Accept-Language: en-US,* User-Agent: Mozilla/5.0 Host: 127.0.0.1:14445 diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.expect index 4600f2a..7b8e260 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.expect +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.expect @@ -1,9 +1,9 @@ GET /testdocument.html HTTP/1.1 +ACCEPT-LANGUAGE: en-US TEST-HEADER: value TEST-HEADER2: value,value2 Connection: Keep-Alive Accept-Encoding: gzip -Accept-Language: en-US,* User-Agent: Mozilla/5.0 Host: 127.0.0.1:14445 diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml index b0723aa..61eea33 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml @@ -9,6 +9,7 @@ QtObject { var x = new XMLHttpRequest; x.open("GET", url); + x.setRequestHeader("Accept-Language","en-US"); x.setRequestHeader("Test-header", "value"); x.setRequestHeader("Test-header2", "value"); diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml index bf31eca..b22b239 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml @@ -21,6 +21,7 @@ QtObject { readyState = true; x.open("GET", url); + x.setRequestHeader("Accept-Language","en-US"); x.setRequestHeader(header, "Value"); diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml index c2bbc6e..666c791 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml @@ -10,6 +10,7 @@ QtObject { var x = new XMLHttpRequest; x.open("GET", url); + x.setRequestHeader("Accept-Language","en-US"); // Test to the end x.onreadystatechange = function() { diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.expect index a740c79..c6cad70 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.expect +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.expect @@ -1,7 +1,7 @@ GET /testdocument.html HTTP/1.1 +ACCEPT-LANGUAGE: en-US Connection: Keep-Alive Accept-Encoding: gzip -Accept-Language: en-US,* User-Agent: Mozilla/5.0 Host: 127.0.0.1:14445 diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml index 04202c4..c903e12 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml @@ -27,6 +27,7 @@ QtObject { } x.open("GET", url); + x.setRequestHeader("Accept-Language", "en-US"); try { var a = x.status; @@ -54,6 +55,7 @@ QtObject { } x.open("GET", url); + x.setRequestHeader("Accept-Language", "en-US"); try { var a = x.status; diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml index 8becc3b..a3b98be 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml @@ -27,6 +27,7 @@ QtObject { } x.open("GET", url); + x.setRequestHeader("Accept-Language", "en-US"); try { var a = x.statusText; @@ -54,6 +55,7 @@ QtObject { } x.open("GET", url); + x.setRequestHeader("Accept-Language", "en-US"); try { var a = x.statusText; diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp b/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp index 13ed959..1d26f2c 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp @@ -55,12 +55,6 @@ public: tst_qdeclarativexmlhttprequest() {} private slots: - void initTestCase() { - if (QLocale::system().name().replace(QChar::fromAscii('_'),QChar::fromAscii('-')) != QLatin1String("en-US")) { - qWarning() << "Test will fail unless LANG is en_US"; - } - } - void domExceptionCodes(); void callbackException(); void callbackException_data(); diff --git a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml index 7ac6f51..08ed609 100644 --- a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml +++ b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml @@ -6,274 +6,6 @@ VisualTest { } Frame { msec: 16 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 32 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 48 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 64 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 80 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 96 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 112 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 128 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 144 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 160 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 176 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 192 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 208 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 224 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 240 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 256 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 272 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 288 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 304 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 320 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 336 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 352 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 368 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 384 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 400 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 416 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 432 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 448 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 464 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 480 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 496 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 512 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 528 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 544 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 560 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 576 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 592 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 608 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 624 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 640 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 656 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 672 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 688 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 704 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Key { - type: 6 - key: 16777249 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 720 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 736 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 752 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 768 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 784 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 800 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 816 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 832 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 848 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 864 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 880 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 896 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 912 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 928 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 944 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 960 image: "fillmode.0.png" - } - Frame { - msec: 976 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 992 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 1008 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 1024 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 1040 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } - Frame { - msec: 1056 - hash: "c8cb8d51ca04231dc272133faaf2fb6d" - } + } } diff --git a/tools/qml/qml.pro b/tools/qml/qml.pro index bc6d032..1ed8b2c 100644 --- a/tools/qml/qml.pro +++ b/tools/qml/qml.pro @@ -56,7 +56,7 @@ symbian { INCLUDEPATH += $$QT_SOURCE_TREE/examples/network/qftp/ TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 LIBS += -lesock -lcommdb -lconnmon -linsock - TARGET.CAPABILITY = "All -TCB" + TARGET.CAPABILITY = NetworkServices ReadUserData } mac { QMAKE_INFO_PLIST=Info_mac.plist |