]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/sidebartreeview.cpp
* fixed drag & drop issue in column view (dropping on files was not possible -> handl...
[dolphin.git] / src / sidebartreeview.cpp
index 8d0b1c73dd2053f0e418c46c3c9373e369d1f4b2..ae6c26224c0ea4361a2b592ea187bd27b9b75c1b 100644 (file)
@@ -26,6 +26,7 @@
 #include <QKeyEvent>
 #include <QPainter>
 #include <QHeaderView>
+#include <QScrollBar>
 
 SidebarTreeView::SidebarTreeView(QWidget* parent) :
     QTreeView(parent),
@@ -41,6 +42,15 @@ SidebarTreeView::SidebarTreeView(QWidget* parent) :
     setDropIndicatorShown(false);
     setAutoExpandDelay(300);
 
+// TODO: Remove this check when 4.3.2 is released and KDE requires it... this
+//       check avoids a division by zero happening on versions before 4.3.1.
+//       Right now KDE in theory can be shipped with Qt 4.3.0 and above.
+//       ereslibre
+#if (QT_VERSION >= QT_VERSION_CHECK(4, 3, 2) || defined(QT_KDE_QT_COPY))
+    setVerticalScrollMode(QListView::ScrollPerPixel);
+    setHorizontalScrollMode(QListView::ScrollPerPixel);
+#endif
+
     viewport()->setAttribute(Qt::WA_Hover);
 
     QPalette palette = viewport()->palette();
@@ -69,6 +79,18 @@ bool SidebarTreeView::event(QEvent* event)
         hideColumn(DolphinModel::Tags);
         header()->hide();
     }
+// TODO: Remove this check when 4.3.2 is released and KDE requires it... this
+//       check avoids a division by zero happening on versions before 4.3.1.
+//       Right now KDE in theory can be shipped with Qt 4.3.0 and above.
+//       ereslibre
+#if (QT_VERSION >= QT_VERSION_CHECK(4, 3, 2) || defined(QT_KDE_QT_COPY))
+    else if (event->type() == QEvent::UpdateRequest) {
+        // a wheel movement will scroll 1 item
+        if (model()->rowCount() > 0) {
+            verticalScrollBar()->setSingleStep(sizeHintForRow(0) / 3);
+        }
+    }
+#endif
 
     return QTreeView::event(event);
 }