┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Fernández López <[email protected]>2007-10-04 01:35:53 +0000
committerRafael Fernández López <[email protected]>2007-10-04 01:35:53 +0000
commita24c1fce8234dc0ad0116aecc06c7151bcdd1cee (patch)
treef7d58e08ef2ab56c632a741aa00f06d18e0eaf54
parent7ac3ed4e749789ae348a80638cc18906c697b306 (diff)
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: [email protected] svn path=/trunk/KDE/kdebase/apps/; revision=720918
-rw-r--r--src/dolphindetailsview.cpp8
-rw-r--r--src/kcategorizedview.cpp7
-rw-r--r--src/sidebartreeview.cpp8
3 files changed, 22 insertions, 1 deletions
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 <QKeyEvent>
#include <QPainter>
#include <QHeaderView>
+#include <QScrollBar>
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);
}