diff --git a/kpimtextedit/richtextbuilders/ktexthtmlbuilder.cpp b/kpimtextedit/richtextbuilders/ktexthtmlbuilder.cpp index 54be3c3b3..536319576 100644 --- a/kpimtextedit/richtextbuilders/ktexthtmlbuilder.cpp +++ b/kpimtextedit/richtextbuilders/ktexthtmlbuilder.cpp @@ -1,442 +1,442 @@ /* This file is part of KDE. Copyright (c) 2008 Stephen Kelly This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "ktexthtmlbuilder.h" #include #include class KTextHTMLBuilderPrivate { public: KTextHTMLBuilderPrivate(KTextHTMLBuilder *b) : q_ptr(b) { } QList currentListItemStyles; QString m_text; KTextHTMLBuilder *q_ptr; Q_DECLARE_PUBLIC(KTextHTMLBuilder) }; KTextHTMLBuilder::KTextHTMLBuilder() : d_ptr(new KTextHTMLBuilderPrivate(this)) { } KTextHTMLBuilder::~KTextHTMLBuilder() { - + delete d_ptr; } void KTextHTMLBuilder::beginStrong() { Q_D(KTextHTMLBuilder);; d->m_text.append(""); } void KTextHTMLBuilder::endStrong() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginEmph() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::endEmph() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginUnderline() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::endUnderline() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginStrikeout() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::endStrikeout() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginForeground(const QBrush &brush) { Q_D(KTextHTMLBuilder); d->m_text.append(QString("").arg(brush.color().name())); } void KTextHTMLBuilder::endForeground() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginBackground(const QBrush &brush) { Q_D(KTextHTMLBuilder); d->m_text.append(QString("").arg(brush.color().name())); } void KTextHTMLBuilder::endBackground() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginAnchor(const QString &href, const QString &name) { Q_D(KTextHTMLBuilder); if (!href.isEmpty()) { if (!name.isEmpty()) { d->m_text.append(QString("").arg(href).arg(name)); } else { d->m_text.append(QString("").arg(href)); } } else { if (!name.isEmpty()) { d->m_text.append(QString("").arg(name)); } } } void KTextHTMLBuilder::endAnchor() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginFontFamily(const QString &family) { Q_D(KTextHTMLBuilder); d->m_text.append(QString("").arg(family)); } void KTextHTMLBuilder::endFontFamily() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginFontPointSize(int size) { Q_D(KTextHTMLBuilder); d->m_text.append(QString("").arg(QString::number(size))); } void KTextHTMLBuilder::endFontPointSize() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginParagraph(Qt::Alignment al, qreal topMargin, qreal bottomMargin, qreal leftMargin, qreal rightMargin) { Q_D(KTextHTMLBuilder); // Don't put paragraph tags inside li tags. Qt bug reported. // if (currentListItemStyles.size() != 0) // { QString styleString; if (topMargin != 0) { styleString.append(QString("margin-top:%1;").arg(topMargin)); } if (bottomMargin != 0) { styleString.append(QString("margin-bottom:%1;").arg(bottomMargin)); } if (leftMargin != 0) { styleString.append(QString("margin-left:%1;").arg(leftMargin)); } if (rightMargin != 0) { styleString.append(QString("margin-right:%1;").arg(rightMargin)); } // Using == doesn't work here. // Using bitwise comparison because an alignment can contain a vertical and a horizontal part. if (al & Qt::AlignRight) { d->m_text.append("

m_text.append("

m_text.append("

m_text.append("m_text.append("m_text.append(" \"" + styleString + "\""); } d->m_text.append(">"); // } } void KTextHTMLBuilder::beginHeader(int level) { Q_D(KTextHTMLBuilder); switch (level) { case 1: d->m_text.append("

"); break; case 2: d->m_text.append("

"); break; case 3: d->m_text.append("

"); break; case 4: d->m_text.append("

"); break; case 5: d->m_text.append("

"); break; case 6: d->m_text.append("
"); break; default: break; } } void KTextHTMLBuilder::endHeader(int level) { Q_D(KTextHTMLBuilder); switch (level) { case 1: d->m_text.append("
"); break; case 2: d->m_text.append(""); break; case 3: d->m_text.append(""); break; case 4: d->m_text.append(""); break; case 5: d->m_text.append(""); break; case 6: d->m_text.append(""); break; default: break; } } void KTextHTMLBuilder::endParagraph() { Q_D(KTextHTMLBuilder); d->m_text.append("

\n"); } void KTextHTMLBuilder::addNewline() { Q_D(KTextHTMLBuilder); d->m_text.append("
\n"); } void KTextHTMLBuilder::insertHorizontalRule(int width) { Q_D(KTextHTMLBuilder); if (width != -1) { d->m_text.append(QString("
\n").arg(width)); } d->m_text.append("
\n"); } void KTextHTMLBuilder::insertImage(const QString &src, qreal width, qreal height) { Q_D(KTextHTMLBuilder); d->m_text.append(QString("m_text.append(QString("width=\"%2\" ").arg(width)); if (height != 0) d->m_text.append(QString("height=\"%2\" ").arg(height)); d->m_text.append("/>"); } void KTextHTMLBuilder::beginList(QTextListFormat::Style type) { Q_D(KTextHTMLBuilder); d->currentListItemStyles.append(type); switch (type) { case QTextListFormat::ListDisc: d->m_text.append("
    \n"); break; case QTextListFormat::ListCircle: d->m_text.append("\n
      \n"); break; case QTextListFormat::ListSquare: d->m_text.append("\n
        \n"); break; case QTextListFormat::ListDecimal: d->m_text.append("\n
          \n"); break; case QTextListFormat::ListLowerAlpha: d->m_text.append("\n
            \n"); break; case QTextListFormat::ListUpperAlpha: d->m_text.append("\n
              \n"); break; default: break; } } void KTextHTMLBuilder::endList() { Q_D(KTextHTMLBuilder); switch (d->currentListItemStyles.last()) { case QTextListFormat::ListDisc: case QTextListFormat::ListCircle: case QTextListFormat::ListSquare: d->m_text.append("
      \n"); break; case QTextListFormat::ListDecimal: case QTextListFormat::ListLowerAlpha: case QTextListFormat::ListUpperAlpha: d->m_text.append("\n"); break; default: break; } d->currentListItemStyles.removeLast(); } void KTextHTMLBuilder::beginListItem() { Q_D(KTextHTMLBuilder); d->m_text.append("
    • "); } void KTextHTMLBuilder::endListItem() { Q_D(KTextHTMLBuilder); d->m_text.append("
    • \n"); } void KTextHTMLBuilder::beginSuperscript() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::endSuperscript() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginSubscript() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::endSubscript() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginTable(qreal cellpadding, qreal cellspacing, const QString &width) { Q_D(KTextHTMLBuilder); d->m_text.append(QString("") .arg(cellpadding) .arg(cellspacing) .arg(width)); } void KTextHTMLBuilder::beginTableRow() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::beginTableHeaderCell(const QString &width, int colspan, int rowspan) { Q_D(KTextHTMLBuilder); d->m_text.append(QString("
      ").arg(width).arg(colspan).arg(rowspan)); } void KTextHTMLBuilder::beginTableCell(const QString &width, int colspan, int rowspan) { Q_D(KTextHTMLBuilder); d->m_text.append(QString("").arg(width).arg(colspan).arg(rowspan)); } void KTextHTMLBuilder::endTable() { Q_D(KTextHTMLBuilder); d->m_text.append("
      "); } void KTextHTMLBuilder::endTableRow() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::endTableHeaderCell() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::endTableCell() { Q_D(KTextHTMLBuilder); d->m_text.append(""); } void KTextHTMLBuilder::appendLiteralText(const QString &text) { Q_D(KTextHTMLBuilder); d->m_text.append(Qt::escape(text)); } QString& KTextHTMLBuilder::getResult() { Q_D(KTextHTMLBuilder); return d->m_text; }