diff options
Diffstat (limited to 'src/quick/items/qquickgridview.cpp')
-rw-r--r-- | src/quick/items/qquickgridview.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/quick/items/qquickgridview.cpp b/src/quick/items/qquickgridview.cpp index fd9ce9ffcd..e40d21b498 100644 --- a/src/quick/items/qquickgridview.cpp +++ b/src/quick/items/qquickgridview.cpp @@ -40,10 +40,10 @@ ****************************************************************************/ #include "qquickgridview_p.h" -#include "qquickvisualitemmodel_p.h" #include "qquickflickable_p_p.h" #include "qquickitemview_p_p.h" +#include <private/qqmlobjectmodel_p.h> #include <private/qquicksmoothedanimation_p_p.h> #include <QtGui/qevent.h> @@ -209,7 +209,7 @@ public: virtual void setPosition(qreal pos); virtual void layoutVisibleItems(int fromModelIndex = 0); - virtual bool applyInsertionChange(const QQuickChangeSet::Insert &insert, ChangeResult *changeResult, QList<FxViewItem *> *addedItems, QList<MovedItem> *movingIntoView); + virtual bool applyInsertionChange(const QQmlChangeSet::Insert &insert, ChangeResult *changeResult, QList<FxViewItem *> *addedItems, QList<MovedItem> *movingIntoView); virtual void translateAndTransitionItemsAfter(int afterModelIndex, const ChangeResult &insertionResult, const ChangeResult &removalResult); virtual bool needsRefillForAddedOrRemovedIndex(int index) const; @@ -463,7 +463,7 @@ void QQuickGridViewPrivate::resetColumns() { Q_Q(QQuickGridView); qreal length = flow == QQuickGridView::FlowLeftToRight ? q->width() : q->height(); - columns = (int)qMax((length + colSize()/2) / colSize(), qreal(1.)); + columns = qMax(1, qFloor(length / colSize())); } FxViewItem *QQuickGridViewPrivate::newViewItem(int modelIndex, QQuickItem *item) @@ -2105,13 +2105,16 @@ void QQuickGridView::geometryChanged(const QRectF &newGeometry, const QRectF &ol QQuickItemView::geometryChanged(newGeometry, oldGeometry); } -void QQuickGridView::initItem(int index, QQuickItem *item) +void QQuickGridView::initItem(int index, QObject *obj) { - QQuickItemView::initItem(index, item); - QQuickGridViewAttached *attached = static_cast<QQuickGridViewAttached *>( - qmlAttachedPropertiesObject<QQuickGridView>(item)); - if (attached) - attached->setView(this); + QQuickItemView::initItem(index, obj); + QQuickItem *item = qmlobject_cast<QQuickItem*>(obj); + if (item) { + QQuickGridViewAttached *attached = static_cast<QQuickGridViewAttached *>( + qmlAttachedPropertiesObject<QQuickGridView>(item)); + if (attached) + attached->setView(this); + } } /*! @@ -2286,7 +2289,7 @@ void QQuickGridView::moveCurrentIndexRight() } } -bool QQuickGridViewPrivate::applyInsertionChange(const QQuickChangeSet::Insert &change, ChangeResult *insertResult, QList<FxViewItem *> *addedItems, QList<MovedItem> *movingIntoView) +bool QQuickGridViewPrivate::applyInsertionChange(const QQmlChangeSet::Insert &change, ChangeResult *insertResult, QList<FxViewItem *> *addedItems, QList<MovedItem> *movingIntoView) { Q_Q(QQuickGridView); |