本文整理汇总了C++中QTextListFormat::style方法的典型用法代码示例。如果您正苦于以下问题:C++ QTextListFormat::style方法的具体用法?C++ QTextListFormat::style怎么用?C++ QTextListFormat::style使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QTextListFormat
的用法示例。
在下文中一共展示了QTextListFormat::style方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: writeListFormat
void QTextOdfWriter::writeListFormat(QXmlStreamWriter &writer, QTextListFormat format, int formatIndex) const
{
writer.writeStartElement(textNS, QString::fromLatin1("list-style"));
writer.writeAttribute(styleNS, QString::fromLatin1("name"), QString::fromLatin1("L%1").arg(formatIndex));
QTextListFormat::Style style = format.style();
if (style == QTextListFormat::ListDecimal || style == QTextListFormat::ListLowerAlpha
|| style == QTextListFormat::ListUpperAlpha) {
writer.writeStartElement(textNS, QString::fromLatin1("list-level-style-number"));
writer.writeAttribute(styleNS, QString::fromLatin1("num-format"), bulletChar(style));
writer.writeAttribute(styleNS, QString::fromLatin1("num-suffix"), QString::fromLatin1("."));
} else {
writer.writeStartElement(textNS, QString::fromLatin1("list-level-style-bullet"));
writer.writeAttribute(textNS, QString::fromLatin1("bullet-char"), bulletChar(style));
}
writer.writeAttribute(textNS, QString::fromLatin1("level"), QString::number(format.indent()));
writer.writeEmptyElement(styleNS, QString::fromLatin1("list-level-properties"));
writer.writeAttribute(foNS, QString::fromLatin1("text-align"), QString::fromLatin1("start"));
QString spacing = QString::fromLatin1("%1mm").arg(format.indent() * 8);
writer.writeAttribute(textNS, QString::fromLatin1("space-before"), spacing);
//writer.writeAttribute(textNS, QString::fromLatin1("min-label-width"), spacing);
writer.writeEndElement(); // list-level-style-*
writer.writeEndElement(); // list-style
}
示例2: slotCursorPositionChanged
void MRichTextEdit::slotCursorPositionChanged()
{
QTextList *pTextList = f_textedit->textCursor().currentList();
if (m_lastBlockList && (pTextList == m_lastBlockList || (pTextList != 0 && m_lastBlockList != 0
&& pTextList->format().style() == m_lastBlockList->format().style())))
{
return;
}
m_lastBlockList = pTextList;
if (pTextList)
{
QTextListFormat lfmt = pTextList->format();
if (lfmt.style() == QTextListFormat::ListDisc)
{
f_list_bullet->setChecked(true);
f_list_ordered->setChecked(false);
}
else if (lfmt.style() == QTextListFormat::ListDecimal)
{
f_list_bullet->setChecked(false);
f_list_ordered->setChecked(true);
}
else
{
f_list_bullet->setChecked(false);
f_list_ordered->setChecked(false);
}
}
else
{
f_list_bullet->setChecked(false);
f_list_ordered->setChecked(false);
}
}
示例3: listType
Constants::ListType StyleUtil::listType(const QTextListFormat &format)
{
switch(format.style()) {
case QTextListFormat::ListDisc:
case QTextListFormat::ListCircle:
case QTextListFormat::ListSquare:
return Constants::BulletList;
case QTextListFormat::ListDecimal:
case QTextListFormat::ListLowerAlpha:
case QTextListFormat::ListLowerRoman:
case QTextListFormat::ListUpperAlpha:
case QTextListFormat::ListUpperRoman:
return Constants::NumberedList;
default:
return Constants::UndefinedListType;
}
}
示例4: addTextBlock
void QQuickTextNodeEngine::addTextBlock(QTextDocument *textDocument, const QTextBlock &block, const QPointF &position, const QColor &textColor, const QColor &anchorColor, int selectionStart, int selectionEnd)
{
Q_ASSERT(textDocument);
#ifndef QT_NO_IM
int preeditLength = block.isValid() ? block.layout()->preeditAreaText().length() : 0;
int preeditPosition = block.isValid() ? block.layout()->preeditAreaPosition() : -1;
#endif
QVarLengthArray<QTextLayout::FormatRange> colorChanges;
mergeFormats(block.layout(), &colorChanges);
QPointF blockPosition = textDocument->documentLayout()->blockBoundingRect(block).topLeft() + position;
if (QTextList *textList = block.textList()) {
QPointF pos = blockPosition;
QTextLayout *layout = block.layout();
if (layout->lineCount() > 0) {
QTextLine firstLine = layout->lineAt(0);
Q_ASSERT(firstLine.isValid());
setCurrentLine(firstLine);
QRectF textRect = firstLine.naturalTextRect();
pos += textRect.topLeft();
if (block.textDirection() == Qt::RightToLeft)
pos.rx() += textRect.width();
const QTextCharFormat charFormat = block.charFormat();
QFont font(charFormat.font());
QFontMetricsF fontMetrics(font);
QTextListFormat listFormat = textList->format();
QString listItemBullet;
switch (listFormat.style()) {
case QTextListFormat::ListCircle:
listItemBullet = QChar(0x25E6); // White bullet
break;
case QTextListFormat::ListSquare:
listItemBullet = QChar(0x25AA); // Black small square
break;
case QTextListFormat::ListDecimal:
case QTextListFormat::ListLowerAlpha:
case QTextListFormat::ListUpperAlpha:
case QTextListFormat::ListLowerRoman:
case QTextListFormat::ListUpperRoman:
listItemBullet = textList->itemText(block);
break;
default:
listItemBullet = QChar(0x2022); // Black bullet
break;
};
QSizeF size(fontMetrics.width(listItemBullet), fontMetrics.height());
qreal xoff = fontMetrics.width(QLatin1Char(' '));
if (block.textDirection() == Qt::LeftToRight)
xoff = -xoff - size.width();
setPosition(pos + QPointF(xoff, 0));
QTextLayout layout;
layout.setFont(font);
layout.setText(listItemBullet); // Bullet
layout.beginLayout();
QTextLine line = layout.createLine();
line.setPosition(QPointF(0, 0));
layout.endLayout();
QList<QGlyphRun> glyphRuns = layout.glyphRuns();
for (int i=0; i<glyphRuns.size(); ++i)
addUnselectedGlyphs(glyphRuns.at(i));
}
}
int textPos = block.position();
QTextBlock::iterator blockIterator = block.begin();
while (!blockIterator.atEnd()) {
QTextFragment fragment = blockIterator.fragment();
QString text = fragment.text();
if (text.isEmpty())
continue;
QTextCharFormat charFormat = fragment.charFormat();
QFont font(charFormat.font());
QFontMetricsF fontMetrics(font);
int fontHeight = fontMetrics.descent() + fontMetrics.ascent();
int valign = charFormat.verticalAlignment();
if (valign == QTextCharFormat::AlignSuperScript)
setPosition(QPointF(blockPosition.x(), blockPosition.y() - fontHeight / 2));
else if (valign == QTextCharFormat::AlignSubScript)
setPosition(QPointF(blockPosition.x(), blockPosition.y() + fontHeight / 6));
else
setPosition(blockPosition);
if (text.contains(QChar::ObjectReplacementCharacter)) {
QTextFrame *frame = qobject_cast<QTextFrame *>(textDocument->objectForFormat(charFormat));
if (frame && frame->frameFormat().position() == QTextFrameFormat::InFlow) {
int blockRelativePosition = textPos - block.position();
QTextLine line = block.layout()->lineForTextPosition(blockRelativePosition);
if (!currentLine().isValid()
|| line.lineNumber() != currentLine().lineNumber()) {
//.........这里部分代码省略.........
示例5: frameToString
QString Format::frameToString( QTextFrame *frame )
{
QString out;
QTextFrame::iterator it;
for( it = frame->begin(); it != frame->end(); ++it ) {
QTextBlock block = it.currentBlock();
if ( block.isValid() ) {
out += "<block";
QTextCursor c( block );
QDateTime dt = TextFormats::lastModified( c );
if ( dt.isValid() ) {
out += " lastmodified=\"" + dt.toString( Qt::ISODate ) + "\"";
}
if ( TextFormats::isTitle( c ) ) {
out += " titlestyle=\"title\"";
} else if ( TextFormats::isSubTitle( c ) ) {
out += " titlestyle=\"subtitle\"";
}
QTextBlockFormat blockFormat = block.blockFormat();
if ( blockFormat.isValid() ) {
QTextList *list = block.textList();
if ( list ) {
QTextListFormat f = list->format();
out += " liststyle=\"";
switch( f.style() ) {
default:
case QTextListFormat::ListDisc:
out += "disc";
break;
case QTextListFormat::ListDecimal:
out += "decimal";
break;
}
out += "\"";
out += " listindent=\"" + QString::number( f.indent() ) + "\"";
} else {
if ( blockFormat.indent() != 0 ) {
out += " blockindent=\"" + QString::number( blockFormat.indent() ) +
"\"";
}
}
}
out += ">\n";
QTextBlock::iterator it2;
for( it2 = block.begin(); it2 != block.end(); ++it2 ) {
QTextFragment fragment = it2.fragment();
if ( !fragment.isValid() ) continue;
QString text = fragment.text();
QString outText;
for( int i = 0; i < text.size(); ++i ) {
if ( text.at( i ) == 0xfffc ) {
outText += "<todo status=\"";
QTextImageFormat imageFormat = fragment.charFormat().toImageFormat();
if ( imageFormat.isValid() ) {
if ( imageFormat.name().contains( "done" ) ) outText += "done";
else outText += "todo";
} else {
dbg() << "NO IMAGE FORMAT" << endl;
}
outText += "\"/>";
} else {
outText += escape( QString( text.at( i ) ) );
}
}
out += " <fragment";
QTextCharFormat format = fragment.charFormat();
if ( !format.anchorHref().isEmpty() ) {
out += " link=\"" + escape( format.anchorHref() ) + "\"";
}
if ( format.fontWeight() == QFont::Bold ) {
out += " bold=\"true\"";
}
if ( format.fontItalic() ) {
out += " italic=\"true\"";
}
if ( format.hasProperty( QTextFormat::FontPointSize ) &&
format.fontPointSize() != 10 ) {
out += " fontsize=\"" + QString::number( format.fontPointSize() ) +
"\"";
}
if ( outText.trimmed().isEmpty() ) outText.replace( " ", "[FIXME:space]" );
out += ">" + outText + "</fragment>\n";
}
//.........这里部分代码省略.........
示例6: fontChanged
void MRichTextEdit::fontChanged(const QFont &f)
{
f_fontsize->setCurrentIndex(f_fontsize->findText(QString::number(f.pointSize())));
f_bold->setChecked(f.bold());
f_italic->setChecked(f.italic());
f_underline->setChecked(f.underline());
f_strikeout->setChecked(f.strikeOut());
if (f.pointSize() == m_fontsize_h1)
{
f_paragraph->setCurrentIndex(ParagraphHeading1);
}
else if (f.pointSize() == m_fontsize_h2)
{
f_paragraph->setCurrentIndex(ParagraphHeading2);
}
else if (f.pointSize() == m_fontsize_h3)
{
f_paragraph->setCurrentIndex(ParagraphHeading3);
}
else if (f.pointSize() == m_fontsize_h4)
{
f_paragraph->setCurrentIndex(ParagraphHeading4);
}
else
{
if (f.fixedPitch() && f.family() == "Monospace")
{
f_paragraph->setCurrentIndex(ParagraphMonospace);
}
else
{
f_paragraph->setCurrentIndex(ParagraphStandard);
}
}
if (f_textedit->textCursor().currentList())
{
QTextListFormat lfmt = f_textedit->textCursor().currentList()->format();
if (lfmt.style() == QTextListFormat::ListDisc)
{
f_list_bullet->setChecked(true);
f_list_ordered->setChecked(false);
}
else if (lfmt.style() == QTextListFormat::ListDecimal)
{
f_list_bullet->setChecked(false);
f_list_ordered->setChecked(true);
}
else
{
f_list_bullet->setChecked(false);
f_list_ordered->setChecked(false);
}
}
else
{
f_list_bullet->setChecked(false);
f_list_ordered->setChecked(false);
}
}
示例7: emitBlock
void HtmlExporter::emitBlock( const QTextBlock &block )
{
// save and later restore, in case we 'change' the default format by
// emitting block char format information
// NOTE the bottom line is commented, to use default charFormat, which can be set from outside.
//QTextCharFormat oldDefaultCharFormat = defaultCharFormat;
QString blockTag;
bool isBlockQuote = false;
const QTextBlockFormat blockFormat = block.blockFormat();
if ( blockFormat.hasProperty( BilboTextFormat::IsBlockQuote ) &&
blockFormat.boolProperty( BilboTextFormat::IsBlockQuote ) ) {
isBlockQuote = true;
}
QTextList *list = block.textList();
if ( list ) {
if ( list->itemNumber( block ) == 0 ) { // first item? emit <ul> or appropriate
// qDebug() << "first item" << endl;
if ( isBlockQuote ) {
html += QLatin1String( "<blockquote>" );
}
const QTextListFormat format = list->format();
const int style = format.style();
switch ( style ) {
case QTextListFormat::ListDecimal:
html += QLatin1String( "<ol" );
break;
case QTextListFormat::ListDisc:
html += QLatin1String( "<ul" );
break;
case QTextListFormat::ListCircle:
html += QLatin1String( "<ul type=\"circle\"" );
break;
case QTextListFormat::ListSquare:
html += QLatin1String( "<ul type=\"square\"" );
break;
case QTextListFormat::ListLowerAlpha:
html += QLatin1String( "<ol type=\"a\"" );
break;
case QTextListFormat::ListUpperAlpha:
html += QLatin1String( "<ol type=\"A\"" );
break;
default:
html += QLatin1String( "<ul" ); // ### should not happen
//qDebug() << html;
}
/*
if (format.hasProperty(QTextFormat::ListIndent)) {
html += QLatin1String(" style=\"-qt-list-indent: ");
html += QString::number(format.indent());
html += QLatin1String(";\"");
}*/
html += QLatin1Char( '>' );
}
blockTag = QLatin1String( "li" );
// html += QLatin1String( "<li " );
}
// const QTextBlockFormat blockFormat = block.blockFormat();
if ( blockFormat.hasProperty( QTextFormat::BlockTrailingHorizontalRulerWidth ) ) {
if ( ( blockFormat.hasProperty( BilboTextFormat::IsHtmlTagSign ) ) &&
( blockFormat.boolProperty( BilboTextFormat::IsHtmlTagSign ) ) ) {
html += QLatin1String( "<!--split-->" );
return;
} else {
html += QLatin1String( "<hr" );
QTextLength width = blockFormat.lengthProperty( QTextFormat::BlockTrailingHorizontalRulerWidth );
if ( width.type() != QTextLength::VariableLength ) {
emitTextLength( "width", width );
} else {
html += QLatin1Char( ' ' );
}
html += QLatin1String( "/>" );
return;
}
}
const bool pre = blockFormat.nonBreakableLines();
if ( pre ) {
// qDebug() << "NonBreakable lines" << endl;
// if (list) {
// html += QLatin1Char('>');
// }
// html += QLatin1String( "<pre" );
// emitBlockAttributes( block );
// html += QLatin1Char( '>' );
blockTag = QLatin1String( "pre" );
} else {
if (!list) {
if ( isBlockQuote ) {
html += QLatin1String( "<blockquote>" );
}
if ( ( blockFormat.hasProperty( BilboTextFormat::HtmlHeading ) ) && (
//.........这里部分代码省略.........
示例8: recalculate
void ListItemsHelper::recalculate()
{
//kDebug(32500);
const QTextListFormat format = m_textList->format();
const KoListStyle::Style listStyle = static_cast<KoListStyle::Style>(m_textList->format().style());
const QString prefix = format.stringProperty(KoListStyle::ListItemPrefix);
const QString suffix = format.stringProperty(KoListStyle::ListItemSuffix);
const int level = format.intProperty(KoListStyle::Level);
int dp = format.intProperty(KoListStyle::DisplayLevel);
if (dp > level)
dp = level;
const int displayLevel = dp ? dp : 1;
int startValue = 1;
if (format.hasProperty(KoListStyle::StartValue))
startValue = format.intProperty(KoListStyle::StartValue);
if (format.boolProperty(KoListStyle::ContinueNumbering)) {
// Look for the index of a previous list of the same numbering style and level
for (QTextBlock tb = m_textList->item(0).previous(); tb.isValid(); tb = tb.previous()) {
if (!tb.textList() || tb.textList() == m_textList)
continue; // no list here or it's the same list; keep looking
QTextListFormat otherFormat = tb.textList()->format();
if (otherFormat.intProperty(KoListStyle::Level) != level)
break; // found a different list but of a different level
if (otherFormat.style() == format.style()) {
if (KoTextBlockData *data = dynamic_cast<KoTextBlockData *>(tb.userData()))
startValue = data->counterIndex() + 1; // Start from previous list value + 1
}
break;
}
}
int index = startValue;
QList<QTextList*> sublistsToRecalculate;
qreal width = format.doubleProperty(KoListStyle::MinimumWidth);
for (int i = 0; i < m_textList->count(); i++) {
QTextBlock tb = m_textList->item(i);
//kDebug(32500) <<" *" << tb.text();
KoTextBlockData *data = dynamic_cast<KoTextBlockData*>(tb.userData());
if (!data) {
data = new KoTextBlockData();
tb.setUserData(data);
}
QTextBlockFormat blockFormat = tb.blockFormat();
if (blockFormat.boolProperty(KoParagraphStyle::UnnumberedListItem)
|| blockFormat.boolProperty(KoParagraphStyle::IsListHeader)) {
data->setCounterText(QString());
data->setPartialCounterText(QString());
continue;
}
if (blockFormat.boolProperty(KoParagraphStyle::RestartListNumbering))
index = format.intProperty(KoListStyle::StartValue);
const int paragIndex = blockFormat.intProperty(KoParagraphStyle::ListStartValue);
if (paragIndex > 0)
index = paragIndex;
//check if this is the first of this level meaning we should start from startvalue
QTextBlock b = tb.previous();
for (;b.isValid(); b = b.previous()) {
if (b.textList() == m_textList)
break; // all fine
if (b.textList() == 0)
continue;
QTextListFormat otherFormat = b.textList()->format();
if (otherFormat.style() != format.style())
continue; // uninteresting for us
if (b.textList()->format().intProperty(KoListStyle::Level) < level) {
index = startValue;
break;
}
}
QString item;
if (displayLevel > 1) {
int checkLevel = level;
int tmpDisplayLevel = displayLevel;
for (QTextBlock b = tb.previous(); tmpDisplayLevel > 1 && b.isValid(); b = b.previous()) {
if (b.textList() == 0)
continue;
QTextListFormat lf = b.textList()->format();
if (lf.style() != format.style())
continue; // uninteresting for us
const int otherLevel = lf.intProperty(KoListStyle::Level);
if (checkLevel <= otherLevel)
continue;
/*if(needsRecalc(b->textList())) {
TODO
} */
KoTextBlockData *otherData = dynamic_cast<KoTextBlockData*>(b.userData());
if (! otherData) {
kWarning(32500) << "Missing KoTextBlockData, Skipping textblock";
continue;
}
if (tmpDisplayLevel - 1 < otherLevel) { // can't just copy it fully since we are
//.........这里部分代码省略.........