diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphinview.cpp | 2 | ||||
| -rw-r--r-- | src/viewextensionsfactory.cpp | 23 | ||||
| -rw-r--r-- | src/viewextensionsfactory.h | 2 |
3 files changed, 25 insertions, 2 deletions
diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index a883bad51..bae7c40f9 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -767,8 +767,6 @@ void DolphinView::setShowHiddenFiles(bool show) m_viewAccessor.dirLister()->setShowingDotFiles(show); emit showHiddenFilesChanged(); - - loadDirectory(viewPropsUrl); } void DolphinView::setCategorizedSorting(bool categorized) diff --git a/src/viewextensionsfactory.cpp b/src/viewextensionsfactory.cpp index baaf3524a..2a2153a94 100644 --- a/src/viewextensionsfactory.cpp +++ b/src/viewextensionsfactory.cpp @@ -30,12 +30,15 @@ #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(); diff --git a/src/viewextensionsfactory.h b/src/viewextensionsfactory.h index 79b47a2eb..b218ffa92 100644 --- a/src/viewextensionsfactory.h +++ b/src/viewextensionsfactory.h @@ -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; |
