]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincolumnview.cpp
assure that the widgets of the panels are resized after receiving the Polish event
[dolphin.git] / src / dolphincolumnview.cpp
index 6f1b5dc77fbfca780e22a1145ad5ac115272dfde..debe10d35567d527a57942aa4bb4a95d74deebf8 100644 (file)
@@ -31,7 +31,6 @@
 #include "draganddrophelper.h"
 #include "folderexpander.h"
 #include "tooltips/tooltipmanager.h"
-#include "versioncontrolobserver.h"
 #include "viewextensionsfactory.h"
 #include "zoomlevelinfo.h"
 
@@ -126,26 +125,17 @@ DolphinColumnView::DolphinColumnView(QWidget* parent,
     connect(KGlobalSettings::self(), SIGNAL(kdisplayFontChanged()),
             this, SLOT(updateFont()));
 
-    /*FolderExpander* folderExpander = new FolderExpander(this, m_proxyModel);
-    folderExpander->setEnabled(DolphinSettings::instance().generalSettings()->autoExpandFolders());
-    connect (folderExpander, SIGNAL(enterDir(const QModelIndex&)),
-             m_container->m_controller, SLOT(triggerItem(const QModelIndex&)));
-
-    new VersionControlObserver(this);*/
-
     DolphinController* controller = m_container->m_controller;
     connect(controller, SIGNAL(zoomLevelChanged(int)),
             this, SLOT(setZoomLevel(int)));
 
     const QString nameFilter = controller->nameFilter();
     if (!nameFilter.isEmpty()) {
-        m_proxyModel->setFilterRegExp(nameFilter);
+        m_proxyModel->setFilterFixedString(nameFilter);
     }
-    connect(controller, SIGNAL(nameFilterChanged(const QString&)),
-            this, SLOT(setNameFilter(const QString&)));
 
-    m_extensionsFactory = new ViewExtensionsFactory(this, controller);
     updateDecorationSize(dolphinView->showPreview());
+    m_extensionsFactory = new ViewExtensionsFactory(this, controller);
 }
 
 DolphinColumnView::~DolphinColumnView()
@@ -202,10 +192,27 @@ KFileItem DolphinColumnView::itemAt(const QPoint& pos) const
     return item;
 }
 
+void DolphinColumnView::setSelectionModel(QItemSelectionModel* model)
+{
+    // If a change of the selection is done although the view is not active
+    // (e. g. by the selection markers), the column must be activated. This
+    // is done by listening to the current selectionChanged() signal.
+    if (selectionModel() != 0) {
+        disconnect(selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
+                   this, SLOT(requestActivation()));
+    }
+
+    QListView::setSelectionModel(model);
+
+    connect(selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
+            this, SLOT(requestActivation()));
+}
+
 QStyleOptionViewItem DolphinColumnView::viewOptions() const
 {
     QStyleOptionViewItem viewOptions = QListView::viewOptions();
     viewOptions.font = m_font;
+    viewOptions.fontMetrics = QFontMetrics(m_font);
     viewOptions.decorationSize = m_decorationSize;
     viewOptions.showDecorationSelected = true;
     return viewOptions;
@@ -337,29 +344,13 @@ void DolphinColumnView::contextMenuEvent(QContextMenuEvent* event)
     Q_ASSERT(m_active);
 
     QListView::contextMenuEvent(event);
-
-    const QModelIndex index = indexAt(event->pos());
-    if (!index.isValid()) {
-        clearSelection();
-    }
-
-    const QPoint pos = m_container->viewport()->mapFromGlobal(event->globalPos());
-    Q_ASSERT(m_container->m_controller->itemView() == this);
-    m_container->m_controller->triggerContextMenuRequest(pos);
+    m_container->m_controller->triggerContextMenuRequest(event->pos());
 }
 
 void DolphinColumnView::wheelEvent(QWheelEvent* event)
 {
-    // let Ctrl+wheel events propagate to the DolphinView for icon zooming
-    if (event->modifiers() & Qt::ControlModifier) {
-        event->ignore();
-        return;
-    }
-
-    const int height = m_decorationSize.height();
-    const int step = (height >= KIconLoader::SizeHuge) ? height / 10 : (KIconLoader::SizeHuge - height) / 2;
+    const int step = m_decorationSize.height();
     verticalScrollBar()->setSingleStep(step);
-
     QListView::wheelEvent(event);
 }
 
@@ -372,26 +363,12 @@ void DolphinColumnView::leaveEvent(QEvent* event)
     m_container->m_controller->emitViewportEntered();
 }
 
-void DolphinColumnView::selectionChanged(const QItemSelection& selected, const QItemSelection& deselected)
-{
-    QListView::selectionChanged(selected, deselected);
-
-    //QItemSelectionModel* selModel = m_container->selectionModel();
-    //selModel->select(selected, QItemSelectionModel::Select);
-    //selModel->select(deselected, QItemSelectionModel::Deselect);
-}
-
 void DolphinColumnView::currentChanged(const QModelIndex& current, const QModelIndex& previous)
 {
     QListView::currentChanged(current, previous);
     m_extensionsFactory->handleCurrentIndexChange(current, previous);
 }
 
-void DolphinColumnView::setNameFilter(const QString& nameFilter)
-{
-    m_proxyModel->setFilterRegExp(nameFilter);
-}
-
 void DolphinColumnView::setZoomLevel(int level)
 {
     const int size = ZoomLevelInfo::iconSizeForZoomLevel(level);