Table of contents navigation.
[mebook:mebook.git] / core / book.h
1 #ifndef BOOK_H
2 #define BOOK_H
3
4 #include <QTextDocument>
5 #include <QTextBlock>
6 #include <QHash>
7 #include <QList>
8 #include <QDate>
9 #include <QObject>
10
11 #include "epubgenerator.h"
12 #include "bookmark.h"
13 #include "annotation.h"
14
15
16 class Book : public QObject
17 {
18     Q_OBJECT
19 public:
20     Book();
21     ~Book();
22
23     void openBook(const QString &filename);
24
25     QString getFirstChapter();
26     QString getNextChapter(QString&);
27     QString getChapter(QString);
28
29     QString getCover();
30     QString getNextSection(int &number);
31     QString getPreviousSection(int &number);
32     QString getSection(int);
33     int getSectionNumber(QString);
34     QString getBook();
35     QList<QString> getTOC();
36
37     QNetworkAccessManager *getResourceManager();
38
39 private:
40     QString title;
41     QString author;
42     QString publisher;
43     QString description;
44     QString subject;
45     QDate publishDate;
46     QString category;
47     QString copyright;
48     
49     QList<QString> toc;
50
51     QHash<QString, QString*> document;
52     QList<QString*> sections;
53
54     QList<Bookmark> bookmarks;
55     QList<Annotation> annotations;
56
57     EpubGenerator *generator;
58
59 public slots:
60     void setTitle(QString);
61     void setAuthor(QString);
62     void setPublisher(QString);
63     void setDescription(QString);
64     void setSubject(QString);
65     void setPublishDate(QString);
66     void setCategory(QString);
67     void setCopyright(QString);
68
69     void addChapter(QString, QString*);
70     void addTOCItem(QString);
71     void addSection(QString*);
72
73 };
74
75 #endif