From 9135ff953740f27686e3c5e11dce5b8cae6cd0d0 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Tue, 6 Dec 2011 19:46:31 +0100 Subject: [PATCH] Don't animate when switching view-modes Currently when switching the view-modes an animation of the items is done, where the position and size is adjusted for the new view-mode. Although this might look nice initially I'd consider this as a kind of animation that is distracting and hence it has been turned off. --- src/views/dolphinview.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 7a39035612..94eed5cf32 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -1126,9 +1126,18 @@ void DolphinView::applyViewProperties() m_container->beginTransaction(); const ViewProperties props(url()); + KFileItemModel* model = fileItemModel(); const Mode mode = props.viewMode(); if (m_mode != mode) { + // Prevent an animated transition of the position and size of the items when switching + // the view-mode by temporary clearing the model and updating it again after the view mode + // has been modified. + const bool restoreModel = (model->count() > 0); + if (restoreModel) { + model->clear(); + } + const Mode previousMode = m_mode; m_mode = mode; @@ -1149,6 +1158,10 @@ void DolphinView::applyViewProperties() if (m_container->zoomLevel() != oldZoomLevel) { emit zoomLevelChanged(m_container->zoomLevel(), oldZoomLevel); } + + if (restoreModel) { + loadDirectory(url()); + } } const bool hiddenFilesShown = props.hiddenFilesShown(); @@ -1158,8 +1171,6 @@ void DolphinView::applyViewProperties() emit hiddenFilesShownChanged(hiddenFilesShown); } - KFileItemModel* model = fileItemModel(); - const bool groupedSorting = props.groupedSorting(); if (groupedSorting != model->groupedSorting()) { model->setGroupedSorting(groupedSorting);