]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Changes related to the smooth scrolling. We can enable it since icefox has submitted...
authorRafael Fernández López <ereslibre@kde.org>
Thu, 4 Oct 2007 01:35:53 +0000 (01:35 +0000)
committerRafael Fernández López <ereslibre@kde.org>
Thu, 4 Oct 2007 01:35:53 +0000 (01:35 +0000)
zero or report, we just disable them commenting them out and with a comment to remind ourselves to uncomment them after.

The smooth scrolling is being combined with a good behavior when using the mouse wheel.

Some investigation on QListView found nice stuff for KCategorizedView.

Peter, I have the smooth scrolling for KDirOperator too, let me that one... I have binary incompatible changes merged there with this ones and I am committing everything
together on friday.

CCMAIL: peter.penz@gmx.at

svn path=/trunk/KDE/kdebase/apps/; revision=720918

src/dolphindetailsview.cpp
src/kcategorizedview.cpp
src/sidebartreeview.cpp

index 61919c140e72d6c6ff7047d5f36f48396697c3f5..590e3c7d8f4d00c859f435acc1cb39371941e56a 100644 (file)
@@ -108,6 +108,9 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
     m_viewOptions.font = font;
     m_viewOptions.showDecorationSelected = true;
 
     m_viewOptions.font = font;
     m_viewOptions.showDecorationSelected = true;
 
+    setVerticalScrollMode(QListView::ScrollPerPixel);
+    setHorizontalScrollMode(QListView::ScrollPerPixel);
+
     updateDecorationSize();
 }
 
     updateDecorationSize();
 }
 
@@ -153,6 +156,11 @@ bool DolphinDetailsView::event(QEvent* event)
         hideColumn(DolphinModel::Rating);
         hideColumn(DolphinModel::Tags);
     }
         hideColumn(DolphinModel::Rating);
         hideColumn(DolphinModel::Tags);
     }
+    else if (event->type() == QEvent::UpdateRequest) {
+        // A wheel movement will scroll 4 items
+        if (model()->rowCount())
+            verticalScrollBar()->setSingleStep((sizeHintForRow(0) / 3) * 4);
+    }
 
     return QTreeView::event(event);
 }
 
     return QTreeView::event(event);
 }
index 5ec751fa4d0bfc676dbe70f61f358f914dc6ab48..7fe80605552a23b7a4c9336326c7ec42bf55c516 100644 (file)
@@ -976,7 +976,12 @@ void KCategorizedView::leaveEvent(QEvent *event)
 
 void KCategorizedView::startDrag(Qt::DropActions supportedActions)
 {
 
 void KCategorizedView::startDrag(Qt::DropActions supportedActions)
 {
-    QListView::startDrag(supportedActions);
+    // FIXME: QAbstractItemView does far better here since it sets the
+    //        pixmap of selected icons to the dragging cursor, but it sets a non
+    //        ARGB window so it is no transparent. Use QAbstractItemView when
+    //        this is fixed on Qt.
+    //QListView::startDrag(supportedActions);
+    QAbstractItemView::startDrag(supportedActions);
 
     d->isDragging = false;
     d->mouseButtonPressed = false;
 
     d->isDragging = false;
     d->mouseButtonPressed = false;
index 8d0b1c73dd2053f0e418c46c3c9373e369d1f4b2..86f58c17f198a5e8fc332df2bf065c9a6117dacd 100644 (file)
@@ -26,6 +26,7 @@
 #include <QKeyEvent>
 #include <QPainter>
 #include <QHeaderView>
 #include <QKeyEvent>
 #include <QPainter>
 #include <QHeaderView>
+#include <QScrollBar>
 
 SidebarTreeView::SidebarTreeView(QWidget* parent) :
     QTreeView(parent),
 
 SidebarTreeView::SidebarTreeView(QWidget* parent) :
     QTreeView(parent),
@@ -40,6 +41,8 @@ SidebarTreeView::SidebarTreeView(QWidget* parent) :
     setDragDropMode(QAbstractItemView::DragDrop);
     setDropIndicatorShown(false);
     setAutoExpandDelay(300);
     setDragDropMode(QAbstractItemView::DragDrop);
     setDropIndicatorShown(false);
     setAutoExpandDelay(300);
+    setVerticalScrollMode(QListView::ScrollPerPixel);
+    setHorizontalScrollMode(QListView::ScrollPerPixel);
 
     viewport()->setAttribute(Qt::WA_Hover);
 
 
     viewport()->setAttribute(Qt::WA_Hover);
 
@@ -69,6 +72,11 @@ bool SidebarTreeView::event(QEvent* event)
         hideColumn(DolphinModel::Tags);
         header()->hide();
     }
         hideColumn(DolphinModel::Tags);
         header()->hide();
     }
+    else if (event->type() == QEvent::UpdateRequest) {
+        // A wheel movement will scroll 1 item
+        if (model()->rowCount())
+            verticalScrollBar()->setSingleStep(sizeHintForRow(0) / 3);
+    }
 
     return QTreeView::event(event);
 }
 
     return QTreeView::event(event);
 }