]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincolumnview.cpp
SVN_SILENT made messages (.desktop file)
[dolphin.git] / src / dolphincolumnview.cpp
index 45fa68a3f0f39d56800ee11db7936698025c1db6..bfbc5d9f135e3fab954cc17416a5b4023361a3a6 100644 (file)
 
 #include "dolphincolumnview.h"
 
-#include "dolphinmodel.h"
 #include "dolphincolumnwidget.h"
 #include "dolphincontroller.h"
-#include "dolphindirlister.h"
-#include "dolphinmodel.h"
-#include "dolphinsortfilterproxymodel.h"
 #include "dolphinsettings.h"
 
 #include "dolphin_columnmodesettings.h"
 
-#include <kcolorutils.h>
-#include <kcolorscheme.h>
-#include <kdirlister.h>
-
-#include <QAbstractProxyModel>
-#include <QApplication>
 #include <QPoint>
 #include <QScrollBar>
-#include <QTimer>
 #include <QTimeLine>
 
 DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* controller) :
@@ -48,7 +37,8 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control
     m_contentX(0),
     m_columns(),
     m_emptyViewport(0),
-    m_animation(0)
+    m_animation(0),
+    m_nameFilter()
 {
     Q_ASSERT(controller != 0);
 
@@ -65,13 +55,15 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control
             this, SLOT(zoomIn()));
     connect(controller, SIGNAL(zoomOut()),
             this, SLOT(zoomOut()));
-    connect(controller, SIGNAL(showHiddenFilesChanged(bool)),
-            this, SLOT(slotShowHiddenFilesChanged(bool)));
-    connect(controller, SIGNAL(showPreviewChanged(bool)),
-            this, SLOT(slotShowPreviewChanged(bool)));
     connect(controller, SIGNAL(activationChanged(bool)),
             this, SLOT(updateColumnsBackground(bool)));
 
+    const DolphinView* view = controller->dolphinView();
+    connect(view, SIGNAL(showHiddenFilesChanged()),
+            this, SLOT(slotShowHiddenFilesChanged()));
+    connect(view, SIGNAL(showPreviewChanged()),
+            this, SLOT(slotShowPreviewChanged()));
+
     connect(horizontalScrollBar(), SIGNAL(valueChanged(int)),
             this, SLOT(moveContentHorizontally(int)));
 
@@ -145,14 +137,17 @@ void DolphinColumnView::setRootUrl(const KUrl& url)
 
 void DolphinColumnView::setNameFilter(const QString& nameFilter)
 {
-    foreach (DolphinColumnWidget* column, m_columns) {
-        column->setNameFilter(nameFilter);
+    if (nameFilter != m_nameFilter) {
+        m_nameFilter = nameFilter;
+        foreach (DolphinColumnWidget* column, m_columns) {
+            column->setNameFilter(nameFilter);
+        }
     }
 }
 
 QString DolphinColumnView::nameFilter() const
 {
-    return activeColumn()->nameFilter();
+    return m_nameFilter;
 }
 
 KUrl DolphinColumnView::rootUrl() const
@@ -172,6 +167,7 @@ void DolphinColumnView::showColumn(const KUrl& url)
         if (column->url() == url) {
             // the column represents already the requested URL, hence activate it
             requestActivation(column);
+            layoutColumns();
             return;
         } else if (!column->url().isParentOf(url)) {
             // the column is no parent of the requested URL, hence
@@ -335,6 +331,7 @@ void DolphinColumnView::resizeEvent(QResizeEvent* event)
     QAbstractItemView::resizeEvent(event);
     layoutColumns();
     updateScrollBar();
+    assureVisibleActiveColumn();
 }
 
 void DolphinColumnView::zoomIn()
@@ -405,15 +402,17 @@ void DolphinColumnView::updateColumnsBackground(bool active)
     }
 }
 
-void DolphinColumnView::slotShowHiddenFilesChanged(bool show)
+void DolphinColumnView::slotShowHiddenFilesChanged()
 {
+    const bool show = m_controller->dolphinView()->showHiddenFiles();
     foreach (DolphinColumnWidget* column, m_columns) {
         column->setShowHiddenFiles(show);
     }
 }
 
-void DolphinColumnView::slotShowPreviewChanged(bool show)
+void DolphinColumnView::slotShowPreviewChanged()
 {
+    const bool show = m_controller->dolphinView()->showPreview();
     foreach (DolphinColumnWidget* column, m_columns) {
         column->setShowPreview(show);
     }
@@ -504,7 +503,8 @@ void DolphinColumnView::assureVisibleActiveColumn()
         } else {
             m_animation->setFrameRange(-m_contentX, -newContentX);
         }
-        m_animation->start();
+        if(m_animation->state() != QTimeLine::Running)
+           m_animation->start();
     } else if (x < 0) {
         const int newContentX = m_contentX - x;
         if (isRightToLeft()) {
@@ -512,7 +512,8 @@ void DolphinColumnView::assureVisibleActiveColumn()
         } else {
             m_animation->setFrameRange(-m_contentX, -newContentX);
         }
-        m_animation->start();
+        if(m_animation->state() != QTimeLine::Running)
+           m_animation->start();
     }
 }