┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Fernández López <[email protected]>2007-10-13 14:07:46 +0000
committerRafael Fernández López <[email protected]>2007-10-13 14:07:46 +0000
commit919d20115f9f3f085b1719ce51b2bd04240662bb (patch)
tree35d1ef0e05edba89565165da5849a1e88b750a05
parent961c3eef96a6370ca32488b9a9c5d63a7b166a90 (diff)
If grid size is changed, update correctly items position
svn path=/trunk/KDE/kdebase/apps/; revision=724802
-rw-r--r--src/kcategorizedview.cpp47
-rw-r--r--src/kcategorizedview_p.h2
2 files changed, 28 insertions, 21 deletions
diff --git a/src/kcategorizedview.cpp b/src/kcategorizedview.cpp
index 20f9675f6..20fbdc757 100644
--- a/src/kcategorizedview.cpp
+++ b/src/kcategorizedview.cpp
@@ -414,6 +414,30 @@ void KCategorizedView::Private::drawDraggedItems(QPainter *painter)
}
}
+void KCategorizedView::Private::layoutChanged(bool forceItemReload)
+{
+ if ((listView->viewMode() == KCategorizedView::IconMode) && proxyModel &&
+ categoryDrawer && proxyModel->isCategorizedModel() &&
+ (((modelSortRole != proxyModel->sortRole()) ||
+ (modelSortColumn != proxyModel->sortColumn()) ||
+ (modelSortOrder != proxyModel->sortOrder()) ||
+ (modelCategorized != proxyModel->isCategorizedModel())) || forceItemReload))
+ {
+ // Force the view to update all elements
+ listView->rowsInsertedArtifficial(QModelIndex(), 0, proxyModel->rowCount() - 1);
+
+ modelSortRole = proxyModel->sortRole();
+ modelSortColumn = proxyModel->sortColumn();
+ modelCategorized = proxyModel->isCategorizedModel();
+ modelSortOrder = proxyModel->sortOrder();
+ }
+ else if ((listView->viewMode() == KCategorizedView::IconMode) && proxyModel &&
+ categoryDrawer && proxyModel->isCategorizedModel())
+ {
+ updateScrollbars();
+ }
+}
+
void KCategorizedView::Private::drawDraggedItems()
{
QRect rectToUpdate;
@@ -456,7 +480,7 @@ void KCategorizedView::setGridSize(const QSize &size)
{
QListView::setGridSize(size);
- slotLayoutChanged();
+ d->layoutChanged(true);
}
void KCategorizedView::setModel(QAbstractItemModel *model)
@@ -1335,26 +1359,7 @@ void KCategorizedView::updateGeometries()
void KCategorizedView::slotLayoutChanged()
{
- if ((viewMode() == KCategorizedView::IconMode) && d->proxyModel &&
- d->categoryDrawer && d->proxyModel->isCategorizedModel() &&
- ((d->modelSortRole != d->proxyModel->sortRole()) ||
- (d->modelSortColumn != d->proxyModel->sortColumn()) ||
- (d->modelSortOrder != d->proxyModel->sortOrder()) ||
- (d->modelCategorized != d->proxyModel->isCategorizedModel())))
- {
- // Force the view to update all elements
- rowsInsertedArtifficial(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
-
- d->modelSortRole = d->proxyModel->sortRole();
- d->modelSortColumn = d->proxyModel->sortColumn();
- d->modelCategorized = d->proxyModel->isCategorizedModel();
- d->modelSortOrder = d->proxyModel->sortOrder();
- }
- else if ((viewMode() == KCategorizedView::IconMode) && d->proxyModel &&
- d->categoryDrawer && d->proxyModel->isCategorizedModel())
- {
- d->updateScrollbars();
- }
+ d->layoutChanged();
}
#include "kcategorizedview.moc"
diff --git a/src/kcategorizedview_p.h b/src/kcategorizedview_p.h
index 255629073..3b1e2cef6 100644
--- a/src/kcategorizedview_p.h
+++ b/src/kcategorizedview_p.h
@@ -112,6 +112,8 @@ public:
*/
void drawDraggedItems();
+ void layoutChanged(bool forceItemReload = false);
+
// Attributes