本文整理汇总了C++中KoParagraphStyle::applyStyle方法的典型用法代码示例。如果您正苦于以下问题:C++ KoParagraphStyle::applyStyle方法的具体用法?C++ KoParagraphStyle::applyStyle怎么用?C++ KoParagraphStyle::applyStyle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KoParagraphStyle
的用法示例。
在下文中一共展示了KoParagraphStyle::applyStyle方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testBorder
void TestBorder::testBorder()
{
KoParagraphStyle style;
style.setLeftBorderWidth(4.0);
style.setLeftBorderSpacing(2.0);
style.setLeftInnerBorderWidth(1.0);
style.setTopBorderWidth(6.0);
style.setTopBorderSpacing(7.0);
style.setTopInnerBorderWidth(8.0);
QTextBlockFormat format;
style.applyStyle(format);
KoTextBlockBorderData data(QRectF(10, 10, 100, 100));
data.setEdge(KoTextBlockBorderData::Left, format, KoParagraphStyle::LeftBorderStyle,
KoParagraphStyle::LeftBorderWidth, KoParagraphStyle::LeftBorderColor,
KoParagraphStyle::LeftBorderSpacing, KoParagraphStyle::LeftInnerBorderWidth);
data.setEdge(KoTextBlockBorderData::Top, format, KoParagraphStyle::TopBorderStyle,
KoParagraphStyle::TopBorderWidth, KoParagraphStyle::TopBorderColor,
KoParagraphStyle::TopBorderSpacing, KoParagraphStyle::TopInnerBorderWidth);
//QCOMPARE(QRectF(10, 10, 100, 80), data.rect());
QCOMPARE(7., data.inset(KoTextBlockBorderData::Left));
QCOMPARE(0., data.inset(KoTextBlockBorderData::Right));
QCOMPARE(21., data.inset(KoTextBlockBorderData::Top));
QCOMPARE(0., data.inset(KoTextBlockBorderData::Bottom));
}
示例2: slotApply
void ParagraphSettingsDialog::slotApply()
{
if (!m_styleChanged) {
return;
}
KoParagraphStyle chosenStyle;
m_paragraphGeneral->save(&chosenStyle);
QTextCharFormat cformat;
QTextBlockFormat format;
chosenStyle.KoCharacterStyle::applyStyle(cformat);
chosenStyle.applyStyle(format);
KoListLevelProperties llp;
if (chosenStyle.listStyle()) {
llp = chosenStyle.listStyle()->levelProperties(chosenStyle.listStyle()->listLevels().first());
} else {
llp.setStyle(KoListStyle::None);
}
m_editor->applyDirectFormatting(cformat, format, llp);
m_styleChanged = false;
}
示例3: thumbnail
QImage KoStyleThumbnailer::thumbnail(KoCharacterStyle *characterStyle, KoParagraphStyle *paragraphStyle, QSize size, bool recreateThumbnail, KoStyleThumbnailerFlags flags)
{
if ((flags & UseStyleNameText) && (!characterStyle || characterStyle->name().isNull())) {
return QImage();
} else if ((! (flags & UseStyleNameText)) && d->thumbnailText.isEmpty()) {
return QImage();
}
else if (characterStyle == 0) {
return QImage();
}
if (!size.isValid() || size.isNull()) {
size = d->defaultSize;
}
QString imageKey = "c_" + QString::number(reinterpret_cast<unsigned long>(characterStyle)) + "_"
+ "p_" + QString::number(reinterpret_cast<unsigned long>(paragraphStyle)) + "_"
+ QString::number(size.width()) + "_" + QString::number(size.height());
if (!recreateThumbnail && d->thumbnailCache.object(imageKey)) {
return QImage(*(d->thumbnailCache.object(imageKey)));
}
QImage *im = new QImage(size.width(), size.height(), QImage::Format_ARGB32_Premultiplied);
im->fill(QColor(Qt::transparent).rgba());
QTextCursor cursor(d->thumbnailHelperDocument);
QTextCharFormat format;
// Default to black as text color, to match what KoTextLayoutArea::paint(...)
// does, setting solid black if no brush is set. Otherwise the UI text color
// would be used, which might be too bright with dark UI color schemes
format.setForeground(QColor(Qt::black));
KoCharacterStyle *characterStyleClone = characterStyle->clone();
characterStyleClone->applyStyle(format);
cursor.select(QTextCursor::Document);
cursor.setBlockFormat(QTextBlockFormat());
cursor.setBlockCharFormat(QTextCharFormat());
cursor.setCharFormat(QTextCharFormat());
if (paragraphStyle) {
KoParagraphStyle *paragraphStyleClone = paragraphStyle->clone();
// paragraphStyleClone->KoCharacterStyle::applyStyle(format);
QTextBlock block = cursor.block();
paragraphStyleClone->applyStyle(block, true);
delete paragraphStyleClone;
paragraphStyleClone = 0;
}
if (flags & UseStyleNameText) {
cursor.insertText(characterStyleClone->name(), format);
} else {
cursor.insertText(d->thumbnailText, format);
}
layoutThumbnail(size, im, flags);
d->thumbnailCache.insert(imageKey, im);
delete characterStyleClone;
return QImage(*im);
}
示例4: testBasicList
void TestDocumentLayout::testBasicList()
{
initForNewTest("Base\nListItem\nListItem2: The quick brown fox jums over the lazy dog.\nNormal\nNormal");
KoParagraphStyle style;
QTextBlock block = m_doc->begin();
style.applyStyle(block);
block = block.next();
QVERIFY(block.isValid());
KoListStyle listStyle;
KoListLevelProperties level1;
level1.setStyle(KoListStyle::Bullet);
listStyle.setLevelProperties(level1);
style.setListStyle(&listStyle);
style.applyStyle(block); // make this a listStyle
QVERIFY(block.textList());
QCOMPARE(block.textList()->format().intProperty(QTextListFormat::ListStyle), (int) KoListStyle::Bullet);
block = block.next();
QVERIFY(block.isValid());
style.applyStyle(block); // make this a listStyle
m_layout->layout();
QTextLayout *blockLayout = m_block.layout();
QCOMPARE(blockLayout->lineAt(0).x(), 0.0);
block = m_doc->begin().next();
QVERIFY(block.isValid());
blockLayout = block.layout(); // parag 2
KoTextBlockData *data = dynamic_cast<KoTextBlockData *>(block.userData());
QVERIFY(data);
qreal counterSpacing = data->counterSpacing();
QVERIFY(counterSpacing > 0.);
// 12 is hardcoded to be the width of a discitem (taken from the default font):
QCOMPARE(blockLayout->lineAt(0).x(), 12.0 + counterSpacing);
block = block.next();
QVERIFY(block.isValid());
blockLayout = block.layout(); // parag 3
QCOMPARE(blockLayout->lineAt(0).x(), 12.0 + counterSpacing);
QVERIFY(blockLayout->lineCount() > 1);
QCOMPARE(blockLayout->lineAt(1).x(), 12.0 + counterSpacing); // make sure not only the first line is indented
block = block.next();
QVERIFY(block.isValid());
blockLayout = block.layout(); // parag 4
QCOMPARE(blockLayout->lineAt(0).x(), 0.0);
}
示例5: testApplyParagraphStyle
void TestStyles::testApplyParagraphStyle()
{
KoParagraphStyle style;
style.setStyleId(1001);
QTextBlockFormat format;
QCOMPARE(format.properties().count(), 0);
style.applyStyle(format);
QCOMPARE(format.properties().count(), 2); // the styleId and nextStyleId
QCOMPARE(format.property(KoParagraphStyle::StyleId).toInt(), 1001);
QCOMPARE(format.property(KoParagraphStyle::NextStyle).toInt(), 1001);
style.setName("name");
style.setAlignment(Qt::AlignRight);
style.applyStyle(format);
QCOMPARE(format.properties().count(), 3);
QCOMPARE(format.alignment(), Qt::AlignRight);
}
示例6: processUpdates
void ChangeFollower::processUpdates(const QList<int> &changedStyles)
{
KoStyleManager *sm = m_styleManager.data();
if (!sm) {
// since the stylemanager would be the one calling this method, I doubt this
// will ever happen. But better safe than sorry..
deleteLater();
return;
}
// optimization strategy; store the formatid of the formats we checked into
// a qset for 'hits' and 'ignores' and avoid the copying of the format
// (fragment.charFormat() / block.blockFormat()) when the formatId is
// already checked previosly
QTextCursor cursor(m_document);
QTextBlock block = cursor.block();
while (block.isValid()) {
QTextBlockFormat bf = block.blockFormat();
int id = bf.intProperty(KoParagraphStyle::StyleId);
if (id > 0 && changedStyles.contains(id)) {
cursor.setPosition(block.position());
KoParagraphStyle *style = sm->paragraphStyle(id);
Q_ASSERT(style);
style->applyStyle(bf);
cursor.setBlockFormat(bf);
}
QTextCharFormat cf = block.charFormat();
id = cf.intProperty(KoCharacterStyle::StyleId);
if (id > 0 && changedStyles.contains(id)) {
KoCharacterStyle *style = sm->characterStyle(id);
Q_ASSERT(style);
style->applyStyle(block);
}
QTextBlock::iterator iter = block.begin();
while (! iter.atEnd()) {
QTextFragment fragment = iter.fragment();
cf = fragment.charFormat();
id = cf.intProperty(KoCharacterStyle::StyleId);
if (id > 0 && changedStyles.contains(id)) {
// create selection
cursor.setPosition(fragment.position());
cursor.setPosition(fragment.position() + fragment.length(), QTextCursor::KeepAnchor);
KoCharacterStyle *style = sm->characterStyle(id);
Q_ASSERT(style);
style->applyStyle(cf);
cursor.mergeCharFormat(cf);
}
iter++;
}
block = block.next();
}
}
示例7: loadOdf
bool KPrPlaceholderTextStrategy::loadOdf( const KoXmlElement & element, KoShapeLoadingContext & context )
{
if (KoTextSharedLoadingData *textSharedData = dynamic_cast<KoTextSharedLoadingData *>(context.sharedData(KOTEXT_SHARED_LOADING_ID))) {
KoShapeFactoryBase *factory = KoShapeRegistry::instance()->value("TextShapeID");
Q_ASSERT(factory);
delete m_textShape;
m_textShape = factory->createDefaultShape(context.documentResourceManager());
KoTextShapeData *shapeData = qobject_cast<KoTextShapeData*>(m_textShape->userData());
shapeData->document()->setUndoRedoEnabled(false);
QTextDocument *document = shapeData->document();
QTextCursor cursor(document);
QTextBlock block = cursor.block();
const QString styleName = element.attributeNS(KoXmlNS::presentation, "style-name");
if (!styleName.isEmpty()) {
const KoXmlElement *style = context.odfLoadingContext().stylesReader().findStyle(styleName, "presentation", context.odfLoadingContext().useStylesAutoStyles());
if (style) {
KoParagraphStyle paragraphStyle;
paragraphStyle.loadOdf(style, context);
paragraphStyle.applyStyle(block, false); // TODO t.zachmann is the false correct?
}
}
const QString textStyleName = element.attributeNS(KoXmlNS::draw, "text-style-name");
if (!textStyleName.isEmpty()) {
KoParagraphStyle *style = textSharedData->paragraphStyle(textStyleName, context.odfLoadingContext().useStylesAutoStyles());
if (style) {
style->applyStyle(block, false); // TODO t.zachmann is the false correct?
}
}
cursor.insertText(text());
shapeData->setDirty();
shapeData->document()->setUndoRedoEnabled(true);
}
return true;
}
示例8: testAddAppliedParagraphStyle
void TestStyleManager::testAddAppliedParagraphStyle()
{
// Create style, apply it, then add it to the manager.
KoParagraphStyle paragraphStyle;
QTextBlock block = m_doc->begin();
paragraphStyle.applyStyle(block);
m_styleManager->beginEdit();
m_styleManager->add(¶graphStyle);
m_styleManager->endEdit();
// Check that style is marked as used.
QVERIFY(m_styleManager->usedParagraphStyles().contains(paragraphStyle.styleId()));
}
示例9: testApplyAddedParagraphStyle
void TestStyleManager::testApplyAddedParagraphStyle()
{
QSignalSpy appliedSignalSpy(m_styleManager, SIGNAL(styleApplied(const KoParagraphStyle*)));
// Create style, add it to the manager, then apply it.
KoParagraphStyle paragraphStyle;
m_styleManager->beginEdit();
m_styleManager->add(¶graphStyle);
m_styleManager->endEdit();
QTextBlock block = m_doc->begin();
paragraphStyle.applyStyle(block);
// Check that style is marked as used and that the correct signal was emitted.
QVERIFY(m_styleManager->usedParagraphStyles().contains(paragraphStyle.styleId()));
QCOMPARE(appliedSignalSpy.count(), 1);
QCOMPARE(appliedSignalSpy.at(0).at(0).value<const KoParagraphStyle *>(), ¶graphStyle);
}
示例10: testNumberedList
void TestDocumentLayout::testNumberedList()
{
initForNewTest("Base\nListItem1\nListItem2\nListItem3\nListItem4\nListItem5\nListItem6\nListItem6\nListItem7\nListItem8\nListItem9\nListItem10\nListItem11\nListItem12\n");
KoParagraphStyle style;
m_styleManager->add(&style);
QTextBlock block = m_doc->begin();
style.applyStyle(block);
block = block.next();
KoListStyle listStyle;
KoListLevelProperties llp;
llp.setStyle(KoListStyle::DecimalItem);
listStyle.setLevelProperties(llp);
style.setListStyle(&listStyle);
QTextList *previous = 0;
int i;
for (i = 1; i <= 9; i++) {
QVERIFY(block.isValid());
// qDebug() << "->" << block.text();
style.applyStyle(block);
QTextList *textList = block.textList();
QVERIFY(textList);
if (previous == 0) {
previous = textList;
} else {
QCOMPARE(textList, previous);
}
QCOMPARE(textList->format().intProperty(QTextListFormat::ListStyle), (int)(KoListStyle::DecimalItem));
block = block.next();
}
m_layout->layout();
QTextLayout *blockLayout = m_block.layout();
QCOMPARE(blockLayout->lineAt(0).x(), 0.0);
QTextBlock blok = m_doc->begin().next();
qreal indent = blok.layout()->lineAt(0).x();
QVERIFY(indent > 0.0);
for (i = 1; i <= 9; ++i) {
// qDebug() << "=>" << blok.text();
QTextList *textList = blok.textList();
QVERIFY(textList);
QCOMPARE(blok.layout()->lineAt(0).x(), indent); // all the same indent.
blok = blok.next();
}
// now make number of listitems be more than 10, so we use 2 digits.
for (i = 9; i <= 12; ++i) {
QVERIFY(block.isValid());
style.applyStyle(block);
// qDebug() << "->" << block.text();
block = block.next();
}
m_layout->layout();
blockLayout = m_block.layout();
QCOMPARE(blockLayout->lineAt(0).x(), 0.0);
blok = m_doc->begin().next();
qreal indent2 = blok.layout()->lineAt(0).x();
QVERIFY(indent2 > indent); // since it takes an extra digit
for (i = 2; i <= 12; ++i) {
// qDebug() << "=>" << blok.text();
QCOMPARE(blok.layout()->lineAt(0).x(), indent2); // all the same indent.
blok = blok.next();
}
// now to make sure the text is actually properly set.
block = m_doc->begin().next();
i = 1;
while (block.isValid() && i < 13) {
KoTextBlockData *data = dynamic_cast<KoTextBlockData *>(block.userData());
QVERIFY(data);
QCOMPARE(data->counterText(), QString::number(i++));
block = block.next();
}
llp.setListItemSuffix(".");
llp.setStartValue(4);
listStyle.setLevelProperties(llp);
QTextCursor cursor(m_doc);
cursor.setPosition(10); // listItem1
QTextBlockFormat format = cursor.blockFormat();
format.setProperty(KoParagraphStyle::ListStartValue, 4);
cursor.setBlockFormat(format);
cursor.setPosition(40); // listItem4
format = cursor.blockFormat();
format.setProperty(KoParagraphStyle::ListStartValue, 12);
cursor.setBlockFormat(format);
// at this point we start numbering at 4. Have 4, 5, 6, 12, 13, 14, 15 etc
m_layout->layout();
// now to make sur the text is actually properly set.
block = m_doc->begin().next();
i = 4;
while (block.isValid() && i < 22) {
if (i == 7) {
//.........这里部分代码省略.........
示例11: testInterruptedLists
void TestDocumentLayout::testInterruptedLists()
{
initForNewTest("ListItem1\nListItem2\nNormal Parag\nAnother parag\nListItem3\n");
// expect that normal paragraphs do not break a list (i.e not restart it)
KoParagraphStyle style;
KoListStyle listStyle;
KoListLevelProperties llp = listStyle.levelProperties(1);
llp.setStyle(KoListStyle::DecimalItem);
llp.setStartValue(1);
llp.setListItemSuffix(".");
listStyle.setLevelProperties(llp);
style.setListStyle(&listStyle);
QTextBlock block = m_doc->begin();
style.applyStyle(block);
block = block.next();
style.applyStyle(block);
block = block.next();
block = block.next();
block = block.next();
style.applyStyle(block);
m_layout->layout();
block = m_doc->begin();
KoTextBlockData *data = dynamic_cast<KoTextBlockData *>(block.userData());
QVERIFY(data);
QVERIFY(data->counterText() == "1.");
block = block.next();
data = dynamic_cast<KoTextBlockData *>(block.userData());
QVERIFY(data);
QVERIFY(data->counterText() == "2.");
block = block.next();
QCOMPARE(block.layout()->lineAt(0).x(), 0.0);
QVERIFY(block.userData() == 0);
block = block.next();
QCOMPARE(block.layout()->lineAt(0).x(), 0.0);
QVERIFY(block.userData() == 0);
block = block.next(); // list item 3
data = dynamic_cast<KoTextBlockData *>(block.userData());
QVERIFY(data);
//qDebug() << data->counterText();
QVERIFY(data->counterText() == "3.");
// I have doubts what consecutiveNumbering should do. Disable the feature for now.
#if 0
// now the other way around
block = m_doc->begin();
listStyle.setConsecutiveNumbering(false);
listStyle.applyStyle(block);
m_layout->layout();
data = dynamic_cast<KoTextBlockData *>(block.userData());
QVERIFY(data);
QVERIFY(data->counterText() == "1.");
block = block.next();
data = dynamic_cast<KoTextBlockData *>(block.userData());
QVERIFY(data);
QVERIFY(data->counterText() == "2.");
block = block.next();
QCOMPARE(block.layout()->lineAt(0).x(), 0.0);
QVERIFY(block.userData() == 0);
block = block.next();
QCOMPARE(block.layout()->lineAt(0).x(), 0.0);
QVERIFY(block.userData() == 0);
block = block.next(); // list item 3
data = dynamic_cast<KoTextBlockData *>(block.userData());
QVERIFY(data);
qDebug() << data->counterText();
QVERIFY(data->counterText() == "1.");
#endif
}
示例12: initTest
void TestTableLayout::initTest(int rows, int columns,
KoTableStyle *tableStyle,
const QList<KoTableColumnStyle *> &columnStyles,
const QList<KoTableRowStyle *> &rowStyles,
const QMap<QPair<int, int>, KoTableCellStyle *> &cellStyles,
const QMap<QPair<int, int>, QString> &cellTexts)
{
// Mock shape of size 200x1000 pt.
m_shape = new MockTextShape();
Q_ASSERT(m_shape);
m_shape->setSize(QSizeF(200, 1000));
// Document layout.
m_layout = m_shape->layout;
Q_ASSERT(m_layout);
// Document.
m_doc = m_layout->document();
Q_ASSERT(m_doc);
m_doc->setDefaultFont(QFont("Sans Serif", 12, QFont::Normal, false));
// Layout state (layout helper).
m_textLayout = new Layout(m_layout);
Q_ASSERT(m_textLayout);
m_layout->setLayout(m_textLayout);
// Style manager.
m_styleManager = new KoStyleManager();
Q_ASSERT(m_styleManager);
KoTextDocument(m_doc).setStyleManager(m_styleManager);
// Table style.
m_defaultTableStyle = new KoTableStyle();
Q_ASSERT(m_defaultTableStyle);
m_defaultTableStyle->setMargin(0.0);
m_defaultTableStyle->setWidth(QTextLength(QTextLength::FixedLength, 200));
QTextTableFormat tableFormat;
if (tableStyle) {
tableStyle->applyStyle(tableFormat);
} else {
m_defaultTableStyle->applyStyle(tableFormat);
}
// Table.
QTextCursor cursor(m_doc);
m_table = cursor.insertTable(rows, columns, tableFormat);
Q_ASSERT(m_table);
// Column and row style manager.
m_tableColumnAndRowStyleManager = KoTableColumnAndRowStyleManager::getManager(m_table);
// Column styles.
m_defaultColumnStyle.setRelativeColumnWidth(50.0);
for (int col = 0; col < columns; ++col) {
if (columnStyles.value(col)) {
m_tableColumnAndRowStyleManager.setColumnStyle(col, *(columnStyles.at(col)));
} else {
m_tableColumnAndRowStyleManager.setColumnStyle(col, m_defaultColumnStyle);
}
}
// Row styles.
for (int row = 0; row < rows; ++row) {
if (rowStyles.value(row)) {
m_tableColumnAndRowStyleManager.setRowStyle(row, *(rowStyles.at(row)));
} else {
m_tableColumnAndRowStyleManager.setRowStyle(row, m_defaultRowStyle);
}
}
// Cell styles and texts.
m_defaultCellStyle = new KoTableCellStyle();
Q_ASSERT(m_defaultCellStyle);
for (int row = 0; row < m_table->rows(); ++row) {
for (int col = 0; col < m_table->columns(); ++col) {
// Style.
QTextTableCell cell = m_table->cellAt(row, col);
QTextTableCellFormat cellFormat = cell.format().toTableCellFormat();
if (cellStyles.contains(qMakePair(row, col))) {
cellStyles.value(qMakePair(row, col))->applyStyle(cellFormat);
cell.setFormat(cellFormat.toCharFormat());
} else {
m_defaultCellStyle->applyStyle(cellFormat);
}
cell.setFormat(cellFormat.toCharFormat());
// Text.
if (cellTexts.contains(qMakePair(row, col))) {
cell.firstCursorPosition().insertText(cellTexts.value(qMakePair(row, col)));
}
}
}
KoParagraphStyle style;
style.setStyleId(101); // needed to do manually since we don't use the stylemanager
QTextBlock b2 = m_doc->begin();
while (b2.isValid()) {
style.applyStyle(b2);
b2 = b2.next();
}
}
示例13: setupTest
void TestTableLayout::setupTest(const QString &mergedText, const QString &topRightText, const QString &midRightText, const QString &bottomLeftText, const QString &bottomMidText, const QString &bottomRightText, KoTableStyle* tableStyle)
{
QTextCursor cursor = setupTest();
KoParagraphStyle style;
style.setStyleId(101); // needed to do manually since we don't use the stylemanager
style.applyStyle(m_block);
QTextTableFormat tableFormat;
if (tableStyle)
tableStyle->applyStyle(tableFormat);
m_table = cursor.insertTable(3,3,tableFormat);
m_table->mergeCells(0,0,2,2);
if (mergedText.length() > 0) {
m_table->cellAt(0,0).firstCursorPosition().insertText(mergedText);
QTextBlock b2 = m_table->cellAt(0,0).firstCursorPosition().block();
while (b2.isValid()) {
style.applyStyle(b2);
b2 = b2.next();
}
}
if (topRightText.length() > 0) {
m_table->cellAt(0,2).firstCursorPosition().insertText(topRightText);
QTextBlock b2 = m_table->cellAt(0,2).firstCursorPosition().block();
while (b2.isValid()) {
style.applyStyle(b2);
b2 = b2.next();
}
}
if (midRightText.length() > 0) {
m_table->cellAt(1,2).firstCursorPosition().insertText(midRightText);
QTextBlock b2 = m_table->cellAt(1,2).firstCursorPosition().block();
while (b2.isValid()) {
style.applyStyle(b2);
b2 = b2.next();
}
}
if (bottomLeftText.length() > 0) {
m_table->cellAt(2,0).firstCursorPosition().insertText(bottomLeftText);
QTextBlock b2 = m_table->cellAt(2,0).firstCursorPosition().block();
while (b2.isValid()) {
style.applyStyle(b2);
b2 = b2.next();
}
}
if (bottomMidText.length() > 0) {
m_table->cellAt(2,1).firstCursorPosition().insertText(bottomMidText);
QTextBlock b2 = m_table->cellAt(2,1).firstCursorPosition().block();
while (b2.isValid()) {
style.applyStyle(b2);
b2 = b2.next();
}
}
if (bottomRightText.length() > 0) {
m_table->cellAt(2,2).firstCursorPosition().insertText(bottomRightText);
QTextBlock b2 = m_table->cellAt(2,2).firstCursorPosition().block();
while (b2.isValid()) {
style.applyStyle(b2);
b2 = b2.next();
}
}
}