summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@nokia.com>2009-10-02 11:54:29 (GMT)
committerRichard Moe Gustavsen <richard.gustavsen@nokia.com>2009-10-02 11:59:40 (GMT)
commit1f4e378ca0f9c63bb99a92f3e98b104a0baa408a (patch)
treef95d655380713c504958ed9bdf5e41196d185f95 /src
parentfb85af439715ff5ec141473b5c1d8f9744aca19d (diff)
downloadQt-1f4e378ca0f9c63bb99a92f3e98b104a0baa408a.zip
Qt-1f4e378ca0f9c63bb99a92f3e98b104a0baa408a.tar.gz
Qt-1f4e378ca0f9c63bb99a92f3e98b104a0baa408a.tar.bz2
Mac: update/small fix to 45f095b8970dc3c1b6f6e97fa2323654ba848288
It turns out that we need to let singleStep keep its value in qtextedit so that pushing the up/down buttons on the slider works as they should. Moreover, overriding the behaviour in abstract slider also makes QGraphicsView work out of the box. Also added in the test fix suggested by Olivier.
Diffstat (limited to 'src')
-rw-r--r--src/gui/widgets/qabstractslider.cpp21
-rw-r--r--src/gui/widgets/qtextedit.cpp5
2 files changed, 14 insertions, 12 deletions
diff --git a/src/gui/widgets/qabstractslider.cpp b/src/gui/widgets/qabstractslider.cpp
index c3289b4..28f3be3 100644
--- a/src/gui/widgets/qabstractslider.cpp
+++ b/src/gui/widgets/qabstractslider.cpp
@@ -693,13 +693,8 @@ void QAbstractSlider::wheelEvent(QWheelEvent * e)
if (e->orientation() != d->orientation && !rect().contains(e->pos()))
return;
- int step = qMin(QApplication::wheelScrollLines() * d->singleStep, d->pageStep);
- if ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::ShiftModifier))
- step = d->pageStep;
-
- qreal currentOffset = qreal(e->delta()) * step / 120;
+ qreal currentOffset = qreal(e->delta()) / 120;
d->offset_accumulated += d->invertedControls ? -currentOffset : currentOffset;
-
if (int(d->offset_accumulated) == 0) {
// QAbstractSlider works on integer values. So if the accumulated
// offset is less than +/- 1, we need to wait until we get more
@@ -708,8 +703,20 @@ void QAbstractSlider::wheelEvent(QWheelEvent * e)
return;
}
+ // Calculate the number of steps to scroll (per 15 degrees of rotate):
+#ifdef Q_OS_MAC
+ // On mac, since mouse wheel scrolling is accelerated and
+ // fine tuned by the OS, we skip applying acceleration:
+ int stepsToScroll = int(d->offset_accumulated);
+#else
+ int step = qMin(QApplication::wheelScrollLines() * d->singleStep, d->pageStep);
+ if ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::ShiftModifier))
+ step = d->pageStep;
+ int stepsToScroll = step * int(d->offset_accumulated);
+#endif
+
int prevValue = d->value;
- d->position = d->overflowSafeAdd(int(d->offset_accumulated)); // value will be updated by triggerAction()
+ d->position = d->overflowSafeAdd(stepsToScroll); // value will be updated by triggerAction()
triggerAction(SliderMove);
if (prevValue == d->value) {
diff --git a/src/gui/widgets/qtextedit.cpp b/src/gui/widgets/qtextedit.cpp
index 3fe9bb4..dc78fd5 100644
--- a/src/gui/widgets/qtextedit.cpp
+++ b/src/gui/widgets/qtextedit.cpp
@@ -174,13 +174,8 @@ void QTextEditPrivate::init(const QString &html)
if (!html.isEmpty())
control->setHtml(html);
-#ifdef Q_OS_MAC
- hbar->setSingleStep(1);
- vbar->setSingleStep(1);
-#else
hbar->setSingleStep(20);
vbar->setSingleStep(20);
-#endif
viewport->setBackgroundRole(QPalette::Base);
q->setAcceptDrops(true);