mirror of
https://invent.kde.org/system/dolphin
synced 2024-11-05 18:47:12 +00:00
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:
parent
7ac3ed4e74
commit
a24c1fce82
3 changed files with 22 additions and 1 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue