22 #include "kplaintextmarkupbuilder.h"
26 class KPlainTextMarkupBuilderPrivate
41 QString getLetterString(
int itemNumber);
47 QString getReferences();
50 QList<QTextListFormat::Style> currentListItemStyles;
51 QList<int> currentListItemNumbers;
63 QString KPlainTextMarkupBuilderPrivate::getLetterString(
int itemNumber)
70 letterString.prepend(QString(
"%1").arg((itemNumber % LETTERSINALPHABET) + DIGITSOFFSET,
72 LETTERSINALPHABET + DIGITSOFFSET));
73 if ((itemNumber >= LETTERSINALPHABET)) {
74 itemNumber = itemNumber / LETTERSINALPHABET;
83 QString KPlainTextMarkupBuilderPrivate::getReferences()
86 if (!m_urls.isEmpty()) {
87 refs.append(i18nc(
"Beginning of the references section, which lists all external references",
88 "\n---- References ----\n"));
91 while (!m_urls.isEmpty()) {
92 refs.append(QString(
"[%1] %2\n").arg(index++).arg(m_urls.takeFirst()));
101 d->m_urls = QStringList();
107 d->m_text.append(
"*");
112 d->m_text.append(
"*");
117 d->m_text.append(
"/");
122 d->m_text.append(
"/");
127 d->m_text.append(
"_");
132 d->m_text.append(
"_");
137 d->m_text.append(
"-");
142 d->m_text.append(
"-");
149 if (!d->m_urls.contains(href)) {
151 d->m_urls.append(href);
153 d->activeLink = href;
159 d->m_text.append(QString(
"[%1]").arg(d->m_urls.indexOf(d->activeLink) + 1));
165 d->m_text.append(
"\n");
171 d->m_text.append(
"\n");
179 d->m_text.append(
"--------------------\n");
188 if (!d->m_urls.contains(src)) {
189 d->m_urls.append(src);
191 d->m_text.append(QString(
"[%1]").arg(d->m_urls.indexOf(src) + 1));
198 d->currentListItemStyles.append(style);
199 d->currentListItemNumbers.append(0);
205 if (!d->currentListItemNumbers.isEmpty()) {
206 d->currentListItemStyles.removeLast();
207 d->currentListItemNumbers.removeLast();
213 for (
int i = 0; i < d->currentListItemNumbers.size(); i++) {
214 d->m_text.append(
" ");
217 int itemNumber = d->currentListItemNumbers.last();
218 QString letterString;
220 switch (d->currentListItemStyles.last()) {
221 case QTextListFormat::ListDisc:
222 d->m_text.append(
" * ");
224 case QTextListFormat::ListCircle:
225 d->m_text.append(
" o ");
227 case QTextListFormat::ListSquare:
228 d->m_text.append(
" - ");
230 case QTextListFormat::ListDecimal:
231 d->m_text.append(QString(
" %1. ").arg(itemNumber + 1));
233 case QTextListFormat::ListLowerAlpha:
234 d->m_text.append(QString(
" %1. ").arg(d->getLetterString(itemNumber)));
236 case QTextListFormat::ListUpperAlpha:
237 d->m_text.append(QString(
" %1. ").arg(d->getLetterString(itemNumber).toUpper()));
247 d->currentListItemNumbers.last() = d->currentListItemNumbers.last() + 1;
254 d->m_text.append(
"^{");
260 d->m_text.append(
"}");
266 d->m_text.append(
"_{");
272 d->m_text.append(
"}");
278 d->m_text.append(text);
284 QString &ret = d->m_text;
285 ret.append(d->getReferences());