More on model.
[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 class QModelIndex;
13
14 /** Visual representation of a book. */
15 class BookView: public QWebView
16 {
17     Q_OBJECT
18
19 public:
20     explicit BookView(QWidget *parent = 0);
21     virtual ~BookView();
22     void setBook(Book *book);
23     Book *book();
24     void goToBookmark(const Book::Bookmark &bookmark);
25     void addBookmark();
26     void setLastBookmark();
27
28 signals:
29     void chapterLoaded(int index);
30
31 public slots:
32     void goPrevious();
33     void goNext();
34     void onLoadFinished(bool ok);
35     void onSettingsChanged(const QString &key);
36
37 protected:
38     virtual void paintEvent(QPaintEvent *e);
39     virtual void mousePressEvent(QMouseEvent *e);
40
41 private:
42     void loadContent(int index);
43     void addNavigationBar();
44     void extractIcons();
45     void removeIcons();
46     QString tmpPath();
47
48     int contentIndex;
49     Book *mBook;
50     bool restore;
51     qreal restorePos;
52     QImage bookmarkImage;
53     bool loadFinished;
54 };
55
56 #endif // BOOKVIEW_H