#ifndef NOTEBOOKVIEW_H #define NOTEBOOKVIEW_H #include #include #include "afdnotebook.h" #include "pageitem.h" class NotebookView : public QGraphicsView { Q_OBJECT Q_PROPERTY(QString notebook WRITE setNotebook READ notebook) Q_PROPERTY(QList pageNumbers READ pageNumbers NOTIFY pageNumbersChanged) Q_PROPERTY(int curPage READ curPage WRITE setCurPage NOTIFY curPageChanged) Q_PROPERTY(int zoom READ zoom WRITE setZoom NOTIFY zoomChanged) public: explicit NotebookView(QWidget *parent = 0); void setNotebook(const QString &path); QString notebook() const; QList pageNumbers() const; int curPage() const; void setCurPage(int page); int zoom() const; signals: void pageNumbersChanged(); void curPageChanged(); void zoomChanged(); public slots: void clear(); void setZoom(int zoom); void prevPage(); void nextPage(); protected: void resizeEvent(QResizeEvent *event); void scrollContentsBy(int dx, int dy); private: void removePages(); void createPages(); void calculateScale(); private: AfdNotebook *_nb; QString _nbPath; QMap _pages; QSizeF _maxPageSize; int _zoom; int _curPage; }; #endif // NOTEBOOKVIEW_H