本文整理汇总了C++中KoListLevelProperties类的典型用法代码示例。如果您正苦于以下问题:C++ KoListLevelProperties类的具体用法?C++ KoListLevelProperties怎么用?C++ KoListLevelProperties使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了KoListLevelProperties类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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;
}
示例2: initForNewTest
void TestDocumentLayout::testRightToLeftList()
{
initForNewTest("a\nb\nc");
KoParagraphStyle h1;
h1.setTextProgressionDirection(KoText::RightLeftTopBottom);
m_styleManager->add(&h1);
KoListStyle listStyle;
KoListLevelProperties llp = listStyle.levelProperties(1);
llp.setStyle(KoListStyle::DecimalItem);
listStyle.setLevelProperties(llp);
h1.setListStyle(&listStyle);
QTextBlock block = m_doc->begin();
h1.applyStyle(block);
block = block.next();
h1.applyStyle(block);
block = block.next();
h1.applyStyle(block);
block = block.next();
m_layout->layout();
block = m_doc->begin();
while (block.isValid()) {
KoTextBlockData *data = dynamic_cast<KoTextBlockData *>(block.userData());
QVERIFY(data);
QVERIFY(data->counterWidth() > 2);
QVERIFY(data->counterPosition().x() > 100);
QTextLine line = block.layout()->lineAt(0);
QVERIFY(line.isValid());
QCOMPARE(line.x(), (qreal)0);
QCOMPARE(line.width() + data->counterWidth() + data->counterSpacing(), (qreal)200);
block = block.next();
}
}
示例3: textShape
void SimpleParagraphWidget::fillListButtons()
{
KoZoomHandler zoomHandler;
zoomHandler.setZoom(1.2);
zoomHandler.setDpi(72, 72);
KoInlineTextObjectManager itom;
KoTextRangeManager tlm;
TextShape textShape(&itom, &tlm);
textShape.setSize(QSizeF(300, 100));
QTextCursor cursor (textShape.textShapeData()->document());
foreach(const Lists::ListStyleItem &item, Lists::genericListStyleItems()) {
QPixmap pm(48,48);
pm.fill(Qt::transparent);
QPainter p(&pm);
p.translate(0, -1.5);
p.setRenderHint(QPainter::Antialiasing);
if(item.style != KoListStyle::None) {
KoListStyle listStyle;
KoListLevelProperties llp = listStyle.levelProperties(1);
llp.setStyle(item.style);
if (KoListStyle::isNumberingStyle(item.style)) {
llp.setStartValue(1);
llp.setListItemSuffix(".");
}
listStyle.setLevelProperties(llp);
cursor.select(QTextCursor::Document);
QTextCharFormat textCharFormat=cursor.blockCharFormat();
textCharFormat.setFontPointSize(11);
textCharFormat.setFontWeight(QFont::Normal);
cursor.setCharFormat(textCharFormat);
QTextBlock cursorBlock = cursor.block();
KoTextBlockData data(cursorBlock);
cursor.insertText("----");
listStyle.applyStyle(cursor.block(),1);
cursorBlock = cursor.block();
KoTextBlockData data1(cursorBlock);
cursor.insertText("\n----");
cursorBlock = cursor.block();
KoTextBlockData data2(cursorBlock);
cursor.insertText("\n----");
cursorBlock = cursor.block();
KoTextBlockData data3(cursorBlock);
KoTextDocumentLayout *lay = dynamic_cast<KoTextDocumentLayout*>(textShape.textShapeData()->document()->documentLayout());
if(lay)
lay->layout();
KoShapePaintingContext paintContext; //FIXME
textShape.paintComponent(p, zoomHandler, paintContext);
widget.bulletListButton->addItem(pm, static_cast<int> (item.style));
}
}
示例4: fromTextList
// static
KoListLevelProperties KoListLevelProperties::fromTextList(QTextList *list)
{
KoListLevelProperties llp;
if (!list) {
llp.setStyle(KoListStyle::None);
return llp;
}
llp.d->stylesPrivate = list->format().properties();
return llp;
}
示例5: finalizer
void ChangeListLevelCommand::redo()
{
if (!m_first) {
KoTextCommandBase::redo();
UndoRedoFinalizer finalizer(this);
for (int i = 0; i < m_blocks.size(); ++i) {
m_lists.value(i)->updateStoredList(m_blocks.at(i));
QTextBlock currentBlock(m_blocks.at(i));
KoTextBlockData userData(currentBlock);
userData.setCounterWidth(-1.0);
}
}
else {
for (int i = 0; i < m_blocks.size() && m_lists.value(i); ++i) {
if (!m_lists.value(i)->style()->hasLevelProperties(m_levels.value(i))) {
KoListLevelProperties llp = m_lists.value(i)->style()->levelProperties(m_levels.value(i));
if (llp.alignmentMode() == false) {
//old list mode, see KoListLevelProperties::alignmentMode() documentation
llp.setIndent((m_levels.value(i)-1) * 20); //TODO make this configurable
} else {
llp.setTabStopPosition(MARGIN_DEFAULT*(m_levels.value(i)+1));
llp.setMargin(MARGIN_DEFAULT*(m_levels.value(i)+1));
llp.setTextIndent(- MARGIN_DEFAULT);
}
llp.setDisplayLevel(llp.displayLevel() + m_coefficient);
llp.setLevel(m_levels.value(i));
m_lists.value(i)->style()->setLevelProperties(llp);
}
m_lists.value(i)->add(m_blocks.at(i), m_levels.value(i));
}
}
m_first = false;
}
示例6: TextCommandBase
ChangeListCommand::ChangeListCommand(const QTextCursor &cursor, KoListStyle::Style style, int level,
ChangeFlags flags, QUndoCommand *parent)
: TextCommandBase(parent),
m_flags(flags),
m_first(true)
{
const bool styleCompletelySetAlready = extractTextBlocks(cursor, level, style);
QSet<int> levels = m_levels.values().toSet();
KoListStyle listStyle;
// If the style is already completely set, we unset it instead
if (styleCompletelySetAlready)
style = KoListStyle::None;
foreach (int lev, levels) {
KoListLevelProperties llp;
llp.setLevel(lev);
llp.setStyle(style);
if (KoListStyle::isNumberingStyle(style)) {
llp.setStartValue(1);
llp.setListItemSuffix(".");
}
if (lev > 1)
llp.setIndent((lev-1) * 20); // make this configurable
listStyle.setLevelProperties(llp);
}
示例7: setDisplay
void ParagraphBulletsNumbers::setDisplay(KoParagraphStyle *style, int level)
{
KoListStyle *listStyle = style->listStyle();
widget.listPropertiesPane->setEnabled(listStyle != 0);
widget.customCharacter->setText("-");
if (listStyle == 0) {
widget.listTypes->setCurrentRow(0);
return;
}
KoListLevelProperties llp = listStyle->levelProperties(level);
m_previousLevel = llp.level();
widget.prefix->setText(llp.listItemPrefix());
widget.suffix->setText(llp.listItemSuffix());
widget.letterSynchronization->setChecked(llp.letterSynchronization());
KoListStyle::Style s = llp.style();
foreach(int row, m_mapping.keys()) {
if (m_mapping[row] == s) {
widget.listTypes->setCurrentRow(row);
break;
}
}
int align;
if (llp.alignment() == (Qt::AlignLeft | Qt::AlignAbsolute))
align = 1;
else if (llp.alignment() == (Qt::AlignRight | Qt::AlignAbsolute))
align = 2;
else if (llp.alignment() == Qt::AlignCenter)
align = 3;
else
align = 0;
widget.alignment->setCurrentIndex(align);
widget.depth->setValue(llp.level());
widget.levels->setValue(llp.displayLevel());
widget.startValue->setValue(llp.startValue());
if (s == KoListStyle::CustomCharItem)
widget.customCharacter->setText(llp.bulletCharacter());
if (s == KoListStyle::ImageItem) {
m_data = llp.bulletImage();
widget.imageHeight->setValue(llp.height());
widget.imageWidth->setValue(llp.width());
} else {
m_data = 0;
widget.imageHeight->setValue(0);
widget.imageWidth->setValue(0);
}
if(llp.alignmentMode()==false) {//for list-level-position-and-space-mode=label-width-and-position disable the following options
widget.label_8->setEnabled(false);
widget.label_9->setEnabled(false);
widget.label_10->setEnabled(false);
widget.label_11->setEnabled(false);
widget.labelFollowedBy->setEnabled(false);
widget.doubleSpinBox->setEnabled(false);
widget.doubleSpinBox_2->setEnabled(false);
widget.doubleSpinBox_3->setEnabled(false);
} else {
m_alignmentMode=true;
switch(llp.labelFollowedBy()) {
case KoListStyle::ListTab:
widget.doubleSpinBox->setEnabled(true);
widget.labelFollowedBy->setCurrentIndex(0);
widget.doubleSpinBox->setValue(KoUnit::toCentimeter(llp.tabStopPosition()));
break;
case KoListStyle::Space:
widget.doubleSpinBox->setEnabled(false);
widget.labelFollowedBy->setCurrentIndex(1);
break;
case KoListStyle::Nothing:
widget.doubleSpinBox->setEnabled(false);
widget.labelFollowedBy->setCurrentIndex(2);
break;
default:
Q_ASSERT(false);
}
widget.doubleSpinBox_2->setValue(KoUnit::toCentimeter(llp.margin()));
widget.doubleSpinBox_3->setValue(KoUnit::toCentimeter(llp.margin())+KoUnit::toCentimeter(llp.textIndent()));
}
// *** features not in GUI;
// character style
// relative bullet size (percent)
// minimum label width
recalcPreview();
}
示例8: Q_ASSERT
void ParagraphBulletsNumbers::save(KoParagraphStyle *savingStyle)
{
Q_ASSERT(savingStyle);
KoUnit unit(KoUnit::Centimeter);
const int currentRow = widget.listTypes->currentRow();
KoListStyle::Style style = m_mapping[currentRow];
if (style == KoListStyle::None) {
savingStyle->setListStyle(0);
return;
}
if (savingStyle->listStyle() == 0) {
KoListStyle *listStyle = new KoListStyle(savingStyle);
savingStyle->setListStyle(listStyle);
}
KoListStyle *listStyle = savingStyle->listStyle();
KoListLevelProperties llp = listStyle->levelProperties(widget.depth->value());
llp.setStyle(style);
llp.setLevel(widget.depth->value());
llp.setDisplayLevel(widget.levels->value());
llp.setStartValue(widget.startValue->value());
llp.setListItemPrefix(widget.prefix->text());
llp.setListItemSuffix(widget.suffix->text());
llp.setLetterSynchronization(widget.letterSynchronization->isVisible() && widget.letterSynchronization->isChecked());
if(m_alignmentMode==true) {
llp.setAlignmentMode(true);
switch(widget.labelFollowedBy->currentIndex()) {
case 0: llp.setLabelFollowedBy(KoListStyle::ListTab);
llp.setTabStopPosition(unit.fromUserValue(widget.doubleSpinBox->value()));
break;
case 1: llp.setLabelFollowedBy(KoListStyle::Space);
break;
case 2: llp.setLabelFollowedBy(KoListStyle::Nothing);
break;
default:
Q_ASSERT(false);
}
llp.setMargin(unit.fromUserValue(widget.doubleSpinBox_2->value()));
llp.setTextIndent(unit.fromUserValue(widget.doubleSpinBox_3->value())-unit.fromUserValue(widget.doubleSpinBox_2->value()));
}
if (style == KoListStyle::ImageItem) {
if (m_data) {
llp.setBulletImage(m_data);
}
llp.setWidth(widget.imageWidth->value());
llp.setHeight(widget.imageHeight->value());
} else if (style == KoListStyle::CustomCharItem) {
llp.setBulletCharacter((currentRow == m_blankCharIndex) ? QChar() : widget.customCharacter->text().remove('&').at(0));
}
// it is important to not use 45 for CustomCharItem as it is also char based
else if (!KoListStyle::isNumberingStyle(style)) {
llp.setRelativeBulletSize(45); //for non-numbering bullets the default relative bullet size is 45%(The spec does not say it; we take it)
}
Qt::Alignment align;
switch (widget.alignment->currentIndex()) {
case 0: align = Qt::AlignLeft; break;
case 1: align = Qt::AlignLeft | Qt::AlignAbsolute; break;
case 2: align = Qt::AlignRight | Qt::AlignAbsolute; break;
case 3: align = Qt::AlignCenter; break;
default:
Q_ASSERT(false);
}
llp.setAlignment(align);
if (llp.level() != m_previousLevel)
listStyle->removeLevelProperties(m_previousLevel);
listStyle->setLevelProperties(llp);
}