void TestKoTextEditor::pushSectionStart(int num, KoSection *sec, KoTextEditor *editor) { editor->insertText(QString("[ %1").arg(num)); QTextBlockFormat fmt = editor->blockFormat(); KoSectionUtils::setSectionStartings(fmt, QList<KoSection *>() << sec); editor->setBlockFormat(fmt); editor->insertText("\n"); fmt.clearProperty(KoParagraphStyle::SectionEndings); fmt.clearProperty(KoParagraphStyle::SectionStartings); editor->setBlockFormat(fmt); }
void TestKoTextEditor::pushSectionEnd(int num, KoSectionEnd *secEnd, KoTextEditor *editor) { editor->insertText(QString("%1 ]").arg(num)); QTextBlockFormat fmt = editor->blockFormat(); KoSectionUtils::setSectionEndings(fmt, QList<KoSectionEnd *>() << secEnd); editor->setBlockFormat(fmt); secEnd->correspondingSection()->setKeepEndBound(true); editor->insertText("\n"); fmt.clearProperty(KoParagraphStyle::SectionEndings); fmt.clearProperty(KoParagraphStyle::SectionStartings); editor->setBlockFormat(fmt); }
void ChatView::doTrackBar() { // save position, because our manipulations could change it int scrollbarValue = verticalScrollBar()->value(); QTextCursor cursor = textCursor(); cursor.beginEditBlock(); PsiRichText::Selection selection = PsiRichText::saveSelection(this, cursor); //removeTrackBar(cursor); if (oldTrackBarPosition) { cursor.setPosition(oldTrackBarPosition, QTextCursor::KeepAnchor); QTextBlockFormat blockFormat = cursor.blockFormat(); blockFormat.clearProperty(QTextFormat::BlockTrailingHorizontalRulerWidth); cursor.clearSelection(); cursor.setBlockFormat(blockFormat); } //addTrackBar(cursor); cursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor); oldTrackBarPosition = cursor.position(); QTextBlockFormat blockFormat = cursor.blockFormat(); blockFormat.setProperty(QTextFormat::BlockTrailingHorizontalRulerWidth, QVariant(true)); cursor.clearSelection(); cursor.setBlockFormat(blockFormat); PsiRichText::restoreSelection(this, cursor, selection); cursor.endEditBlock(); setTextCursor(cursor); verticalScrollBar()->setValue(scrollbarValue); }
void KoList::add(const QTextBlock &block, int level) { if (!block.isValid()) return; if (level == 0) { // fetch the first proper level we have level = 1; // if nothing works... for (int i = 1; i <= 10; i++) { if (d->style->hasLevelProperties(i)) { level = i; break; } } } remove(block); QTextList *textList = d->textLists.value(level-1).data(); if (!textList) { QTextCursor cursor(block); QTextListFormat format = d->style->listFormat(level); if (continueNumbering(level)) format.setProperty(KListStyle::ContinueNumbering, true); textList = cursor.createList(format); format.setProperty(KListStyle::ListId, (KListStyle::ListIdType)(textList)); textList->setFormat(format); d->textLists[level-1] = textList; d->textListIds[level-1] = (KListStyle::ListIdType)textList; } else { textList->add(block); } QTextCursor cursor(block); QTextBlockFormat blockFormat = cursor.blockFormat(); if (d->style->styleId()) { blockFormat.setProperty(KParagraphStyle::ListStyleId, d->style->styleId()); } else { blockFormat.clearProperty(KParagraphStyle::ListStyleId); } if (d->type == KoList::TextList) { blockFormat.clearProperty(KParagraphStyle::ListLevel); } else { blockFormat.setProperty(KParagraphStyle::ListLevel, level); } cursor.setBlockFormat(blockFormat); d->invalidate(block); }
bool QTextHtmlImporter::appendNodeText() { const int initialCursorPosition = cursor.position(); QTextCharFormat format = currentNode->charFormat; if (isPreservingWhitespaceMode(wsm)) compressNextWhitespace = false; QString text = currentNode->text; QString textToInsert; textToInsert.reserve(text.size()); for (int i = 0; i < text.length(); ++i) { QChar ch = text.at(i); if (ch.isSpace() && ch != QChar::Nbsp && ch != QChar::ParagraphSeparator) { if (compressNextWhitespace) continue; if (wsm == QTextHtmlParserNode::WhiteSpacePre || textEditMode ) { if (ch == QLatin1Char('\n')) { if (textEditMode) continue; } else if (ch == QLatin1Char('\r')) { continue; } } else if (wsm != QTextHtmlParserNode::WhiteSpacePreWrap) { compressNextWhitespace = true; if (wsm == QTextHtmlParserNode::WhiteSpaceNoWrap) ch = QChar::Nbsp; else ch = QLatin1Char(' '); } } else { compressNextWhitespace = false; } if (ch == QLatin1Char('\n') || ch == QChar::ParagraphSeparator) { if (!textToInsert.isEmpty()) { cursor.insertText(textToInsert, format); textToInsert.clear(); } QTextBlockFormat fmt = cursor.blockFormat(); if (fmt.hasProperty(QTextFormat::BlockBottomMargin)) { QTextBlockFormat tmp = fmt; tmp.clearProperty(QTextFormat::BlockBottomMargin); cursor.setBlockFormat(tmp); } fmt.clearProperty(QTextFormat::BlockTopMargin); appendBlock(fmt, cursor.charFormat()); } else { if (!namedAnchors.isEmpty()) { if (!textToInsert.isEmpty()) { cursor.insertText(textToInsert, format); textToInsert.clear(); } format.setAnchor(true); format.setAnchorNames(namedAnchors); cursor.insertText(ch, format); namedAnchors.clear(); format.clearProperty(QTextFormat::IsAnchor); format.clearProperty(QTextFormat::AnchorName); } else { textToInsert += ch; } } } if (!textToInsert.isEmpty()) { cursor.insertText(textToInsert, format); } return cursor.position() != initialCursorPosition; }