┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRafael Fernández López <[email protected]>2007-10-14 22:51:02 +0000
committerRafael Fernández López <[email protected]>2007-10-14 22:51:02 +0000
commit417a1f6256c704a51e4883adad4608c78c0cdc3c (patch)
tree3e8155b227aa4354346aea6411c09a0aaf20d65e /src
parent9f814ded982f95a36efeae4717d9a69c68db789c (diff)
The sorting on dolphinview is no more needed, it is done automatically by KCategorizedSortFilterProxyModel when setCategorizedModel is changed.
Bug fixed for the categorized view: Details => Icons (with no categories) => Categorized was resulting in no items in the view or all items in the same position svn path=/trunk/KDE/kdebase/apps/; revision=725212
Diffstat (limited to 'src')
-rw-r--r--src/dolphinview.cpp3
-rw-r--r--src/kcategorizedview.cpp25
2 files changed, 16 insertions, 12 deletions
diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp
index ecc4dc341..87170bfb7 100644
--- a/src/dolphinview.cpp
+++ b/src/dolphinview.cpp
@@ -204,7 +204,6 @@ void DolphinView::setMode(Mode mode)
const bool categorized = m_storedCategorizedSorting && supportsCategorizedSorting();
if (categorized != m_proxyModel->isCategorizedModel()) {
m_proxyModel->setCategorizedModel(categorized);
- m_proxyModel->sort(m_proxyModel->sortColumn(), m_proxyModel->sortOrder());
emit categorizedSortingChanged();
}
@@ -273,7 +272,6 @@ void DolphinView::setCategorizedSorting(bool categorized)
m_storedCategorizedSorting = categorized;
m_proxyModel->setCategorizedModel(categorized);
- m_proxyModel->sort(m_proxyModel->sortColumn(), m_proxyModel->sortOrder());
emit categorizedSortingChanged();
}
@@ -666,7 +664,6 @@ void DolphinView::applyViewProperties(const KUrl& url)
const bool categorized = m_storedCategorizedSorting && supportsCategorizedSorting();
if (categorized != m_proxyModel->isCategorizedModel()) {
m_proxyModel->setCategorizedModel(categorized);
- m_proxyModel->sort(m_proxyModel->sortColumn(), m_proxyModel->sortOrder());
emit categorizedSortingChanged();
}
diff --git a/src/kcategorizedview.cpp b/src/kcategorizedview.cpp
index 20fbdc757..a3e60f1c4 100644
--- a/src/kcategorizedview.cpp
+++ b/src/kcategorizedview.cpp
@@ -418,18 +418,22 @@ void KCategorizedView::Private::layoutChanged(bool forceItemReload)
{
if ((listView->viewMode() == KCategorizedView::IconMode) && proxyModel &&
categoryDrawer && proxyModel->isCategorizedModel() &&
- (((modelSortRole != proxyModel->sortRole()) ||
+ ((forceItemReload ||
+ (modelSortRole != proxyModel->sortRole()) ||
(modelSortColumn != proxyModel->sortColumn()) ||
(modelSortOrder != proxyModel->sortOrder()) ||
- (modelCategorized != proxyModel->isCategorizedModel())) || forceItemReload))
+ (modelCategorized != proxyModel->isCategorizedModel()))))
{
// 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();
+ if (!forceItemReload)
+ {
+ modelSortRole = proxyModel->sortRole();
+ modelSortColumn = proxyModel->sortColumn();
+ modelSortOrder = proxyModel->sortOrder();
+ modelCategorized = proxyModel->isCategorizedModel();
+ }
}
else if ((listView->viewMode() == KCategorizedView::IconMode) && proxyModel &&
categoryDrawer && proxyModel->isCategorizedModel())
@@ -521,8 +525,8 @@ void KCategorizedView::setModel(QAbstractItemModel *model)
{
d->modelSortRole = d->proxyModel->sortRole();
d->modelSortColumn = d->proxyModel->sortColumn();
- d->modelCategorized = true;
d->modelSortOrder = d->proxyModel->sortOrder();
+ d->modelCategorized = d->proxyModel->isCategorizedModel();
QObject::connect(d->proxyModel,
SIGNAL(layoutChanged()),
@@ -538,7 +542,7 @@ void KCategorizedView::setModel(QAbstractItemModel *model)
if (d->proxyModel->rowCount())
{
- rowsInsertedArtifficial(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
+ d->layoutChanged(true);
}
}
else
@@ -618,7 +622,10 @@ void KCategorizedView::setCategoryDrawer(KCategoryDrawer *categoryDrawer)
{
if (d->proxyModel)
{
- rowsInsertedArtifficial(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
+ if (d->proxyModel->rowCount())
+ {
+ d->layoutChanged(true);
+ }
}
}
else