X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=bookview.cpp;h=cd6ba22b0f0102e24d81b01559601ebf4df16238;hb=f43cb8ff468e9d6ea889cf9a7b7f7abf2523208d;hp=fbbf608a4d671b1ecb497062d5b5c12c8d676b60;hpb=87600c64244c6d2994c63a0b47211f380c016085;p=dorian diff --git a/bookview.cpp b/bookview.cpp index fbbf608..cd6ba22 100644 --- a/bookview.cpp +++ b/bookview.cpp @@ -5,8 +5,10 @@ #include #include -#ifdef Q_WS_MAEMO_5 +#if defined(Q_WS_MAEMO_5) # include +#elif defined(Q_OS_SYMBIAN) +# include "flickcharm.h" #endif #include "book.h" @@ -16,16 +18,10 @@ #include "trace.h" #include "progress.h" -#ifdef Q_WS_MAC -# define ICON_PREFIX ":/icons/mac/" -#else -# define ICON_PREFIX ":/icons/" -#endif - BookView::BookView(QWidget *parent): QWebView(parent), contentIndex(-1), mBook(0), restorePositionAfterLoad(false), positionAfterLoad(0), loaded(false), - contentsHeight(0), scrollerMonitor(-1) + contentsHeight(0) { Trace t("BookView::BookView"); settings()->setAttribute(QWebSettings::AutoLoadImages, true); @@ -45,12 +41,12 @@ BookView::BookView(QWidget *parent): settings()->setDefaultTextEncoding("utf-8"); page()->setContentEditable(false); -#if defined(Q_WS_MAEMO_5) - // Suppress unwanted text selections on Maemo +#if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN) + // Suppress unwanted text selections on Maemo and Symbian installEventFilter(this); #endif QWebFrame *frame = page()->mainFrame(); -#if defined(Q_WS_MAEMO_5) +#if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN) frame->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff); #endif frame->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff); @@ -78,8 +74,12 @@ BookView::BookView(QWidget *parent): s->setValue("scheme", s->value("scheme", "default")); setBook(0); -#ifdef Q_WS_MAEMO_5 +#if defined(Q_WS_MAEMO_5) + scrollerMonitor = 0; scroller = property("kineticScroller").value(); +#elif defined(Q_OS_SYMBIAN) + FlickCharm *charm = new FlickCharm(this); + charm->activateOn(this); #endif } @@ -263,8 +263,12 @@ void BookView::mousePressEvent(QMouseEvent *e) QWebView::mousePressEvent(e); #ifdef Q_WS_MAEMO_5 // Start monitoring kinetic scroll + if (scrollerMonitor) { + killTimer(scrollerMonitor); + scrollerMonitor = 0; + } if (scroller) { - scrollerMonitor = startTimer(250); + scrollerMonitor = startTimer(500); } #else // Handle mouse presses on the scroll bar @@ -283,7 +287,7 @@ void BookView::wheelEvent(QWheelEvent *e) showProgress(); } -void BookView::addBookmark() +void BookView::addBookmark(const QString ¬e) { Trace t("BookView::addBookmark"); if (!mBook) { @@ -292,7 +296,7 @@ void BookView::addBookmark() int y = page()->mainFrame()->scrollPosition().y(); int height = page()->mainFrame()->contentsSize().height(); qDebug() << ((qreal)y / (qreal)height); - mBook->addBookmark(contentIndex, (qreal)y / (qreal)height); + mBook->addBookmark(contentIndex, (qreal)y / (qreal)height, note); update(); } @@ -307,6 +311,9 @@ bool BookView::eventFilter(QObject *o, QEvent *e) if (e->type() == QEvent::Resize) { qDebug() << "BookView::eventFilter QEvent::Resize to" << page()->mainFrame()->contentsSize().height(); + } else if (e->type() == QEvent::Timer) { + qDebug() << "BookView::eventFilter" << "QEvent::Timer" + << ((QTimerEvent *)e)->timerId(); } else { qDebug() << "BookView::eventFilter" << Trace::event(e->type()); } @@ -388,8 +395,8 @@ void BookView::showProgress() void BookView::timerEvent(QTimerEvent *e) { - if (e->timerId() == scrollerMonitor) { #ifdef Q_WS_MAEMO_5 + if (e->timerId() == scrollerMonitor) { if (scroller && ((scroller->state() == QAbstractKineticScroller::AutoScrolling) || (scroller->state() == QAbstractKineticScroller::Pushing))) { @@ -397,8 +404,9 @@ void BookView::timerEvent(QTimerEvent *e) } else { killTimer(scrollerMonitor); } -#endif // Q_WS_MAEMO_5 } +#endif + QWebView::timerEvent(e); } void BookView::keyPressEvent(QKeyEvent* event)