]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/viewextensionsfactory.cpp
Restore the "Edit->Selection" menu from Konqueror 3 for file
[dolphin.git] / src / viewextensionsfactory.cpp
index b8606d65bfff1aeb2ab7fea2499d708c431d008d..86311e28d745a057597f416764ef0d885aa98501 100644 (file)
 #include "dolphinsortfilterproxymodel.h"
 #include "dolphinview.h"
 #include "dolphinviewautoscroller.h"
+#include "folderexpander.h"
 #include "selectionmanager.h"
 #include "settings/dolphinsettings.h"
 #include "tooltips/tooltipmanager.h"
-#include "versioncontrolobserver.h"
+#include "versioncontrol/versioncontrolobserver.h"
 
 #include "dolphin_generalsettings.h"
 
@@ -62,6 +63,7 @@ ViewExtensionsFactory::ViewExtensionsFactory(QAbstractItemView* view,
     }
 
     // initialize preview generator
+    Q_ASSERT(view->iconSize().isValid());
     m_previewGenerator = new KFilePreviewGenerator(view);
     m_previewGenerator->setPreviewShown(controller->dolphinView()->showPreview());
     connect(controller, SIGNAL(zoomLevelChanged(int)),
@@ -114,6 +116,15 @@ ViewExtensionsFactory::ViewExtensionsFactory(QAbstractItemView* view,
     connect(view->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),
             controller, SLOT(emitSelectionChanged()));
 
+    // Give the view the ability to auto-expand its directories on hovering
+    // (the column view takes care about this itself). If the details view
+    // uses expandable folders, the auto-expanding should be used always.
+    m_folderExpander = new FolderExpander(view, proxyModel());
+    m_folderExpander->setEnabled(settings->autoExpandFolders());
+    connect(m_folderExpander, SIGNAL(enterDir(const QModelIndex&)),
+            controller, SLOT(triggerItem(const QModelIndex&)));
+
+    // react on namefilter changes
     connect(controller, SIGNAL(nameFilterChanged(const QString&)),
             this, SLOT(slotNameFilterChanged(const QString&)));
 
@@ -134,6 +145,16 @@ DolphinFileItemDelegate* ViewExtensionsFactory::fileItemDelegate() const
     return m_fileItemDelegate;
 }
 
+void ViewExtensionsFactory::setAutoFolderExpandingEnabled(bool enabled)
+{
+    m_folderExpander->setEnabled(enabled);
+}
+
+bool ViewExtensionsFactory::autoFolderExpandingEnabled() const
+{
+    return m_folderExpander->enabled();
+}
+
 bool ViewExtensionsFactory::eventFilter(QObject* watched, QEvent* event)
 {
     Q_UNUSED(watched);