本文整理汇总了C++中QTextBlock::setLineCount方法的典型用法代码示例。如果您正苦于以下问题:C++ QTextBlock::setLineCount方法的具体用法?C++ QTextBlock::setLineCount怎么用?C++ QTextBlock::setLineCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QTextBlock
的用法示例。
在下文中一共展示了QTextBlock::setLineCount方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: unfold
void JSEdit::unfold(int line)
{
QTextBlock startBlock = document()->findBlockByNumber(line - 1);
int endPos = findClosingConstruct(startBlock);
QTextBlock block = startBlock.next();
while (block.isValid() && !block.isVisible()) {
block.setVisible(true);
block.setLineCount(block.layout()->lineCount());
endPos = block.position() + block.length();
block = block.next();
}
document()->markContentsDirty(startBlock.position(), endPos - startBlock.position() + 1);
updateSidebar();
update();
JSDocLayout *layout = reinterpret_cast<JSDocLayout*>(document()->documentLayout());
layout->forceUpdate();
}
示例2: if
void BaseTextDocumentLayout::FoldValidator::process(QTextBlock block)
{
if (!m_layout)
return;
const QTextBlock &previous = block.previous();
if (!previous.isValid())
return;
if ((BaseTextDocumentLayout::isFolded(previous)
&& !BaseTextDocumentLayout::canFold(previous))
|| (!BaseTextDocumentLayout::isFolded(previous)
&& BaseTextDocumentLayout::canFold(previous)
&& !block.isVisible())) {
BaseTextDocumentLayout::setFolded(previous, !BaseTextDocumentLayout::isFolded(previous));
}
if (BaseTextDocumentLayout::isFolded(previous) && !m_insideFold)
m_insideFold = BaseTextDocumentLayout::foldingIndent(block);
bool toggleVisibility = false;
if (m_insideFold) {
if (BaseTextDocumentLayout::foldingIndent(block) >= m_insideFold) {
if (block.isVisible())
toggleVisibility = true;
} else {
m_insideFold = 0;
if (!block.isVisible())
toggleVisibility = true;
}
} else if (!block.isVisible()) {
toggleVisibility = true;
}
if (toggleVisibility) {
block.setVisible(!block.isVisible());
block.setLineCount(block.isVisible() ? qMax(1, block.layout()->lineCount()) : 0);
m_requestDocUpdate = true;
}
}
示例3: fold
void NCEdit::fold(int line) {
QTextBlock startBlock = document()->findBlockByNumber(line - 1);
int endPos = findClosingConstruct(startBlock);
if (endPos < 0) return;
QTextBlock endBlock = document()->findBlock(endPos);
QTextBlock block = startBlock.next();
while (block.isValid() && block != endBlock) {
block.setVisible(false);
block.setLineCount(0);
block = block.next();
}
document()->markContentsDirty(startBlock.position(),
endPos - startBlock.position() + 1);
updateSidebar();
update();
NCDocLayout *layout =
reinterpret_cast<NCDocLayout*>(document()->documentLayout());
layout->forceUpdate();
}
示例4: doFoldOrUnfold
void BaseTextDocumentLayout::doFoldOrUnfold(const QTextBlock& block, bool unfold)
{
if (!canFold(block))
return;
QTextBlock b = block.next();
int indent = foldingIndent(block);
while (b.isValid() && foldingIndent(b) > indent && (unfold || b.next().isValid())) {
b.setVisible(unfold);
b.setLineCount(unfold? qMax(1, b.layout()->lineCount()) : 0);
if (unfold) { // do not unfold folded sub-blocks
if (isFolded(b) && b.next().isValid()) {
int jndent = foldingIndent(b);
b = b.next();
while (b.isValid() && foldingIndent(b) > jndent)
b = b.next();
continue;
}
}
b = b.next();
}
setFolded(block, !unfold);
}
示例5: doCollapse
void TextBlockUserData::doCollapse(const QTextBlock& block, bool visible)
{
QTextBlock info = block;
if (block.userData() && static_cast<TextBlockUserData*>(block.userData())->collapseMode() == CollapseAfter)
;
else if (block.next().userData()
&& static_cast<TextBlockUserData*>(block.next().userData())->collapseMode()
== TextBlockUserData::CollapseThis)
info = block.next();
else {
if (visible && !block.next().isVisible()) {
// no match, at least unfold!
QTextBlock b = block.next();
while (b.isValid() && !b.isVisible()) {
b.setVisible(true);
b.setLineCount(visible ? qMax(1, b.layout()->lineCount()) : 0);
b = b.next();
}
}
return;
}
int pos = static_cast<TextBlockUserData*>(info.userData())->collapseAtPos();
if (pos < 0)
return;
QTextCursor cursor(info);
cursor.setPosition(cursor.position() + pos);
if (matchCursorForward(&cursor) != Match) {
if (visible) {
// no match, at least unfold!
QTextBlock b = block.next();
while (b.isValid() && !b.isVisible()) {
b.setVisible(true);
b.setLineCount(visible ? qMax(1, b.layout()->lineCount()) : 0);
b = b.next();
}
}
return;
}
QTextBlock b = block.next();
while (b < cursor.block()) {
b.setVisible(visible);
b.setLineCount(visible ? qMax(1, b.layout()->lineCount()) : 0);
if (visible) {
TextBlockUserData *data = canCollapse(b);
if (data && data->collapsed()) {
QTextBlock end = testCollapse(b);
if (data->collapseIncludesClosure())
end = end.next();
if (end.isValid()) {
b = end;
continue;
}
}
}
b = b.next();
}
bool collapseIncludesClosure = hasClosingCollapseAtEnd(b);
if (collapseIncludesClosure) {
b.setVisible(visible);
b.setLineCount(visible ? qMax(1, b.layout()->lineCount()) : 0);
}
static_cast<TextBlockUserData*>(info.userData())->setCollapseIncludesClosure(collapseIncludesClosure);
static_cast<TextBlockUserData*>(info.userData())->setCollapsed(!block.next().isVisible());
}