+ int contentsHeight = page()->mainFrame()->contentsSize().height();
+ int scrollPos = (int)((qreal)contentsHeight * position);
+ page()->mainFrame()->setScrollPosition(QPoint(0, scrollPos));
+ // FIXME: update();
+ qDebug() << "BookView::goToPosition: To" << scrollPos << "("
+ << (position * 100) << "%, height" << contentsHeight << ")";
+}
+
+void BookView::showProgress()
+{
+ if (mBook) {
+ int contentsHeight = page()->mainFrame()->contentsSize().height();
+ qreal pos = (qreal)(page()->mainFrame()->scrollPosition().y()) /
+ (qreal)contentsHeight;
+ emit progress(mBook->getProgress(contentIndex, pos));
+ }
+}
+
+void BookView::timerEvent(QTimerEvent *e)
+{
+#if defined(Q_WS_MAEMO_5)
+ if (e->timerId() == scrollerMonitor) {
+ if (scroller &&
+ ((scroller->state() == QAbstractKineticScroller::AutoScrolling) ||
+ (scroller->state() == QAbstractKineticScroller::Pushing))) {
+ showProgress();
+ } else {
+ killTimer(scrollerMonitor);
+ scrollerMonitor = -1;
+ }
+ }
+#endif
+ QWebView::timerEvent(e);