Show presence of extra book parts.
[dorian] / bookview.cpp
index aaa3326..d240070 100644 (file)
@@ -29,7 +29,8 @@ BookView::BookView(QWidget *parent): QWebView(parent), contentIndex(-1),
     settings()->setAttribute(QWebSettings::PluginsEnabled, false);
     settings()->setAttribute(QWebSettings::PrivateBrowsingEnabled, true);
     settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, false);
-    settings()->setAttribute(QWebSettings::JavascriptCanAccessClipboard, false);
+    settings()->setAttribute(QWebSettings::JavascriptCanAccessClipboard,
+                             false);
     settings()->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled,
                              false);
     settings()->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled,
@@ -45,7 +46,8 @@ BookView::BookView(QWidget *parent): QWebView(parent), contentIndex(-1),
     frame->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
 #endif
     frame->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
-    connect(this, SIGNAL(loadFinished(bool)), this, SLOT(onLoadFinished(bool)));
+    connect(this, SIGNAL(loadFinished(bool)),
+            this, SLOT(onLoadFinished(bool)));
     connect(frame, SIGNAL(javaScriptWindowObjectCleared()),
             this, SLOT(addJavaScriptObjects()));
 
@@ -312,6 +314,17 @@ 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);
+    }
 }
 
 void BookView::mousePressEvent(QMouseEvent *e)
@@ -406,18 +419,6 @@ void BookView::addJavaScriptObjects()
     page()->mainFrame()->addToJavaScriptWindowObject("bv", this);
 }
 
-#ifdef Q_WS_MAEMO_5
-
-void BookView::leaveEvent(QEvent *e)
-{
-    TRACE;
-    // Save current position, to be restored later, in MainWindow::resizeEvent()
-    setLastBookmark();
-    QWebView::leaveEvent(e);
-}
-
-#endif // Q_WS_MAEMO_5
-
 void BookView::goToPosition(qreal position)
 {
     int contentsHeight = page()->mainFrame()->contentsSize().height();
@@ -459,7 +460,7 @@ void BookView::goPreviousPage()
 {
     QWebFrame *frame = page()->mainFrame();
     int pos = frame->scrollPosition().y();
-    frame->scroll(0, -height());
+    frame->scroll(0, -(height() - 19));
     if (pos == frame->scrollPosition().y()) {
         if (contentIndex > 0) {
             Book::Bookmark bookmark(contentIndex - 1, 1.0);
@@ -476,11 +477,11 @@ void BookView::goNextPage()
     TRACE;
     QWebFrame *frame = page()->mainFrame();
     int pos = frame->scrollPosition().y();
-    frame->scroll(0, height());
+    frame->scroll(0, height() - 19);
     if (pos == frame->scrollPosition().y()) {
         goNext();
     } else {
-        setLastBookmark();
+        // setLastBookmark();
         showProgress();
     }
 }