本文整理汇总了C++中QTextList::itemNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ QTextList::itemNumber方法的具体用法?C++ QTextList::itemNumber怎么用?C++ QTextList::itemNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QTextList
的用法示例。
在下文中一共展示了QTextList::itemNumber方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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 ) ) && (
//.........这里部分代码省略.........
示例2: showList
void MainWindow::showList()
{
QTextCursor cursor = editor->textCursor();
QTextFrame *frame = cursor.currentFrame();
if (!frame)
return;
QTreeWidget *treeWidget = new QTreeWidget;
treeWidget->setColumnCount(1);
QStringList headerLabels;
headerLabels << tr("Lists");
treeWidget->setHeaderLabels(headerLabels);
QTreeWidgetItem *parentItem = 0;
QTreeWidgetItem *item;
QTreeWidgetItem *lastItem = 0;
parentItems.clear();
previousItems.clear();
//! [3]
QTextFrame::iterator it;
for (it = frame->begin(); !(it.atEnd()); ++it) {
QTextBlock block = it.currentBlock();
if (block.isValid()) {
QTextList *list = block.textList();
if (list) {
int index = list->itemNumber(block);
//! [3]
if (index == 0) {
parentItems.append(parentItem);
previousItems.append(lastItem);
listStructures.append(list);
parentItem = lastItem;
lastItem = 0;
if (parentItem != 0)
item = new QTreeWidgetItem(parentItem, lastItem);
else
item = new QTreeWidgetItem(treeWidget, lastItem);
} else {
while (parentItem != 0 && listStructures.last() != list) {
listStructures.pop_back();
parentItem = parentItems.takeLast();
lastItem = previousItems.takeLast();
}
if (parentItem != 0)
item = new QTreeWidgetItem(parentItem, lastItem);
else
item = new QTreeWidgetItem(treeWidget, lastItem);
}
item->setText(0, block.text());
lastItem = item;
/*
//! [4]
processListItem(list, index);
//! [4]
*/
//! [5]
}
//! [5] //! [6]
}
//! [6] //! [7]
}
//! [7]
treeWidget->setWindowTitle(tr("List Contents"));
treeWidget->show();
}
示例3: write
void KoTextWriter::write(const QTextDocument *document, int from, int to)
{
d->document = const_cast<QTextDocument*>(document);
d->styleManager = KoTextDocument(document).styleManager();
QTextBlock fromblock = document->findBlock(from);
QTextBlock toblock = document->findBlock(to);
QTextCursor fromcursor(fromblock);
QTextTable *currentTable = fromcursor.currentTable();
QTextList *currentList = fromcursor.currentList();
// NOTE even better would be if we create a new table/list out of multiple selected
// tablecells/listitems that contain only the selected cells/items. But following
// at least enables copying a whole list/table while still being able to copy/paste
// only parts of the text within a list/table (see also bug 275990).
if (currentTable || currentList) {
if (from == 0 && to < 0) {
// save everything means also save current table and list
currentTable = 0;
currentList = 0;
} else {
QTextCursor tocursor(toblock);
//fromcursor.setPosition(from, QTextCursor::KeepAnchor);
tocursor.setPosition(to, QTextCursor::KeepAnchor);
if (!fromcursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor)) {
fromcursor = QTextCursor();
}
if (!tocursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor)) {
tocursor = QTextCursor();
}
// save the whole table if all cells are selected
if (currentTable) {
QTextTableCell fromcell = currentTable->cellAt(from);
QTextTableCell tocell = currentTable->cellAt(to);
if ((fromcursor.isNull() || fromcursor.currentTable() != currentTable) &&
(tocursor.isNull() || tocursor.currentTable() != currentTable) &&
fromcell.column() == 0 && fromcell.row() == 0 &&
tocell.column() == currentTable->columns()-1 && tocell.row() == currentTable->rows()-1
) {
currentTable = 0;
}
}
// save the whole list if all list-items are selected
if (currentList) {
int fromindex = currentList->itemNumber(fromblock);
int toindex = currentList->itemNumber(toblock);
if ((fromcursor.isNull() || fromcursor.currentList() != currentList) &&
(tocursor.isNull() || tocursor.currentList() != currentList) &&
fromindex <= 0 && (toindex < 0 || toindex == currentList->count()-1)
) {
currentList = 0;
}
}
}
}
QHash<QTextList *, QString> listStyles = d->saveListStyles(fromblock, to);
d->globalFrom = from;
d->globalTo = to;
d->writeBlocks(const_cast<QTextDocument *>(document), from, to, listStyles, currentTable, currentList);
}