virtual void visitBlock(QTextBlock &block, const QTextCursor &caret) { m_formats.clear(); m_cursors.clear(); for (QTextBlock::iterator it = block.begin(); it != block.end(); ++it) { QTextCursor fragmentSelection(caret); fragmentSelection.setPosition(it.fragment().position()); fragmentSelection.setPosition(it.fragment().position() + it.fragment().length(), QTextCursor::KeepAnchor); if (fragmentSelection.anchor() >= fragmentSelection.position()) { continue; } visitFragmentSelection(fragmentSelection); } QTextCursor cursor(caret); cursor.mergeBlockFormat(m_deltaBlockFormat); cursor.mergeBlockCharFormat(m_deltaCharFormat); QList<QTextCharFormat>::Iterator it = m_formats.begin(); foreach(QTextCursor cursor, m_cursors) { cursor.setCharFormat(*it); ++it; }
virtual void visitBlock(QTextBlock &block, const QTextCursor &caret) { for (QTextBlock::iterator it = block.begin(); it != block.end(); ++it) { QTextCursor fragmentSelection(caret); fragmentSelection.setPosition(it.fragment().position()); fragmentSelection.setPosition(it.fragment().position() + it.fragment().length(), QTextCursor::KeepAnchor); if (fragmentSelection.anchor() >= fragmentSelection.position()) { continue; } visitFragmentSelection(fragmentSelection); } QList<QTextCharFormat>::Iterator it = m_formats.begin(); Q_FOREACH (QTextCursor cursor, m_cursors) { QTextFormat prevFormat(cursor.charFormat()); cursor.setCharFormat(*it); editor()->registerTrackedChange(cursor, KoGenChange::FormatChange, kundo2_i18n("Formatting"), *it, prevFormat, false); ++it; }