You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
3.3 KiB
85 lines
3.3 KiB
/*************************************************************************** |
|
* Copyright (C) 2007 by Tobias Koenig <tokoe@kde.org> * |
|
* * |
|
* This program is free software; you can redistribute it and/or modify * |
|
* it under the terms of the GNU General Public License as published by * |
|
* the Free Software Foundation; either version 2 of the License, or * |
|
* (at your option) any later version. * |
|
***************************************************************************/ |
|
|
|
#ifndef FICTIONBOOK_CONVERTER_H |
|
#define FICTIONBOOK_CONVERTER_H |
|
|
|
#include <core/textdocumentgenerator.h> |
|
|
|
class QDomElement; |
|
class QTextCharFormat; |
|
class QTextCursor; |
|
class QTextTable; |
|
|
|
namespace FictionBook |
|
{ |
|
class Converter : public Okular::TextDocumentConverter |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
Converter(); |
|
~Converter() override; |
|
|
|
QTextDocument *convert(const QString &fileName) override; |
|
|
|
private: |
|
bool convertBody(const QDomElement &element); |
|
bool convertDescription(const QDomElement &element); |
|
bool convertSection(const QDomElement &element); |
|
bool convertTitle(const QDomElement &element); |
|
bool convertParagraph(const QDomElement &element); |
|
bool convertBinary(const QDomElement &element); |
|
bool convertCover(const QDomElement &element); |
|
bool convertImage(const QDomElement &element); |
|
bool convertEpigraph(const QDomElement &element); |
|
bool convertPoem(const QDomElement &element); |
|
bool convertSubTitle(const QDomElement &element); |
|
bool convertCite(const QDomElement &element); |
|
bool convertEmptyLine(const QDomElement &element); |
|
bool convertLink(const QDomElement &element); |
|
bool convertEmphasis(const QDomElement &element); |
|
bool convertStrong(const QDomElement &element); |
|
bool convertStrikethrough(const QDomElement &element); |
|
bool convertStyle(const QDomElement &element); |
|
bool convertStanza(const QDomElement &element); |
|
bool convertCode(const QDomElement &element); |
|
bool convertSuperScript(const QDomElement &element); |
|
bool convertSubScript(const QDomElement &element); |
|
bool convertTable(const QDomElement &element); |
|
bool convertTableRow(const QDomElement &element, QTextTable &table); |
|
bool convertTableHeaderCell(const QDomElement &element, QTextTable &table, int &column); |
|
bool convertTableCell(const QDomElement &element, QTextTable &table, int &column); |
|
bool convertTableCellHelper(const QDomElement &element, QTextTable &table, int &column, const QTextCharFormat &charFormat); |
|
|
|
bool convertTitleInfo(const QDomElement &element); |
|
bool convertDocumentInfo(const QDomElement &element); |
|
bool convertAuthor(const QDomElement &element, QString &firstName, QString &middleName, QString &lastName, QString &email, QString &nickname); |
|
bool convertDate(const QDomElement &element, QDate &date); |
|
bool convertTextNode(const QDomElement &element, QString &data); |
|
bool convertAnnotation(const QDomElement &element, QString &data); |
|
|
|
QTextDocument *mTextDocument; |
|
QTextCursor *mCursor; |
|
|
|
class TitleInfo; |
|
TitleInfo *mTitleInfo; |
|
|
|
class DocumentInfo; |
|
DocumentInfo *mDocumentInfo; |
|
|
|
int mSectionCounter; |
|
|
|
QMap<QString, QTextBlock> mSectionMap; |
|
QMap<QString, QPair<int, int>> mLocalLinks; |
|
}; |
|
|
|
} |
|
|
|
#endif
|
|
|