diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/declarative/canvas/qsimplecanvas.cpp | 2 | ||||
-rw-r--r-- | src/declarative/extra/qmlxmllistmodel.cpp | 42 | ||||
-rw-r--r-- | src/declarative/extra/qmlxmllistmodel.h | 2 | ||||
-rw-r--r-- | src/declarative/fx/qfxlayouts.cpp | 7 |
4 files changed, 41 insertions, 12 deletions
diff --git a/src/declarative/canvas/qsimplecanvas.cpp b/src/declarative/canvas/qsimplecanvas.cpp index 1911b35..ce02a4c 100644 --- a/src/declarative/canvas/qsimplecanvas.cpp +++ b/src/declarative/canvas/qsimplecanvas.cpp @@ -556,7 +556,7 @@ QSimpleCanvas::QSimpleCanvas(CanvasMode mode, QWidget *parent) QSimpleCanvas::QSimpleCanvas(QWidget *parent) : QWidget(parent), d(new QSimpleCanvasPrivate(this)) { - d->init(useGraphicsView()?GraphicsView:SimpleCanvas); + d->init(useGraphicsView()?SimpleCanvas:GraphicsView); } void QSimpleCanvasPrivate::init(QSimpleCanvas::CanvasMode mode) diff --git a/src/declarative/extra/qmlxmllistmodel.cpp b/src/declarative/extra/qmlxmllistmodel.cpp index af72ecc..bba817d 100644 --- a/src/declarative/extra/qmlxmllistmodel.cpp +++ b/src/declarative/extra/qmlxmllistmodel.cpp @@ -90,8 +90,9 @@ class QmlXmlListModelPrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QmlXmlListModel) public: - QmlXmlListModelPrivate() : size(-1), highestRole(Qt::UserRole), reply(0), roleObjects(this) {} + QmlXmlListModelPrivate() : isClassComplete(false), size(-1), highestRole(Qt::UserRole), reply(0), roleObjects(this) {} + bool isClassComplete; QString src; QString query; QString namespaces; @@ -204,7 +205,10 @@ QString QmlXmlListModel::source() const void QmlXmlListModel::setSource(const QString &src) { Q_D(QmlXmlListModel); - d->src = src; + if (d->src != src) { + d->src = src; + reload(); + } } QString QmlXmlListModel::query() const @@ -216,7 +220,10 @@ QString QmlXmlListModel::query() const void QmlXmlListModel::setQuery(const QString &query) { Q_D(QmlXmlListModel); - d->query = query; + if (d->query != query) { + d->query = query; + reload(); + } } QString QmlXmlListModel::namespaceDeclarations() const @@ -228,29 +235,44 @@ QString QmlXmlListModel::namespaceDeclarations() const void QmlXmlListModel::setNamespaceDeclarations(const QString &declarations) { Q_D(QmlXmlListModel); - d->namespaces = declarations; + if (d->namespaces != declarations) { + d->namespaces = declarations; + reload(); + } } void QmlXmlListModel::classComplete() { - fetch(); + Q_D(QmlXmlListModel); + d->isClassComplete = true; + reload(); } -void QmlXmlListModel::fetch() +void QmlXmlListModel::reload() { Q_D(QmlXmlListModel); + if (!d->isClassComplete) + return; + //clear existing data d->size = 0; int count = d->data.count(); d->data.clear(); - emit itemsRemoved(0, count); + if (count > 0) + emit itemsRemoved(0, count); if (d->src.isEmpty()) { - qWarning() << "Can't fetch empty src string"; + qWarning() << "Can't load empty src string"; return; } + if (d->reply) { + d->reply->abort(); + d->reply->deleteLater(); + d->reply = 0; + } + QNetworkRequest req((QUrl(d->src))); req.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache); d->reply = qmlContext(this)->engine()->networkAccessManager()->get(req); @@ -316,7 +338,9 @@ void QmlXmlListModel::doQuery(QByteArray &rawData) d->xml = xml; d->size = count; - emit itemsInserted(0, count); + + if (count > 0) + emit itemsInserted(0, count); } void QmlXmlListModel::doSubquery(int index) const diff --git a/src/declarative/extra/qmlxmllistmodel.h b/src/declarative/extra/qmlxmllistmodel.h index acc54a9..2e932cb 100644 --- a/src/declarative/extra/qmlxmllistmodel.h +++ b/src/declarative/extra/qmlxmllistmodel.h @@ -118,7 +118,7 @@ public: virtual void classComplete(); public Q_SLOTS: - void fetch(); + void reload(); protected: void doQuery(QByteArray &rawData); diff --git a/src/declarative/fx/qfxlayouts.cpp b/src/declarative/fx/qfxlayouts.cpp index 85b198e..e95998b 100644 --- a/src/declarative/fx/qfxlayouts.cpp +++ b/src/declarative/fx/qfxlayouts.cpp @@ -361,7 +361,12 @@ void QFxBaseLayout::preLayout() if (item->isVisible()){ if (!d->_animated.contains(item)){ setMovingItem(item); - item->setPos(QPointF(item->x()+d->_margin, item->y()+d->_margin)); + QPointF p(item->x(), item->y()); + if(d->aut & Horizontal) + p.setX(p.x() + d->_margin); + if(d->aut & Vertical) + p.setY(p.y() + d->_margin); + item->setPos(p); setMovingItem(0); } width = qMax(width, item->x() + item->width()); |