diff options
Diffstat (limited to 'src/experimental/qgraphicsgridview.cpp')
-rw-r--r-- | src/experimental/qgraphicsgridview.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/experimental/qgraphicsgridview.cpp b/src/experimental/qgraphicsgridview.cpp index c95813e..b8375c3 100644 --- a/src/experimental/qgraphicsgridview.cpp +++ b/src/experimental/qgraphicsgridview.cpp @@ -360,24 +360,25 @@ void QtGraphicsGridView::doLayout() d->scrollItems(firstVisibleIndex); int index = firstVisibleIndex; for (; index <= lastVisibleIndex; ++index) { - initStyleOption(&option, index); + //initStyleOption(&option, index); const int i = index - firstVisibleIndex; if (i >= d->items.count()) - d->items.append(d->creator->create(index, this)); - QtGraphicsListViewItem *item = d->items.at(i); + d->items.append(QPair<int,QGraphicsObject*>(index, d->creator->create(index, this))); + QGraphicsObject *item = d->items.at(i).second; const QPointF pos = d->gridPosition(index); - const QSizeF size = item->sizeHint(index, &option, Qt::PreferredSize, QSizeF(gridSize, gridSize)); + const QSizeF size = item->boundingRect().size(); const QRectF grid(pos.x(), pos.y(), gridSize, gridSize); const QRectF aligned = QStyle::alignedRect(option.direction, Qt::AlignCenter, size.toSize(), grid.toRect()); - item->setGeometry(aligned); + //item->setGeometry(aligned); + item->setPos(aligned.topLeft());//### FIXME } // remove unused items const int from = index - firstVisibleIndex; while (from < d->items.count()) - d->creator->recycle(d->items.takeLast()); + d->creator->recycle(d->items.takeLast().second); } /*! @@ -427,13 +428,14 @@ void QtGraphicsGridView::initStyleOption(QStyleOptionViewItemV4 *option) const /*! \reimp */ +/* void QtGraphicsGridView::initStyleOption(QStyleOptionViewItemV4 *option, int index) const { QtGraphicsListView::initStyleOption(option, index); option->state &= ~QStyle::State_HasFocus; option->state &= ~QStyle::State_Selected; } - +*/ QT_END_NAMESPACE #include "moc_qgraphicsgridview.cpp" |