#include <QStringList>
#include <QHash>
#include <QImage>
+#include <QPoint>
#include "book.h"
class QModelIndex;
+class Progress;
+class QAbstractKineticScroller;
+class ProgressDialog;
/** Visual representation of a book. */
class BookView: public QWebView
void setBook(Book *book);
Book *book();
void goToBookmark(const Book::Bookmark &bookmark);
- void addBookmark();
+ void addBookmark(const QString ¬e);
void setLastBookmark();
+ void restoreLastBookmark();
+ void goToPart(int part, const QString &fragment);
+ void goToFragment(const QString &fragment);
signals:
- void chapterLoadStart(int index);
- void chapterLoadEnd(int index);
+ void partLoadStart(int index);
+ void partLoadEnd(int index);
- /** Signal button press when the real event has been suppressed. */
+ /** Signal button press, when the real event has been suppressed. */
void suppressedMouseButtonPress();
+ /** Signal progress in reading the book. */
+ void progress(qreal p);
+
public slots:
+ /** Go to next part. */
void goPrevious();
+
+ /** Go to previous part. */
void goNext();
+
void onLoadFinished(bool ok);
void onSettingsChanged(const QString &key);
/** Handle main frame contents size changes. */
void onContentsSizeChanged(const QSize &size);
+ /** Go to previous page. */
+ void goPreviousPage();
+
+ /** Go to next page. */
+ void goNextPage();
+
protected:
- virtual void paintEvent(QPaintEvent *e);
- virtual void mousePressEvent(QMouseEvent *e);
+ void paintEvent(QPaintEvent *e);
+ void mousePressEvent(QMouseEvent *e);
+ void wheelEvent(QWheelEvent *);
bool eventFilter(QObject *o, QEvent *e);
+#ifdef Q_WS_MAEMO_5
+ void leaveEvent(QEvent *e);
+ void enterEvent(QEvent *e);
+#endif // Q_WS_MAEMO_5
+ void timerEvent(QTimerEvent *e);
+ void keyPressEvent(QKeyEvent *e);
private:
- /** Save navigation icons from resource to the file system. */
- void extractIcons();
-
- /** Remove extracted icons. */
- void removeIcons();
-
- /** Load given chapter. */
+ /** Load given part. */
void loadContent(int index);
- /** Decorate web page frame with navigation icons. */
- void addNavigationBar();
-
/** Get temporary directory for extracting book contents. */
QString tmpPath();
- int contentIndex; /**< Current chapter in book. */
+ /** Go to a given (relative) position in current part. */
+ void goToPosition(qreal position);
+
+ /** Show reading progress. */
+ void showProgress();
+
+ int contentIndex; /**< Current part in book. */
Book *mBook; /**< Book to show. */
- bool restore; /**< Restoring position after load is needed. */
+ bool restorePositionAfterLoad;
+ /**< If true, restore current position after load. */
qreal positionAfterLoad;
/**< Position to be restored after load. */
+ bool restoreFragmentAfterLoad;
+ /**< If true, restore fragment location after load. */
+ QString fragmentAfterLoad;
+ /**< Fragment location to be restored after load. */
QImage bookmarkImage;
/**< Bookmark icon pre-loaded. */
bool loaded; /**< True if content has been loaded. */
bool mousePressed;
int contentsHeight; /**< Last know height of the frame. */
- bool decorated; /**< True after adding the arrows to the frame contents. */
+
+#if defined(Q_WS_MAEMO_5)
+ int scrollerMonitor;
+ QAbstractKineticScroller *scroller;
+#endif
};
#endif // BOOKVIEW_H