summaryrefslogtreecommitdiffstats
path: root/testapp
diff options
context:
space:
mode:
authorRobert Griebl <rgriebl@trolltech.com>2010-04-21 19:45:13 +0200
committerRobert Griebl <rgriebl@trolltech.com>2010-04-21 19:45:25 +0200
commite2caa922c952b7a7c7ba25dc29de8d33843db786 (patch)
tree080b0a9e28f3dd7620167eb15a4f54a8a9c81734 /testapp
parent337ade315f575017ecb879539d798f3c8728d7b7 (diff)
added QWebView to the testapp
Diffstat (limited to 'testapp')
-rw-r--r--testapp/main.cpp188
-rw-r--r--testapp/plotwidget.cpp16
-rw-r--r--testapp/plotwidget.h4
-rw-r--r--testapp/qscrollareakineticscroller.cpp18
-rw-r--r--testapp/qscrollareakineticscroller.h4
-rw-r--r--testapp/settingswidget.cpp123
-rw-r--r--testapp/settingswidget.h13
-rw-r--r--testapp/testapp.pro5
8 files changed, 246 insertions, 125 deletions
diff --git a/testapp/main.cpp b/testapp/main.cpp
index 92fe4f3..c54d98d 100644
--- a/testapp/main.cpp
+++ b/testapp/main.cpp
@@ -2,93 +2,173 @@
#include <QApplication>
#include <QListWidget>
#include <QListWidgetItem>
-#include <QTabWidget>
#include <QSplitter>
#include <QStackedWidget>
#include <QSignalMapper>
#include <QMainWindow>
#include <QMenuBar>
#include <QActionGroup>
+#include <QWebView>
+#include <QTimer>
#ifdef Q_WS_MAEMO_5
# include <QAbstractKineticScroller>
#endif
#include "qscrollareakineticscroller.h"
+#include "qwebviewkineticscroller.h"
#include "settingswidget.h"
#include "plotwidget.h"
-int main(int argc, char **argv)
+bool qt_sendSpontaneousEvent(QObject *receiver, QEvent *event)
{
- QApplication a(argc, argv);
-
- QListWidget *list = new QListWidget();
+ return QCoreApplication::sendSpontaneousEvent(receiver, event);
+}
- for (int i = 0; i < 1000; ++i)
- new QListWidgetItem(QString("This is a test text %1 %2").arg(i).arg(QString("--------").left(i % 8)), list);
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+public:
+ MainWindow(bool smallscreen)
+ : QMainWindow()
+ {
+ m_list = new QListWidget();
+ m_list_scroller = installKineticScroller(m_list);
- // remove the old kinetic scroller if any
- QAbstractKineticScroller *oldScroller = list->property("kineticScroller").value<QAbstractKineticScroller *>();
- oldScroller->setEnabled(false);
+ for (int i = 0; i < 1000; ++i)
+ new QListWidgetItem(QString("This is a test text %1 %2").arg(i).arg(QString("--------").left(i % 8)), m_list);
- // set a new kinetic scroller
- QScrollAreaKineticScroller *newScroller = new QScrollAreaKineticScroller();
- newScroller->setWidget(list);
+ m_web = new QWebView();
+ m_web_scroller = installKineticScroller(m_web);
-#if defined(Q_WS_MAEMO_5) || defined(Q_WS_S60) || defined(Q_WS_WINCE)
- bool smallScreen = true;
-#else
- bool smallScreen = false;
-#endif
+ QTimer::singleShot(1000, this, SLOT(loadUrl()));
- QWidget *settings = new SettingsWidget(newScroller, smallScreen);
- QWidget *plot = new PlotWidget(newScroller);
+ m_settings = new SettingsWidget(smallscreen);
+ m_plot = new PlotWidget(smallscreen);
- if (smallScreen) {
- QMainWindow *top = new QMainWindow();
QStackedWidget *stack = new QStackedWidget();
- stack->addWidget(list);
- stack->addWidget(settings);
- stack->addWidget(plot);
- top->setCentralWidget(stack);
+ stack->addWidget(m_list);
+ stack->addWidget(m_web);
- QActionGroup *pages = new QActionGroup(top);
+ QActionGroup *pages = new QActionGroup(this);
pages->setExclusive(true);
- QSignalMapper *mapper = new QSignalMapper(top);
- QObject::connect(mapper, SIGNAL(mapped(int)), stack, SLOT(setCurrentIndex(int)));
+ QSignalMapper *mapper = new QSignalMapper(this);
+ connect(mapper, SIGNAL(mapped(int)), stack, SLOT(setCurrentIndex(int)));
+
+ createAction("List", pages, mapper, 0, true);
+ createAction("Web", pages, mapper, 1);
+
+ if (smallscreen) {
+ stack->addWidget(m_settings);
+ stack->addWidget(m_plot);
+
+ createAction("Settings", pages, mapper, 2);
+ createAction("Plot", pages, mapper, 3);
+
+ setCentralWidget(stack);
+ } else {
+ QSplitter *split = new QSplitter();
+ split->addWidget(stack);
+ split->addWidget(m_settings);
+ split->addWidget(m_plot);
+ setCentralWidget(split);
+ }
+ menuBar()->addMenu(QLatin1String("Pages"))->addActions(pages->actions());
+ connect(stack, SIGNAL(currentChanged(int)), this, SLOT(pageChanged(int)));
+ pageChanged(0);
+ }
- QAction *a = new QAction(QLatin1String("List"), pages);
- a->setCheckable(true);
- a->setChecked(true);
- mapper->setMapping(a, 0);
- QObject::connect(a, SIGNAL(toggled(bool)), mapper, SLOT(map()));
+private slots:
+ void pageChanged(int page)
+ {
+ if (page < 0 || page > 1)
+ return;
+ switch (page) {
+ case 0:
+ m_settings->setKineticScroller(m_list_scroller);
+ m_plot->setKineticScroller(m_list_scroller);
+ break;
+ case 1:
+ m_settings->setKineticScroller(m_web_scroller);
+ m_plot->setKineticScroller(m_web_scroller);
+ break;
+ default:
+ break;
+ }
+ }
- a = new QAction(QLatin1String("Config"), pages);
- a->setCheckable(true);
- a->setChecked(false);
- a->setMenuRole(QAction::NoRole);
- mapper->setMapping(a, 1);
- QObject::connect(a, SIGNAL(toggled(bool)), mapper, SLOT(map()));
+ void loadUrl()
+ {
+ m_web->load(QUrl("http://www.heise.de"));
+ }
- a = new QAction(QLatin1String("Plot"), pages);
+private:
+ QAction *createAction(const char *text, QActionGroup *group, QSignalMapper *mapper, int mapping, bool checked = false)
+ {
+ QAction *a = new QAction(QLatin1String(text), group);
a->setCheckable(true);
- a->setChecked(false);
- mapper->setMapping(a, 2);
- QObject::connect(a, SIGNAL(toggled(bool)), mapper, SLOT(map()));
-
- top->menuBar()->addMenu("Pages")->addActions(pages->actions());
- top->showMaximized();
- } else {
- QSplitter *split = new QSplitter();
- split->addWidget(list);
- split->addWidget(settings);
- split->addWidget(plot);
- split->show();
+ a->setChecked(checked);
#if defined(Q_WS_MAC)
- split->raise();
+ a->setMenuRole(QAction::NoRole);
+#endif
+ mapper->setMapping(a, mapping);
+ connect(a, SIGNAL(toggled(bool)), mapper, SLOT(map()));
+ return a;
+ }
+
+ QKineticScroller *installKineticScroller(QWidget *w)
+ {
+#if defined(Q_WS_MAEMO_5)
+ // remove the old kinetic scroller if any
+ QAbstractKineticScroller *oldScroller = w->property("kineticScroller").value<QAbstractKineticScroller *>();
+ oldScroller->setEnabled(false);
#endif
+ // set a new kinetic scroller
+ if (QAbstractScrollArea *area = qobject_cast<QAbstractScrollArea *>(w)) {
+ QScrollAreaKineticScroller *newScroller = new QScrollAreaKineticScroller();
+ newScroller->setWidget(area);
+ return newScroller;
+ } else if (QWebView *web = qobject_cast<QWebView *>(w)) {
+ QWebViewKineticScroller *newScroller = new QWebViewKineticScroller();
+ newScroller->setWidget(web);
+ return newScroller;
+ } else {
+ return 0;
+ }
}
+private:
+ QListWidget *m_list;
+ QWebView *m_web;
+ QKineticScroller *m_list_scroller, *m_web_scroller;
+ SettingsWidget *m_settings;
+ PlotWidget *m_plot;
+};
+
+int main(int argc, char **argv)
+{
+ QApplication a(argc, argv);
+
+#if defined(Q_WS_MAEMO_5) || defined(Q_WS_S60) || defined(Q_WS_WINCE)
+ bool smallscreen = true;
+#else
+ bool smallscreen = false;
+#endif
+
+ if (a.arguments().contains(QLatin1String("--small")))
+ smallscreen = true;
+
+ MainWindow *mw = new MainWindow(smallscreen);
+ if (smallscreen)
+ mw->showMaximized();
+ else
+ mw->show();
+#if defined(Q_WS_MAC)
+ mw->raise();
+#endif
+
return a.exec();
}
+
+#include "main.moc"
diff --git a/testapp/plotwidget.cpp b/testapp/plotwidget.cpp
index 43c179b..faab904 100644
--- a/testapp/plotwidget.cpp
+++ b/testapp/plotwidget.cpp
@@ -50,12 +50,10 @@
#include "plotwidget.h"
#include "qkineticscroller.h"
-PlotWidget::PlotWidget(QKineticScroller *scroller)
- : QWidget(), m_scroller(scroller)
+PlotWidget::PlotWidget(bool /*smallscreen*/)
+ : QWidget(), m_scroller(0)
{
setWindowTitle(QLatin1String("Plot"));
- m_scroller->registerDebugHook(debugHook, this);
-
m_clear = new QPushButton(QLatin1String("Clear"), this);
#if defined(Q_WS_MAEMO_5)
m_clear->setStyle(new QPlastiqueStyle());
@@ -77,6 +75,16 @@ PlotWidget::PlotWidget(QKineticScroller *scroller)
m_legend->setText(legend);
}
+void PlotWidget::setKineticScroller(QKineticScroller *scroller)
+{
+ if (m_scroller)
+ m_scroller->registerDebugHook(0, 0);
+ m_scroller = scroller;
+ reset();
+ if (m_scroller)
+ m_scroller->registerDebugHook(debugHook, this);
+}
+
void PlotWidget::debugHook(void *user, const QPointF &releaseVelocity, const QPointF &contentPosition, const QPointF &overshootPosition)
{
PlotItem pi = { releaseVelocity, contentPosition, overshootPosition };
diff --git a/testapp/plotwidget.h b/testapp/plotwidget.h
index 12fefe3..42d0b7c 100644
--- a/testapp/plotwidget.h
+++ b/testapp/plotwidget.h
@@ -55,7 +55,9 @@ class PlotWidget : public QWidget
Q_OBJECT
public:
- PlotWidget(QKineticScroller *scroller);
+ PlotWidget(bool smallscreen = false);
+
+ void setKineticScroller(QKineticScroller *scroller);
public slots:
void reset();
diff --git a/testapp/qscrollareakineticscroller.cpp b/testapp/qscrollareakineticscroller.cpp
index ce41610..dbe20dc 100644
--- a/testapp/qscrollareakineticscroller.cpp
+++ b/testapp/qscrollareakineticscroller.cpp
@@ -58,21 +58,13 @@
#include "qgraphicsview.h"
#include "qgraphicsitem.h"
-
-
#include <QtDebug>
QT_BEGIN_NAMESPACE
+bool qt_sendSpontaneousEvent(QObject *receiver, QEvent *event);
-bool qt_sendSpontaneousEvent(QObject *receiver, QEvent *event)
-{
- return QCoreApplication::sendSpontaneousEvent(receiver, event);
-}
-
-
-
-class Q_GUI_EXPORT QScrollAreaKineticScrollerPrivate
+class QScrollAreaKineticScrollerPrivate
{
public:
QScrollAreaKineticScroller *q_ptr;
@@ -192,10 +184,12 @@ bool QScrollAreaKineticScroller::eventFilter(QObject *o, QEvent *e)
if (te->touchPoints().count() == (idx + 1)) {
res = handleInput(type, te->touchPoints().at(idx).pos() - d->lastOvershoot, timestamp);
- if (type == InputPress)
+ if (type == InputPress) {
d->touchActive = true;
- else if (type == InputRelease)
+ e->accept();
+ } else if (type == InputRelease) {
d->touchActive = false;
+ }
}
break;
}
diff --git a/testapp/qscrollareakineticscroller.h b/testapp/qscrollareakineticscroller.h
index 77b0caf..200df09 100644
--- a/testapp/qscrollareakineticscroller.h
+++ b/testapp/qscrollareakineticscroller.h
@@ -85,8 +85,6 @@ private:
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QScrollAreaKineticScroller *)
-
QT_END_HEADER
-#endif // QKINETICSCROLLER_H
+#endif // QSCROLLAREAKINETICSCROLLER_H
diff --git a/testapp/settingswidget.cpp b/testapp/settingswidget.cpp
index 77b5cd9..e0f5b95 100644
--- a/testapp/settingswidget.cpp
+++ b/testapp/settingswidget.cpp
@@ -68,8 +68,8 @@ class MetricItemUpdater : public QObject
{
Q_OBJECT
public:
- MetricItemUpdater(MetricItem *item, QKineticScroller *scroller)
- : m_item(item), m_scroller(scroller)
+ MetricItemUpdater(MetricItem *item)
+ : m_item(item), m_scroller(0)
{
if (m_item->min.type() == QVariant::PointF) {
m_slider = new QSlider(Qt::Horizontal);
@@ -109,14 +109,28 @@ public:
if (m_slider2)
connect(m_slider2, SIGNAL(valueChanged(int)), this, SLOT(sliderChanged(int)));
- m_default_value = m_scroller->scrollMetric(m_item->metric);
- valueChanged(m_default_value);
-
m_slider->setMinimum(0);
if (m_slider2)
m_slider2->setMinimum(0);
}
+ void setKineticScroller(QKineticScroller *scroller)
+ {
+ m_scroller = scroller;
+ m_slider->setEnabled(scroller);
+ if (m_slider2)
+ m_slider2->setEnabled(scroller);
+ m_nameLabel->setEnabled(scroller);
+ m_valueLabel->setEnabled(scroller);
+ m_resetButton->setEnabled(scroller);
+
+ if (!m_scroller)
+ return;
+
+ m_default_value = m_scroller->scrollMetric(m_item->metric);
+ valueChanged(m_default_value);
+ }
+
QWidget *nameLabel() { return m_nameLabel; }
QWidget *valueLabel() { return m_valueLabel; }
QWidget *valueControl() { return m_control; }
@@ -173,14 +187,16 @@ private slots:
default: break;
}
m_valueLabel->setText(text);
- m_scroller->setScrollMetric(m_item->metric, m_value);
+ if (m_scroller)
+ m_scroller->setScrollMetric(m_item->metric, m_value);
m_resetButton->setEnabled(m_value != m_default_value);
}
void reset()
{
- m_scroller->setScrollMetric(m_item->metric, m_value);
+ if (m_scroller)
+ m_scroller->setScrollMetric(m_item->metric, m_value);
valueChanged(m_default_value);
}
@@ -247,19 +263,6 @@ void SettingsWidget::addToGrid(QGridLayout *grid, QWidget *label, int widgetCoun
va_end(args);
}
-QGridLayout *SettingsWidget::createMetricsItemGrid()
-{
- QGridLayout *grid = new QGridLayout();
- grid->setVerticalSpacing(m_smallscreen ? 4 : 2);
-
- for (int i = 0; i < QKineticScroller::ScrollMetricCount; i++) {
- MetricItemUpdater *u = new MetricItemUpdater(items + i, m_scroller);
- u->setParent(this);
- addToGrid(grid, u->nameLabel(), 3, u->valueControl(), u->valueLabel(), u->resetButton());
- }
- return grid;
-}
-
class HackScroller : public QKineticScroller {
public:
using QKineticScroller::viewportSize;
@@ -271,8 +274,8 @@ public:
using QAbstractSpinBox::lineEdit;
};
-SettingsWidget::SettingsWidget(QKineticScroller *scroller, bool smallscreen)
- : QScrollArea(), m_scroller(scroller), m_smallscreen(smallscreen)
+SettingsWidget::SettingsWidget(bool smallscreen)
+ : QScrollArea(), m_scroller(0), m_smallscreen(smallscreen)
{
setWindowTitle(QLatin1String("Settings"));
QWidget *view = new QWidget();
@@ -283,23 +286,20 @@ SettingsWidget::SettingsWidget(QKineticScroller *scroller, bool smallscreen)
grp = new QGroupBox(QLatin1String("General"));
grid = new QGridLayout();
grid->setVerticalSpacing(smallscreen ? 4 : 2);
- QCheckBox *onoff = new QCheckBox(QLatin1String("Enabled"));
- onoff->setChecked(m_scroller->isEnabled());
- connect(onoff, SIGNAL(toggled(bool)), this, SLOT(enabledChanged(bool)));
- addToGrid(grid, onoff, 0);
-
- QSpinBox *dpi = new QSpinBox();
- dpi->setRange(10, 1000);
- dpi->setSuffix(QLatin1String(" dpi"));
- dpi->setValue(m_scroller->dpi());
- connect(dpi, SIGNAL(valueChanged(int)), this, SLOT(dpiChanged(int)));
- addToGrid(grid, new QLabel("DPI"), 1, dpi);
+ m_onoff = new QCheckBox(QLatin1String("Enabled"));
+ connect(m_onoff, SIGNAL(toggled(bool)), this, SLOT(enabledChanged(bool)));
+ addToGrid(grid, m_onoff, 0);
+
+ m_dpi = new QSpinBox();
+ m_dpi->setRange(10, 1000);
+ m_dpi->setSuffix(QLatin1String(" dpi"));
+ connect(m_dpi, SIGNAL(valueChanged(int)), this, SLOT(dpiChanged(int)));
+ addToGrid(grid, new QLabel("DPI"), 1, m_dpi);
m_hospolicy = new QComboBox();
m_hospolicy->addItem("When Scrollable", QKineticScroller::OvershootWhenScrollable);
m_hospolicy->addItem("Always On", QKineticScroller::OvershootAlwaysOn);
m_hospolicy->addItem("Always Off", QKineticScroller::OvershootAlwaysOff);
- m_hospolicy->setCurrentIndex(m_hospolicy->findData(m_scroller->horizontalOvershootPolicy()));
connect(m_hospolicy, SIGNAL(currentIndexChanged(int)), this, SLOT(overshootPolicyChanged(int)));
addToGrid(grid, new QLabel("Horizontal Overshoot Policy"), 1, m_hospolicy);
@@ -307,7 +307,6 @@ SettingsWidget::SettingsWidget(QKineticScroller *scroller, bool smallscreen)
m_vospolicy->addItem("When Scrollable", QKineticScroller::OvershootWhenScrollable);
m_vospolicy->addItem("Always On", QKineticScroller::OvershootAlwaysOn);
m_vospolicy->addItem("Always Off", QKineticScroller::OvershootAlwaysOff);
- m_vospolicy->setCurrentIndex(m_vospolicy->findData(m_scroller->verticalOvershootPolicy()));
connect(m_vospolicy, SIGNAL(currentIndexChanged(int)), this, SLOT(overshootPolicyChanged(int)));
addToGrid(grid, new QLabel("Vertical Overshoot Policy"), 1, m_vospolicy);
@@ -315,20 +314,24 @@ SettingsWidget::SettingsWidget(QKineticScroller *scroller, bool smallscreen)
layout->addWidget(grp);
grp = new QGroupBox(QLatin1String("Scroll Metrics"));
- grp->setLayout(createMetricsItemGrid());
+ grid = new QGridLayout();
+ grid->setVerticalSpacing(m_smallscreen ? 4 : 2);
+
+ for (int i = 0; i < QKineticScroller::ScrollMetricCount; i++) {
+ MetricItemUpdater *u = new MetricItemUpdater(items + i);
+ u->setParent(this);
+ addToGrid(grid, u->nameLabel(), 3, u->valueControl(), u->valueLabel(), u->resetButton());
+ m_metrics.append(u);
+ }
+ grp->setLayout(grid);
layout->addWidget(grp);
grp = new QGroupBox(QLatin1String("Scroll To"));
grid = new QGridLayout();
grid->setVerticalSpacing(m_smallscreen ? 4 : 2);
- QSizeF vp = static_cast<HackScroller *>(m_scroller)->viewportSize();
- QPointF maxc = static_cast<HackScroller *>(m_scroller)->maximumContentPosition();
-
m_scrollx = new QSpinBox();
- m_scrollx->setRange(int(-vp.width()), int(maxc.x() + vp.width()));
m_scrolly = new QSpinBox();
- m_scrolly->setRange(int(-vp.height()), int(maxc.y() + vp.height()));
m_scrolltime = new QSpinBox();
m_scrolltime->setRange(0, 10000);
m_scrolltime->setValue(1000);
@@ -363,21 +366,48 @@ SettingsWidget::SettingsWidget(QKineticScroller *scroller, bool smallscreen)
setWidgetResizable(true);
}
+void SettingsWidget::setKineticScroller(QKineticScroller *scroller)
+{
+ m_scroller = scroller;
+ //setEnabled(m_scroller);
+
+ QMutableListIterator<MetricItemUpdater *> it(m_metrics);
+ while (it.hasNext())
+ it.next()->setKineticScroller(m_scroller);
+
+ if (!m_scroller)
+ return;
+
+ m_onoff->setChecked(m_scroller->isEnabled());
+ m_dpi->setValue(m_scroller->dpi());
+ m_hospolicy->setCurrentIndex(m_hospolicy->findData(m_scroller->horizontalOvershootPolicy()));
+ m_vospolicy->setCurrentIndex(m_vospolicy->findData(m_scroller->verticalOvershootPolicy()));
+
+
+ QSizeF vp = static_cast<HackScroller *>(m_scroller)->viewportSize();
+ QPointF maxc = static_cast<HackScroller *>(m_scroller)->maximumContentPosition();
+
+ m_scrollx->setRange(int(-vp.width()), int(maxc.x() + vp.width()));
+ m_scrolly->setRange(int(-vp.height()), int(maxc.y() + vp.height()));
+}
+
void SettingsWidget::enabledChanged(bool on)
{
- m_scroller->setEnabled(on);
+ if (m_scroller)
+ m_scroller->setEnabled(on);
}
void SettingsWidget::dpiChanged(int dpi)
{
- m_scroller->setDpi(dpi);
+ if (m_scroller)
+ m_scroller->setDpi(dpi);
}
void SettingsWidget::overshootPolicyChanged(int index)
{
- if (sender() == m_hospolicy)
+ if (sender() == m_hospolicy && m_scroller)
m_scroller->setHorizontalOvershootPolicy(static_cast<QKineticScroller::OvershootPolicy>(m_hospolicy->itemData(index).toInt()));
- else if (sender() == m_vospolicy)
+ else if (sender() == m_vospolicy && m_scroller)
m_scroller->setVerticalOvershootPolicy(static_cast<QKineticScroller::OvershootPolicy>(m_hospolicy->itemData(index).toInt()));
}
@@ -389,7 +419,8 @@ void SettingsWidget::scrollTo()
return;
if ((sender() == m_scrolltime) && !m_scrolltime->hasFocus())
return;
-
+ if (!m_scroller)
+ return;
m_scroller->scrollTo(QPointF(m_scrollx->value(), m_scrolly->value()), m_scrolltime->value());
}
diff --git a/testapp/settingswidget.h b/testapp/settingswidget.h
index 6e05163..ec7a180 100644
--- a/testapp/settingswidget.h
+++ b/testapp/settingswidget.h
@@ -45,17 +45,21 @@
#include <QScrollArea>
class QKineticScroller;
-
class QGridLayout;
class QSpinBox;
class QComboBox;
+class QCheckBox;
+
+class MetricItemUpdater;
class SettingsWidget : public QScrollArea
{
Q_OBJECT
public:
- SettingsWidget(QKineticScroller *scroller, bool smallscreen = false);
+ SettingsWidget(bool smallscreen = false);
+
+ void setKineticScroller(QKineticScroller *scroller);
private slots:
void enabledChanged(bool on);
@@ -64,12 +68,13 @@ private slots:
void scrollTo();
private:
- QGridLayout *createMetricsItemGrid();
void addToGrid(QGridLayout *grid, QWidget *label, int widgetCount, ...);
QKineticScroller *m_scroller;
- QSpinBox *m_scrollx, *m_scrolly, *m_scrolltime;
+ QCheckBox *m_onoff;
+ QSpinBox *m_dpi, *m_scrollx, *m_scrolly, *m_scrolltime;
QComboBox *m_hospolicy, *m_vospolicy;
+ QList<MetricItemUpdater *> m_metrics;
bool m_smallscreen;
};
diff --git a/testapp/testapp.pro b/testapp/testapp.pro
index a9546ff..c478231 100644
--- a/testapp/testapp.pro
+++ b/testapp/testapp.pro
@@ -8,10 +8,13 @@ DEPENDPATH += . ../scroller
INCLUDEPATH += . ../scroller
LIBS += -L../scroller -lscroller
+QT += webkit
+
# Input
-HEADERS += plotwidget.h qscrollareakineticscroller.h settingswidget.h
+HEADERS += plotwidget.h qscrollareakineticscroller.h qwebviewkineticscroller.h settingswidget.h
SOURCES += main.cpp \
plotwidget.cpp \
qscrollareakineticscroller.cpp \
+ qwebviewkineticscroller.cpp \
settingswidget.cpp
macx:LIBS += -frameworks Cocoa