Make full screen switching more robust. Add in/out traces.
[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 chapterLoadStart(int index);
30     void chapterLoadEnd(int index);
31
32 public slots:
33     void goPrevious();
34     void goNext();
35     void onLoadFinished(bool ok);
36     void onSettingsChanged(const QString &key);
37
38 protected:
39     virtual void paintEvent(QPaintEvent *e);
40     virtual void mousePressEvent(QMouseEvent *e);
41
42 private:
43     void loadContent(int index);
44     void addNavigationBar();
45     void extractIcons();
46     void removeIcons();
47     QString tmpPath();
48
49     int contentIndex;
50     Book *mBook;
51     bool restore;
52     qreal positionAfterLoad;
53     QImage bookmarkImage;
54     bool loaded;
55 };
56
57 #endif // BOOKVIEW_H