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
This commit is contained in:
Rafael Fernández López 2007-10-04 01:35:53 +00:00
parent 7ac3ed4e74
commit a24c1fce82
3 changed files with 22 additions and 1 deletions

View file

@ -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);
}

View file

@ -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;

View file

@ -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);
}