]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Restore "show hidden files" functionality in a generic way which works also for the...
authorPeter Penz <peter.penz19@gmail.com>
Sat, 29 Aug 2009 17:36:02 +0000 (17:36 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 29 Aug 2009 17:36:02 +0000 (17:36 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=1017091

src/dolphinview.cpp
src/viewextensionsfactory.cpp
src/viewextensionsfactory.h

index a883bad51ef9d07d95a62ea7ae693e0b78391112..bae7c40f9c4177caa59848a5bc96098805d69be6 100644 (file)
@@ -767,8 +767,6 @@ void DolphinView::setShowHiddenFiles(bool show)
 
     m_viewAccessor.dirLister()->setShowingDotFiles(show);
     emit showHiddenFilesChanged();
-
-    loadDirectory(viewPropsUrl);
 }
 
 void DolphinView::setCategorizedSorting(bool categorized)
index baaf3524a76dceecff0600b3b6c8d8997d193559..2a2153a94496101f00c8d3e6c88ccc9a8ed49b45 100644 (file)
 
 #include "dolphin_generalsettings.h"
 
+#include <kdirlister.h>
+#include <kdirmodel.h>
 #include <kfilepreviewgenerator.h>
 #include <QAbstractItemView>
 
 ViewExtensionsFactory::ViewExtensionsFactory(QAbstractItemView* view,
                                              DolphinController* controller) :
     QObject(view),
+    m_view(view),
     m_controller(controller),
     m_toolTipManager(0),
     m_previewGenerator(0),
@@ -81,6 +84,9 @@ ViewExtensionsFactory::ViewExtensionsFactory(QAbstractItemView* view,
     m_fileItemDelegate->setShowToolTipWhenElided(false);
     view->setItemDelegate(m_fileItemDelegate);
 
+    // react on view property changes
+    connect(controller->dolphinView(), SIGNAL(showHiddenFilesChanged()),
+            this, SLOT(slotShowHiddenFilesChanged()));
     view->viewport()->installEventFilter(this);
 }
 
@@ -126,6 +132,23 @@ void ViewExtensionsFactory::slotShowPreviewChanged()
     m_previewGenerator->setPreviewShown(show);
 }
 
+void ViewExtensionsFactory::slotShowHiddenFilesChanged()
+{
+    DolphinSortFilterProxyModel* proxyModel = static_cast<DolphinSortFilterProxyModel*>(m_view->model());
+    KDirModel* dirModel = static_cast<KDirModel*>(proxyModel->sourceModel());
+    KDirLister* dirLister = dirModel->dirLister();
+
+    dirLister->stop();
+
+    const bool show = m_controller->dolphinView()->showHiddenFiles();
+    dirLister->setShowingDotFiles(show);
+
+    const KUrl url = dirLister->url();
+    if (url.isValid()) {
+        dirLister->openUrl(url, KDirLister::NoFlags);
+    }
+}
+
 void ViewExtensionsFactory::requestActivation()
 {
     m_controller->requestActivation();
index 79b47a2eb1b8776bd4b61f4e29110b4e437399f0..b218ffa92e344004171236ef28942b58ae43c394 100644 (file)
@@ -65,9 +65,11 @@ private slots:
     void slotZoomLevelChanged();
     void cancelPreviews();
     void slotShowPreviewChanged();
+    void slotShowHiddenFilesChanged();
     void requestActivation();
 
 private:
+    QAbstractItemView* m_view;
     DolphinController* m_controller;
     ToolTipManager* m_toolTipManager;
     KFilePreviewGenerator* m_previewGenerator;