From: Rafael Fernández López Date: Thu, 4 Oct 2007 01:35:53 +0000 (+0000) Subject: Changes related to the smooth scrolling. We can enable it since icefox has submitted... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/a24c1fce8234dc0ad0116aecc06c7151bcdd1cee Changes related to the smooth scrolling. We can enable it since icefox has submitted his "division by zero" to Qt, so it should be safe. If we experience any division by 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 --- diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index 61919c140..590e3c7d8 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -108,6 +108,9 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr m_viewOptions.font = font; m_viewOptions.showDecorationSelected = true; + setVerticalScrollMode(QListView::ScrollPerPixel); + setHorizontalScrollMode(QListView::ScrollPerPixel); + updateDecorationSize(); } @@ -153,6 +156,11 @@ bool DolphinDetailsView::event(QEvent* event) 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); } diff --git a/src/kcategorizedview.cpp b/src/kcategorizedview.cpp index 5ec751fa4..7fe806055 100644 --- a/src/kcategorizedview.cpp +++ b/src/kcategorizedview.cpp @@ -976,7 +976,12 @@ void KCategorizedView::leaveEvent(QEvent *event) 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; diff --git a/src/sidebartreeview.cpp b/src/sidebartreeview.cpp index 8d0b1c73d..86f58c17f 100644 --- a/src/sidebartreeview.cpp +++ b/src/sidebartreeview.cpp @@ -26,6 +26,7 @@ #include #include #include +#include SidebarTreeView::SidebarTreeView(QWidget* parent) : QTreeView(parent), @@ -40,6 +41,8 @@ SidebarTreeView::SidebarTreeView(QWidget* parent) : setDragDropMode(QAbstractItemView::DragDrop); setDropIndicatorShown(false); setAutoExpandDelay(300); + setVerticalScrollMode(QListView::ScrollPerPixel); + setHorizontalScrollMode(QListView::ScrollPerPixel); viewport()->setAttribute(Qt::WA_Hover); @@ -69,6 +72,11 @@ bool SidebarTreeView::event(QEvent* event) 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); }