File indexing completed on 2024-05-12 16:06:41

0001 /*
0002     SPDX-FileCopyrightText: 2008 Ely Levy <elylevy@cs.huji.ac.il>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef EPUB_CONVERTER_H
0008 #define EPUB_CONVERTER_H
0009 
0010 #include <QFont>
0011 #include <core/document.h>
0012 #include <core/textdocumentgenerator.h>
0013 
0014 #include "epubdocument.h"
0015 
0016 namespace Epub
0017 {
0018 class Converter : public Okular::TextDocumentConverter
0019 {
0020     Q_OBJECT
0021 
0022 public:
0023     Converter();
0024     ~Converter() override;
0025 
0026     QTextDocument *convert(const QString &fileName) override;
0027 
0028 private:
0029     void _emitData(Okular::DocumentInfo::Key key, enum epub_metadata type);
0030     void _handle_anchors(const QTextBlock &start, const QString &name);
0031     void _insert_local_links(const QString &key, const QPair<int, int> value);
0032     EpubDocument *mTextDocument;
0033     QFont mFont;
0034 
0035     QHash<QString, QTextBlock> mSectionMap;
0036     QHash<QString, QVector<QPair<int, int>>> mLocalLinks;
0037 };
0038 }
0039 
0040 #endif