summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Bugge Monsen <mmonsen@trolltech.com>2009-08-20 15:22:16 +0200
committerMarius Bugge Monsen <mmonsen@trolltech.com>2009-08-20 15:22:16 +0200
commit4bff948f46ccf7e8408139bf2fe954a34621cb63 (patch)
tree723172ac1e0f9b6352e9508a2936b7ad11ca1615
parent28ac676c6665ebae08d31d21f0469d23069ed49d (diff)
Get the photoBrowser example working again. This required some ugly hacks in QtGraphicsGridView to get the item geometry correct.
-rw-r--r--examples/photoAlbum/main.cpp10
-rw-r--r--src/experimental/qgraphicsgridview.cpp10
-rw-r--r--src/qgraphicslistview.cpp2
3 files changed, 10 insertions, 12 deletions
diff --git a/examples/photoAlbum/main.cpp b/examples/photoAlbum/main.cpp
index 02a1abb..c106b31 100644
--- a/examples/photoAlbum/main.cpp
+++ b/examples/photoAlbum/main.cpp
@@ -32,7 +32,7 @@ class Photo : public QtGraphicsListViewItem
{
public:
Photo(int index, QtGraphicsListView *view);
- QSizeF sizeHint(int index, const QStyleOptionViewItemV4 *option, Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
+ QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
};
@@ -41,10 +41,8 @@ Photo::Photo(int index, QtGraphicsListView *view)
{
}
-QSizeF Photo::sizeHint(int index, const QStyleOptionViewItemV4 *option, Qt::SizeHint which, const QSizeF &constraint) const
+QSizeF Photo::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const
{
- Q_UNUSED(option);
- Q_UNUSED(index);
Q_UNUSED(constraint);
switch (which) {
case Qt::MinimumSize:
@@ -160,8 +158,6 @@ void ViewTransition::onTransition(QEvent *event)
m_to->setOffsetToEnsureIndexIsVisible(index); // ### FIXME center on item
m_to->doLayout(); // ensure the item is layed out
qobject_cast<QtKineticListController*>(m_to->controller())->stop();
- //qDebug() << "to" << ((QObject*)m_to->itemForIndex(index)) << index;
- //qDebug() << "from" << ((QObject*)m_from->itemForIndex(index)) << index;
m_animation->setTargetObject(reinterpret_cast<QObject*>(m_to->itemForIndex(index)));
m_animation->setStartValue(m_from->itemGeometry(index));
m_animation->setEndValue(m_to->itemGeometry(index));
@@ -272,5 +268,3 @@ int main(int argc, char *argv[])
return app.exec();
}
-
-//#include "main.moc"
diff --git a/src/experimental/qgraphicsgridview.cpp b/src/experimental/qgraphicsgridview.cpp
index b8375c3..e50b45a 100644
--- a/src/experimental/qgraphicsgridview.cpp
+++ b/src/experimental/qgraphicsgridview.cpp
@@ -366,14 +366,18 @@ void QtGraphicsGridView::doLayout()
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->boundingRect().size();
+ const QSizeF size = (item->isWidget()
+ ? static_cast<QGraphicsWidget*>(item)->effectiveSizeHint(Qt::PreferredSize, QSizeF(gridSize, gridSize))
+ : 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->setPos(aligned.topLeft());//### FIXME
+ if (item->isWidget()) // ### FIXME
+ static_cast<QGraphicsWidget*>(item)->setGeometry(aligned);
+ else
+ item->setPos(aligned.topLeft());
}
// remove unused items
const int from = index - firstVisibleIndex;
diff --git a/src/qgraphicslistview.cpp b/src/qgraphicslistview.cpp
index 53fb8e0..09b57ac 100644
--- a/src/qgraphicslistview.cpp
+++ b/src/qgraphicslistview.cpp
@@ -987,7 +987,7 @@ void QtGraphicsListView::doLayout()
// add more items and set geometry
while (index < count && coordinate < areaEnd) {
if (QGraphicsObject *item = d->creator->create(index, this)) {
- d->items.append(QPair<int,QGraphicsObject*>(index, item));
+ d->items.append(QPair<int, QGraphicsObject*>(index, item));
const bool isWidget = item->isWidget();
const QSizeF size = (isWidget
? static_cast<QGraphicsWidget*>(item)->effectiveSizeHint(Qt::PreferredSize, constraint)