Make returning from full screen mode even more obvious.
[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     void suppressedMouseButtonPress();
32
33 public slots:
34     void goPrevious();
35     void goNext();
36     void onLoadFinished(bool ok);
37     void onSettingsChanged(const QString &key);
38
39 protected:
40     virtual void paintEvent(QPaintEvent *e);
41     virtual void mousePressEvent(QMouseEvent *e);
42     bool eventFilter(QObject *o, QEvent *e);
43
44 private:
45     void loadContent(int index);
46     void addNavigationBar();
47     void extractIcons();
48     void removeIcons();
49     QString tmpPath();
50
51     int contentIndex;
52     Book *mBook;
53     bool restore;
54     qreal positionAfterLoad;
55     QImage bookmarkImage;
56     bool loaded;
57     bool mousePressed;
58 };
59
60 #endif // BOOKVIEW_H