mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 08:21:22 +00:00
If grid size is changed, update correctly items position
svn path=/trunk/KDE/kdebase/apps/; revision=724802
This commit is contained in:
parent
961c3eef96
commit
919d20115f
|
@ -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()
|
void KCategorizedView::Private::drawDraggedItems()
|
||||||
{
|
{
|
||||||
QRect rectToUpdate;
|
QRect rectToUpdate;
|
||||||
|
@ -456,7 +480,7 @@ void KCategorizedView::setGridSize(const QSize &size)
|
||||||
{
|
{
|
||||||
QListView::setGridSize(size);
|
QListView::setGridSize(size);
|
||||||
|
|
||||||
slotLayoutChanged();
|
d->layoutChanged(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void KCategorizedView::setModel(QAbstractItemModel *model)
|
void KCategorizedView::setModel(QAbstractItemModel *model)
|
||||||
|
@ -1335,26 +1359,7 @@ void KCategorizedView::updateGeometries()
|
||||||
|
|
||||||
void KCategorizedView::slotLayoutChanged()
|
void KCategorizedView::slotLayoutChanged()
|
||||||
{
|
{
|
||||||
if ((viewMode() == KCategorizedView::IconMode) && d->proxyModel &&
|
d->layoutChanged();
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "kcategorizedview.moc"
|
#include "kcategorizedview.moc"
|
||||||
|
|
|
@ -112,6 +112,8 @@ public:
|
||||||
*/
|
*/
|
||||||
void drawDraggedItems();
|
void drawDraggedItems();
|
||||||
|
|
||||||
|
void layoutChanged(bool forceItemReload = false);
|
||||||
|
|
||||||
|
|
||||||
// Attributes
|
// Attributes
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue