]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Don't animate when switching view-modes
authorPeter Penz <peter.penz19@gmail.com>
Tue, 6 Dec 2011 18:46:31 +0000 (19:46 +0100)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 6 Dec 2011 18:50:09 +0000 (19:50 +0100)
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

index 7a390356129a42b782ca22a9830b1801e9e94f43..94eed5cf32c57f5bebd176ceac4e7fc9d1709e64 100644 (file)
@@ -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);