21 #include "texthtmlbuilder.h" 23 #include <QtCore/QList> 24 #include <QtGui/QTextDocument> 45 TextHTMLBuilder::TextHTMLBuilder()
50 TextHTMLBuilder::~TextHTMLBuilder() {
delete d_ptr; }
56 d->m_text.append(QStringLiteral(
"<strong>"));
62 d->m_text.append(QStringLiteral(
"</strong>"));
68 d->m_text.append(QStringLiteral(
"<em>"));
74 d->m_text.append(QStringLiteral(
"</em>"));
80 d->m_text.append(QStringLiteral(
"<u>"));
86 d->m_text.append(QStringLiteral(
"</u>"));
92 d->m_text.append(QStringLiteral(
"<s>"));
98 d->m_text.append(QStringLiteral(
"</s>"));
105 QStringLiteral(
"<span style=\"color:%1;\">").arg(brush.
color().
name()));
111 d->m_text.append(QStringLiteral(
"</span>"));
117 d->m_text.append(QStringLiteral(
"<span style=\"background-color:%1;\">")
124 d->m_text.append(QStringLiteral(
"</span>"));
133 QStringLiteral(
"<a href=\"%1\" name=\"%2\">").arg(href, name));
135 d->m_text.append(QStringLiteral(
"<a href=\"%1\">").arg(href));
139 d->m_text.append(QStringLiteral(
"<a name=\"%1\">").arg(name));
147 d->m_text.append(QStringLiteral(
"</a>"));
154 QStringLiteral(
"<span style=\"font-family:%1;\">").arg(family));
160 d->m_text.append(QStringLiteral(
"</span>"));
166 d->m_text.append(QStringLiteral(
"<span style=\"font-size:%1pt;\">")
173 d->m_text.append(QStringLiteral(
"</span>"));
177 qreal bottomMargin, qreal leftMargin,
185 if (topMargin != 0) {
186 styleString.
append(QStringLiteral(
"margin-top:%1;").arg(topMargin));
188 if (bottomMargin != 0) {
189 styleString.
append(QStringLiteral(
"margin-bottom:%1;").arg(bottomMargin));
191 if (leftMargin != 0) {
192 styleString.
append(QStringLiteral(
"margin-left:%1;").arg(leftMargin));
194 if (rightMargin != 0) {
195 styleString.
append(QStringLiteral(
"margin-right:%1;").arg(rightMargin));
203 d->m_text.
append(QStringLiteral(
"<p align=\"right\" "));
205 d->m_text.
append(QStringLiteral(
"<p align=\"center\" "));
207 d->m_text.
append(QStringLiteral(
"<p align=\"justify\" "));
209 d->m_text.
append(QStringLiteral(
"<p"));
211 d->m_text.
append(QStringLiteral(
"<p"));
226 d->m_text.append(QStringLiteral(
"<h1>"));
229 d->m_text.append(QStringLiteral(
"<h2>"));
232 d->m_text.append(QStringLiteral(
"<h3>"));
235 d->m_text.append(QStringLiteral(
"<h4>"));
238 d->m_text.append(QStringLiteral(
"<h5>"));
241 d->m_text.append(QStringLiteral(
"<h6>"));
253 d->m_text.append(QStringLiteral(
"</h1>"));
256 d->m_text.append(QStringLiteral(
"</h2>"));
259 d->m_text.append(QStringLiteral(
"</h3>"));
262 d->m_text.append(QStringLiteral(
"</h4>"));
265 d->m_text.append(QStringLiteral(
"</h5>"));
268 d->m_text.append(QStringLiteral(
"</h6>"));
278 d->m_text.append(QStringLiteral(
"</p>\n"));
284 d->m_text.append(QStringLiteral(
"<p> "));
291 d->m_text.append(QStringLiteral(
"<hr width=\"%1\" />\n").arg(width));
293 d->m_text.append(QStringLiteral(
"<hr />\n"));
299 d->m_text.append(QStringLiteral(
"<img src=\"%1\" ").arg(src));
301 d->m_text.append(QStringLiteral(
"width=\"%2\" ").arg(width));
303 d->m_text.append(QStringLiteral(
"height=\"%2\" ").arg(height));
304 d->m_text.append(QStringLiteral(
"/>"));
310 d->currentListItemStyles.append(type);
313 d->m_text.append(QStringLiteral(
"<ul type=\"disc\">\n"));
316 d->m_text.append(QStringLiteral(
"\n<ul type=\"circle\">\n"));
319 d->m_text.append(QStringLiteral(
"\n<ul type=\"square\">\n"));
322 d->m_text.append(QStringLiteral(
"\n<ol type=\"1\">\n"));
325 d->m_text.append(QStringLiteral(
"\n<ol type=\"a\">\n"));
328 d->m_text.append(QStringLiteral(
"\n<ol type=\"A\">\n"));
331 d->m_text.append(QStringLiteral(
"\n<ol type=\"i\">\n"));
334 d->m_text.append(QStringLiteral(
"\n<ol type=\"I\">\n"));
343 switch (d->currentListItemStyles.last()) {
347 d->m_text.append(QStringLiteral(
"</ul>\n"));
354 d->m_text.append(QStringLiteral(
"</ol>\n"));
359 d->currentListItemStyles.removeLast();
364 d->m_text.append(QStringLiteral(
"<li>"));
370 d->m_text.append(QStringLiteral(
"</li>\n"));
376 d->m_text.append(QStringLiteral(
"<sup>"));
382 d->m_text.append(QStringLiteral(
"</sup>"));
388 d->m_text.append(QStringLiteral(
"<sub>"));
394 d->m_text.append(QStringLiteral(
"</sub>"));
402 QStringLiteral(
"<table cellpadding=\"%1\" cellspacing=\"%2\" " 403 "width=\"%3\" border=\"1\">")
412 d->m_text.append(QStringLiteral(
"<tr>"));
420 QStringLiteral(
"<th width=\"%1\" colspan=\"%2\" rowspan=\"%3\">")
431 QStringLiteral(
"<td width=\"%1\" colspan=\"%2\" rowspan=\"%3\">")
440 d->m_text.append(QStringLiteral(
"</table>"));
446 d->m_text.append(QStringLiteral(
"</tr>"));
452 d->m_text.append(QStringLiteral(
"</th>"));
458 d->m_text.append(QStringLiteral(
"</td>"));
470 d->m_text.append(text);
476 auto ret = d->m_text;
void beginSuperscript() override
void endFontPointSize() override
void appendRawText(const QString &text) override
QString & append(QChar ch)
void beginSubscript() override
void beginTableHeaderCell(const QString &width, int colspan, int rowspan) override
void appendLiteralText(const QString &text) override
void endBackground() override
void endSubscript() override
QString name(NameFormat format) const const
void endForeground() override
The Cutelee namespace holds all public Cutelee API.
void beginFontPointSize(int size) override
void beginUnderline() override
void endAnchor() override
void beginEmph() override
const QColor & color() const const
void endTableCell() override
QString number(double n, char format, int precision)
void endListItem() override
void beginParagraph(Qt::Alignment al=Qt::AlignLeft, qreal topMargin=0.0, qreal bottomMargin=0.0, qreal leftMargin=0.0, qreal rightMargin=0.0) override
QString getResult() override
bool isEmpty() const const
void endHeader(int level) override
void beginStrong() override
void insertImage(const QString &src, qreal width, qreal height) override
void beginTable(qreal cellpadding, qreal cellspacing, const QString &width) override
void addNewline() override
void beginAnchor(const QString &href={}, const QString &name={}) override
void beginBackground(const QBrush &brush) override
void endTableHeaderCell() override
QString toHtmlEscaped() const const
void endSuperscript() override
void beginHeader(int level) override
void beginList(QTextListFormat::Style type) override
void endStrikeout() override
void beginForeground(const QBrush &brush) override
void endUnderline() override
void beginTableCell(const QString &width, int colspan, int rowspan) override
void endTableRow() override
void insertHorizontalRule(int width=-1) override
void endParagraph() override
void beginStrikeout() override
void endFontFamily() override
void endStrong() override
Interface for creating marked-up text output.
void beginListItem() override
void beginTableRow() override
The TextHTMLBuilder creates a clean html markup output.
void beginFontFamily(const QString &family) override