positionAfterLoad = bookmark.pos;
loadContent(bookmark.part);
} else {
+ emit partLoadEnd(contentIndex);
goToPosition(bookmark.pos);
}
}
QVariant ret = page()->mainFrame()->evaluateJavaScript(
QString("window.location='") + fragment + "'");
qDebug() << ret;
- // FIXME: setLastBookmark();
}
}
int bookmarkPos = (int)((qreal)height * (qreal)b.pos);
painter.drawPixmap(2, bookmarkPos - scrollPos.y(), bookmarkPixmap);
}
- 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);
- }
+
+ // Paint page separator(s)
+ 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);
}
}
void BookView::goPreviousPage()
{
QWebFrame *frame = page()->mainFrame();
- int pos = frame->scrollPosition().y();
- frame->scroll(0, -(height() - 19));
+ const int pos = frame->scrollPosition().y();
+ frame->scroll(0, -1);
if (pos == frame->scrollPosition().y()) {
if (contentIndex > 0) {
Book::Bookmark bookmark(contentIndex - 1, 1.0);
}
} else {
showProgress();
+ QPropertyAnimation *slide =
+ new QPropertyAnimation(frame, "scrollPosition");
+ const QPoint *offset = new QPoint(0, height() - 18);
+ slide->setDuration(400);
+ slide->setStartValue(frame->scrollPosition());
+ slide->setEndValue(frame->scrollPosition() - *offset);
+ slide->setEasingCurve(QEasingCurve::OutQuad);
+ slide->start(QAbstractAnimation::DeleteWhenStopped);
+ delete offset;
}
}
{
TRACE;
QWebFrame *frame = page()->mainFrame();
- int pos = frame->scrollPosition().y();
- frame->scroll(0, height() - 19);
+ const int pos = frame->scrollPosition().y();
+ frame->scroll(0, 1);
if (pos == frame->scrollPosition().y()) {
goNext();
} else {
showProgress();
+ QPropertyAnimation *slide =
+ new QPropertyAnimation(frame, "scrollPosition");
+ const QPoint *offset = new QPoint(0, (height() - 18));
+ slide->setDuration(400);
+ slide->setStartValue(frame->scrollPosition());
+ slide->setEndValue(frame->scrollPosition() + *offset);
+ slide->setEasingCurve(QEasingCurve::OutQuad);
+ slide->start(QAbstractAnimation::DeleteWhenStopped);
+ delete offset;
}
}