]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphindetailsview.cpp
Bypass a temporary (?) regression (?) with the current Qt 4.4 beta version: it seems...
[dolphin.git] / src / dolphindetailsview.cpp
index 6b15f1c41aff0fb507caae29b72f88bae121e929..df5246bedba18d9f103d6c08308d21f950fd5b6b 100644 (file)
 #include "dolphinsettings.h"
 #include "dolphinsortfilterproxymodel.h"
 #include "draganddrophelper.h"
+#include "selectionmanager.h"
 #include "viewproperties.h"
 
 #include "dolphin_detailsmodesettings.h"
+#include "dolphin_generalsettings.h"
 
 #include <kdirmodel.h>
 #include <klocale.h>
@@ -94,6 +96,13 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
     if (KGlobalSettings::singleClick()) {
         connect(this, SIGNAL(clicked(const QModelIndex&)),
                 this, SLOT(triggerItem(const QModelIndex&)));
+        if (DolphinSettings::instance().generalSettings()->showSelectionToggle()) {
+            SelectionManager* selManager = new SelectionManager(this);
+            connect(selManager, SIGNAL(selectionChanged()),
+                    this, SLOT(requestActivation()));
+            connect(m_controller, SIGNAL(urlChanged(const KUrl&)),
+                    selManager, SLOT(reset()));
+        }
     } else {
         connect(this, SIGNAL(doubleClicked(const QModelIndex&)),
                 this, SLOT(triggerItem(const QModelIndex&)));
@@ -106,7 +115,7 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
             this, SLOT(zoomIn()));
     connect(controller, SIGNAL(zoomOut()),
             this, SLOT(zoomOut()));
-    connect(controller->dolphinView(), SIGNAL(additionalInfoChanged(const KFileItemDelegate::InformationList&)),
+    connect(controller->dolphinView(), SIGNAL(additionalInfoChanged()),
             this, SLOT(updateColumnVisibility()));
 
     // apply the details mode settings to the widget
@@ -349,10 +358,20 @@ void DolphinDetailsView::keyPressEvent(QKeyEvent* event)
 
 void DolphinDetailsView::resizeEvent(QResizeEvent* event)
 {
-    QTreeView::resizeEvent(event);
     if (m_autoResize) {
         resizeColumns();
     }
+    QTreeView::resizeEvent(event);
+}
+
+void DolphinDetailsView::wheelEvent(QWheelEvent* event)
+{
+    // let Ctrl+wheel events propagate to the DolphinView for icon zooming
+    if ((event->modifiers() & Qt::ControlModifier) == Qt::ControlModifier) {
+        event->ignore();
+       return;
+    }
+    QTreeView::wheelEvent(event);
 }
 
 void DolphinDetailsView::setSortIndicatorSection(DolphinView::Sorting sorting)
@@ -508,6 +527,11 @@ void DolphinDetailsView::disableAutoResizing()
     m_autoResize = false;
 }
 
+void DolphinDetailsView::requestActivation()
+{
+    m_controller->requestActivation();
+}
+
 bool DolphinDetailsView::isZoomInPossible() const
 {
     DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
@@ -524,6 +548,7 @@ void DolphinDetailsView::updateDecorationSize()
 {
     DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
     const int iconSize = settings->iconSize();
+    setIconSize(QSize(iconSize, iconSize));
     m_decorationSize = QSize(iconSize, iconSize);
 
     m_controller->setZoomInPossible(isZoomInPossible());