本文整理汇总了C++中KoXmlWriter::addTextSpan方法的典型用法代码示例。如果您正苦于以下问题:C++ KoXmlWriter::addTextSpan方法的具体用法?C++ KoXmlWriter::addTextSpan怎么用?C++ KoXmlWriter::addTextSpan使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KoXmlWriter
的用法示例。
在下文中一共展示了KoXmlWriter::addTextSpan方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: saveOdf
void KoInlineNote::saveOdf(KoShapeSavingContext & context)
{
KoXmlWriter *writer = &context.xmlWriter();
QTextDocument *document = new QTextDocument();
KoTextDocument textDocument(document);
Q_ASSERT(!d->styleManager.isNull());
textDocument.setStyleManager(d->styleManager.data());
QTextCursor cursor(document);
cursor.insertFragment(d->text);
if (d->type == Footnote || d->type == Endnote) {
writer->startElement("text:note", false);
if (d->type == Footnote)
writer->addAttribute("text:note-class", "footnote");
else
writer->addAttribute("text:note-class", "endnote");
writer->addAttribute("text:id", d->id);
writer->startElement("text:note-citation", false);
if (!autoNumbering())
writer->addAttribute("text:label", d->label);
writer->addTextNode(d->label);
writer->endElement();
writer->startElement("text:note-body", false);
KoTextWriter textWriter(context);
textWriter.write(document, 0);
writer->endElement();
writer->endElement();
}
else if (d->type == Annotation) {
writer->startElement("office:annotation");
if (!d->author.isEmpty()) {
writer->startElement("dc:creator");
writer->addTextNode(d->author);
writer->endElement();
}
if (d->date.isValid()) {
writer->startElement("dc:date");
writer->addTextSpan(d->date.toString(Qt::ISODate));
writer->endElement();
}
KoTextWriter textWriter(context);
textWriter.write(document, 0);
writer->endElement();
}
delete document;
}
示例2: convert
//.........这里部分代码省略.........
switch (paragraphStrategy) {
case 1: { // Sentence: Line-break at the end of a sentence.
QString stoppingPunctuation(".!?");
QString skippingEnd(" \"')");
while (!stream.atEnd()) {
QString paragraph;
for (;;) {
const QString line = stream.readLine();
if (line.isEmpty())
break;
paragraph += line + ' ';
int lastPos = line.length() - 1;
int maxCheck = lastPos >= 10 ? 10: lastPos + 1;
QChar lastChar;
// Skip a maximum of 10 quotes (or similar) at the end of the line
for (int i = 0; i < maxCheck; ++i, --lastPos) {
lastChar = line[lastPos];
if (lastPos == 0 || lastChar.isNull() || skippingEnd.indexOf(lastChar) == -1)
break;
}
lastChar = line[lastPos];
if (lastChar.isNull())
continue;
if (stoppingPunctuation.indexOf(lastChar) != -1)
break;
}
if (!paragraph.isNull()) {
QString s = paragraph.simplified();
#ifdef OUTPUT_AS_ODT_FILE
bodyWriter->startElement("text:p");
bodyWriter->addAttribute("text:style-name", styleName);
if (!s.isEmpty())
bodyWriter->addTextSpan(s);
bodyWriter->endElement();
#else
if (!s.isEmpty())
cursor.insertText(s /*, charFormat*/);
cursor.insertBlock();
loadUpdater->setValue(stream.device()->pos());
#endif
}
}
} break;
case 2: { // Empty Line: Line-break if the line is empty.
while (!stream.atEnd()) {
QString paragraph;
do {
const QString line = stream.readLine();
if (line.isEmpty())
break;
paragraph.append(line + ' ');
} while(true);
if (!paragraph.isNull()) {
QString s = paragraph.simplified();
#ifdef OUTPUT_AS_ODT_FILE
bodyWriter->startElement("text:p");
bodyWriter->addAttribute("text:style-name", styleName);
if (!s.isEmpty())
bodyWriter->addTextSpan(s);
bodyWriter->endElement();
#else
if (!s.isEmpty()) {
cursor.insertText(s /*, charFormat*/);
cursor.insertBlock();
loadUpdater->setValue(stream.device()->pos());