From 70797dc1c4175f3b7da59e0ba7e4111690d2dafa Mon Sep 17 00:00:00 2001 From: Ralf Engels Date: Wed, 21 Apr 2010 15:47:10 +0200 Subject: Maemo 5 fixes --- scroller/qkineticscroller.cpp | 19 +++++++++---------- testapp/main.cpp | 32 ++++++++++++++++++++++++++------ testapp/plotwidget.cpp | 15 +++++++++++++-- testapp/plotwidget.h | 6 +++++- testapp/qscrollareakineticscroller.cpp | 1 + testapp/settingswidget.cpp | 16 ++++++++++++++-- testapp/settingswidget.h | 6 +++++- 7 files changed, 73 insertions(+), 22 deletions(-) diff --git a/scroller/qkineticscroller.cpp b/scroller/qkineticscroller.cpp index 9b40792..32e9296 100644 --- a/scroller/qkineticscroller.cpp +++ b/scroller/qkineticscroller.cpp @@ -221,16 +221,16 @@ void QKineticScroller::resetScrollMetrics() metrics.insert(LinearDecelerationFactor, qreal(0)); metrics.insert(OvershootSpringConstant, qreal(0.1)); metrics.insert(OvershootDragResistanceFactor, qreal(1)); - metrics.insert(OvershootMaximumDistance, QPointF(qreal(150), qreal(150))); - metrics.insert(DragStartDistance, qreal(25)); - metrics.insert(DragStartDirectionErrorMargin, qreal(10)); - metrics.insert(MaximumVelocity, qreal(70000)); - metrics.insert(MinimumVelocity, qreal(200)); - metrics.insert(MaximumNonAcceleratedVelocity, qreal(5600)); - metrics.insert(MaximumClickThroughVelocity, qreal(700)); + metrics.insert(OvershootMaximumDistance, QPointF(qreal(15.0 / 1000), qreal(15.0 / 1000))); + metrics.insert(DragStartDistance, qreal(10.0 / 1000)); + metrics.insert(DragStartDirectionErrorMargin, qreal(1.0 / 1000)); + metrics.insert(MaximumVelocity, qreal(7000.0 / 1000)); + metrics.insert(MinimumVelocity, qreal(20.0 / 1000)); + metrics.insert(MaximumNonAcceleratedVelocity, qreal(5600.0 / 1000)); + metrics.insert(MaximumClickThroughVelocity, qreal(700.0 / 1000)); metrics.insert(AxisLockThreshold, qreal(0)); - metrics.insert(FastSwipeBaseVelocity, qreal(540)); - metrics.insert(FastSwipeMinimumVelocity, qreal(800)); + metrics.insert(FastSwipeBaseVelocity, qreal(540.0 / 1000)); + metrics.insert(FastSwipeMinimumVelocity, qreal(80.0 / 1000)); metrics.insert(FastSwipeMaximumTime, qreal(0.125)); metrics.insert(FramesPerSecond, qreal(20)); #else @@ -243,7 +243,6 @@ void QKineticScroller::resetScrollMetrics() metrics.insert(DragStartDistance, qreal(2.5 / 1000)); metrics.insert(DragStartDirectionErrorMargin, qreal(1.0 / 1000)); metrics.insert(MaximumVelocity, qreal(6650.0 / 1000)); - metrics.insert(MaximumVelocity, qreal(6650.0 / 1000)); metrics.insert(MinimumVelocity, qreal(30.0 / 1000)); metrics.insert(MaximumNonAcceleratedVelocity, qreal(532.0 / 1000)); metrics.insert(MaximumClickThroughVelocity, qreal(66.5 / 1000)); diff --git a/testapp/main.cpp b/testapp/main.cpp index 732f67c..92fe4f3 100644 --- a/testapp/main.cpp +++ b/testapp/main.cpp @@ -1,4 +1,19 @@ -#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef Q_WS_MAEMO_5 +# include +#endif + #include "qscrollareakineticscroller.h" #include "settingswidget.h" @@ -11,10 +26,15 @@ int main(int argc, char **argv) QListWidget *list = new QListWidget(); for (int i = 0; i < 1000; ++i) - new QListWidgetItem(QString("Oa dsjfhdk jhdsjk hfdskj k %1").arg(i), list); + new QListWidgetItem(QString("This is a test text %1 %2").arg(i).arg(QString("--------").left(i % 8)), list); + + // remove the old kinetic scroller if any + QAbstractKineticScroller *oldScroller = list->property("kineticScroller").value(); + oldScroller->setEnabled(false); - QScrollAreaKineticScroller *s = new QScrollAreaKineticScroller(); - s->setWidget(list); + // set a new kinetic scroller + QScrollAreaKineticScroller *newScroller = new QScrollAreaKineticScroller(); + newScroller->setWidget(list); #if defined(Q_WS_MAEMO_5) || defined(Q_WS_S60) || defined(Q_WS_WINCE) bool smallScreen = true; @@ -22,8 +42,8 @@ int main(int argc, char **argv) bool smallScreen = false; #endif - QWidget *settings = new SettingsWidget(s, smallScreen); - QWidget *plot = new PlotWidget(s); + QWidget *settings = new SettingsWidget(newScroller, smallScreen); + QWidget *plot = new PlotWidget(newScroller); if (smallScreen) { QMainWindow *top = new QMainWindow(); diff --git a/testapp/plotwidget.cpp b/testapp/plotwidget.cpp index 019c3c8..43c179b 100644 --- a/testapp/plotwidget.cpp +++ b/testapp/plotwidget.cpp @@ -39,7 +39,13 @@ ** ****************************************************************************/ -#include +#include +#include +#include +#include +#include +#include +#include #include "plotwidget.h" #include "qkineticscroller.h" @@ -51,11 +57,16 @@ PlotWidget::PlotWidget(QKineticScroller *scroller) m_scroller->registerDebugHook(debugHook, this); m_clear = new QPushButton(QLatin1String("Clear"), this); +#if defined(Q_WS_MAEMO_5) + m_clear->setStyle(new QPlastiqueStyle()); + m_clear->setFixedHeight(55); +#endif connect(m_clear, SIGNAL(clicked()), this, SLOT(reset())); m_legend = new QLabel(this); QString legend; QTextStream ts(&legend); - ts << ""; + // ok. this wouldn't pass the w3c html verification... + ts << "
"; ts << ""; ts << ""; ts << ""; diff --git a/testapp/plotwidget.h b/testapp/plotwidget.h index 80e76ad..12fefe3 100644 --- a/testapp/plotwidget.h +++ b/testapp/plotwidget.h @@ -42,7 +42,11 @@ #ifndef PLOTWIDGET_H #define PLOTWIDGET_H -#include +#include +#include + +class QPushButton; +class QLabel; class QKineticScroller; diff --git a/testapp/qscrollareakineticscroller.cpp b/testapp/qscrollareakineticscroller.cpp index 0a00b4e..ce41610 100644 --- a/testapp/qscrollareakineticscroller.cpp +++ b/testapp/qscrollareakineticscroller.cpp @@ -178,6 +178,7 @@ bool QScrollAreaKineticScroller::eventFilter(QObject *o, QEvent *e) bool isMouseEvent = false; bool isMouseDown = false; + qDebug("QScrollAreaKineticScroller::eventFilter: %d", e->type()); if (d->area && (o == d->area->viewport()) && !d->ignoreEvents && d->area->isEnabled() && isEnabled()) { switch (e->type()) { diff --git a/testapp/settingswidget.cpp b/testapp/settingswidget.cpp index 5756cf8..77b5cd9 100644 --- a/testapp/settingswidget.cpp +++ b/testapp/settingswidget.cpp @@ -39,7 +39,17 @@ ** ****************************************************************************/ -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include "settingswidget.h" #include "qkineticscroller.h" @@ -113,10 +123,11 @@ public: QWidget *resetButton() { return m_resetButton; } private slots: - void valueChanged(const QVariant v) + void valueChanged(const QVariant &v) { m_value = v; switch (m_item->min.type()) { + case QMetaType::Float: case QVariant::Double: { m_slider->setValue(int((m_value.toReal() * m_item->scaling - m_item->min.toReal()) / m_item->step.toReal())); break; @@ -140,6 +151,7 @@ private slots: QString text; switch (m_item->min.type()) { + case QMetaType::Float: case QVariant::Double: { qreal d = m_item->min.toReal() + qreal(value) * m_item->step.toReal(); text = QString::number(d); diff --git a/testapp/settingswidget.h b/testapp/settingswidget.h index 749962a..6e05163 100644 --- a/testapp/settingswidget.h +++ b/testapp/settingswidget.h @@ -42,10 +42,14 @@ #ifndef SETTINGSWIDGET_H #define SETTINGSWIDGET_H -#include +#include class QKineticScroller; +class QGridLayout; +class QSpinBox; +class QComboBox; + class SettingsWidget : public QScrollArea { Q_OBJECT -- cgit v1.2.3
Velocity X
Velocity Y
Content Position X