X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=bookview.cpp;h=b2e69c6c9532c475e6c2bc180fae8a40bb686cb2;hb=85c0b056445b61ed2b914b407b2c8839c999010b;hp=d240070eb44d48b4d54e47e633b2ce12e0d626a7;hpb=cdc1598c03ccbb2aabc01e93eef25798a25098fd;p=dorian diff --git a/bookview.cpp b/bookview.cpp index d240070..b2e69c6 100644 --- a/bookview.cpp +++ b/bookview.cpp @@ -157,7 +157,7 @@ void BookView::goNext() } } -void BookView::setLastBookmark() +void BookView::setLastBookmark(bool fast) { TRACE; if (mBook) { @@ -166,7 +166,7 @@ void BookView::setLastBookmark() int pos = frame->scrollPosition().y(); qDebug() << QString("At %1 (%2%, height %3)"). arg(pos).arg((qreal)pos / (qreal)height * 100).arg(height); - mBook->setLastBookmark(contentIndex, (qreal)pos / (qreal)height); + mBook->setLastBookmark(contentIndex, (qreal)pos / (qreal)height, fast); } } @@ -314,16 +314,18 @@ void BookView::paintEvent(QPaintEvent *e) int bookmarkPos = (int)((qreal)height * (qreal)b.pos); painter.drawPixmap(2, bookmarkPos - scrollPos.y(), bookmarkPixmap); } - QPen pen(Qt::gray); - pen.setStyle(Qt::DotLine); - pen.setWidth(3); - painter.setPen(pen); - if (contentIndex > 0) { - painter.drawLine(0, -scrollPos.y(), width(), -scrollPos.y()); - } - if (contentIndex < (mBook->parts.size() - 1)) { - int h = contentsHeight - scrollPos.y() - 1; - painter.drawLine(0, h, width(), h); + if (mBook) { + QPen pen(Qt::gray); + pen.setStyle(Qt::DotLine); + pen.setWidth(3); + painter.setPen(pen); + if (contentIndex > 0) { + painter.drawLine(0, -scrollPos.y(), width(), -scrollPos.y()); + } + if (contentIndex < (mBook->parts.size() - 1)) { + int h = contentsHeight - scrollPos.y() - 1; + painter.drawLine(0, h, width(), h); + } } } @@ -339,14 +341,16 @@ void BookView::mousePressEvent(QMouseEvent *e) if (scroller) { scrollerMonitor = startTimer(500); } +#elif defined(Q_OS_SYMBIAN) + // Do nothing #else - // Handle mouse presses on the scroll bar + // Handle mouse press on the scroll bar QWebFrame *frame = page()->mainFrame(); if (frame->scrollBarGeometry(Qt::Vertical).contains(e->pos())) { e->accept(); return; } -#endif // Q_WS_MAEMO_5 +#endif e->ignore(); } @@ -393,11 +397,12 @@ bool BookView::eventFilter(QObject *o, QEvent *e) // Work around Qt bug that sometimes selects web view contents during swipe switch (e->type()) { case QEvent::MouseButtonPress: - emit suppressedMouseButtonPress(); mousePressed = true; break; case QEvent::MouseButtonRelease: +#ifndef Q_OS_SYMBIAN // Too heavy on Symbian showProgress(); +#endif mousePressed = false; break; case QEvent::MouseMove: @@ -431,6 +436,7 @@ void BookView::goToPosition(qreal position) void BookView::showProgress() { + TRACE; if (mBook) { int contentsHeight = page()->mainFrame()->contentsSize().height(); qreal pos = (qreal)(page()->mainFrame()->scrollPosition().y()) / @@ -452,10 +458,22 @@ void BookView::timerEvent(QTimerEvent *e) scrollerMonitor = -1; } } -#endif +#endif // Q_WS_MAEMO_5 + QWebView::timerEvent(e); } +void BookView::hideEvent(QHideEvent *e) +{ + Trace t("BookView::hideEvent"); + +#if defined(Q_OS_SYMBIAN) + setLastBookmark(); +#endif + + QWebView::hideEvent(e); +} + void BookView::goPreviousPage() { QWebFrame *frame = page()->mainFrame(); @@ -481,7 +499,6 @@ void BookView::goNextPage() if (pos == frame->scrollPosition().y()) { goNext(); } else { - // setLastBookmark(); showProgress(); } }