Don't reload volume if bookmark is in the same volume.
[dorian] / bookview.h
1 #ifndef BOOKVIEW_H
2 #define BOOKVIEW_H
3
4 #include <QWebView>
5 #include <QString>
6 #include <QStringList>
7 #include <QHash>
8 #include <QImage>
9
10 #include "book.h"
11
12 /** Visual representation of a book. */
13 class BookView: public QWebView
14 {
15     Q_OBJECT
16
17 public:
18     explicit BookView(QWidget *parent = 0);
19     virtual ~BookView();
20     void setBook(Book *book);
21     Book *book();
22     void goToBookmark(const Book::Bookmark &bookmark);
23     void addBookmark();
24     void setLastBookmark();
25
26 signals:
27     void chapterLoaded(int index);
28
29 public slots:
30     void goPrevious();
31     void goNext();
32     void onLoadFinished(bool ok);
33     void onSettingsChanged(const QString &key);
34
35 protected:
36     virtual void paintEvent(QPaintEvent *e);
37     virtual void mousePressEvent(QMouseEvent *e);
38
39 private:
40     void loadContent(int index);
41     void addNavigationBar();
42     void extractIcons();
43     void removeIcons();
44     QString tmpPath();
45
46     int contentIndex;
47     Book *mBook;
48     bool restore;
49     qreal restorePos;
50     QImage bookmarkImage;
51     bool loadFinished;
52 };
53
54 #endif // BOOKVIEW_H