TaskView: Fix scrolling

Broken by qtbase commit 934f06220391eb0e0ebf66a2eb037f48adb4c43c

Change-Id: Iafbeab63cca8b6f328276eaf0a4d27a749b30087
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Daniel Teske
2013-10-24 16:54:24 +02:00
parent deeeda162d
commit c033fc3a34

View File

@@ -48,6 +48,7 @@
#include <QStyledItemDelegate> #include <QStyledItemDelegate>
#include <QMenu> #include <QMenu>
#include <QToolButton> #include <QToolButton>
#include <QScrollBar>
namespace { namespace {
const int ELLIPSIS_GRADIENT_WIDTH = 16; const int ELLIPSIS_GRADIENT_WIDTH = 16;
@@ -74,6 +75,8 @@ class TaskDelegate : public QStyledItemDelegate
{ {
Q_OBJECT Q_OBJECT
friend class TaskView; // for using Positions::minimumSize()
public: public:
TaskDelegate(QObject * parent = 0); TaskDelegate(QObject * parent = 0);
~TaskDelegate(); ~TaskDelegate();
@@ -126,11 +129,11 @@ private:
int right() const { return m_totalWidth - ITEM_MARGIN; } int right() const { return m_totalWidth - ITEM_MARGIN; }
int bottom() const { return m_bottom; } int bottom() const { return m_bottom; }
int firstLineHeight() const { return m_fontHeight + 1; } int firstLineHeight() const { return m_fontHeight + 1; }
int minimumHeight() const { return taskIconHeight() + 2 * ITEM_MARGIN; } static int minimumHeight() { return taskIconHeight() + 2 * ITEM_MARGIN; }
int taskIconLeft() const { return left(); } int taskIconLeft() const { return left(); }
int taskIconWidth() const { return TASK_ICON_SIZE; } static int taskIconWidth() { return TASK_ICON_SIZE; }
int taskIconHeight() const { return TASK_ICON_SIZE; } static int taskIconHeight() { return TASK_ICON_SIZE; }
int taskIconRight() const { return taskIconLeft() + taskIconWidth(); } int taskIconRight() const { return taskIconLeft() + taskIconWidth(); }
QRect taskIcon() const { return QRect(taskIconLeft(), top(), taskIconWidth(), taskIconHeight()); } QRect taskIcon() const { return QRect(taskIconLeft(), top(), taskIconWidth(), taskIconHeight()); }
@@ -169,6 +172,13 @@ TaskView::TaskView(QWidget *parent)
{ {
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
QFontMetrics fm(font());
int vStepSize = fm.height() + 3;
if (vStepSize < TaskDelegate::Positions::minimumHeight())
vStepSize = TaskDelegate::Positions::minimumHeight();
verticalScrollBar()->setSingleStep(vStepSize);
} }
TaskView::~TaskView() TaskView::~TaskView()