QmlEditor: show the id name when folding a block.

If the id of an element exists, it will be displayed instead of the normal "..."

Change-Id: I4e6633743b0e2ae014b7fbad3c752ef318c73659
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
This commit is contained in:
Nicolas Arnaud-Cormos
2011-09-14 22:16:28 +02:00
committed by Christian Kamm
parent d136b011e1
commit 635ca2a51a
4 changed files with 47 additions and 4 deletions

View File

@@ -2657,9 +2657,12 @@ QTextBlock BaseTextEditorWidget::foldedBlockAt(const QPoint &pos, QRect *box) co
QRectF lineRect = line.naturalTextRect().translated(offset.x(), top);
lineRect.adjust(0, 0, -1, -1);
QString replacement = QLatin1String(" {") + foldReplacementText(block)
+ QLatin1String("}; ");
QRectF collapseRect(lineRect.right() + 12,
lineRect.top(),
fontMetrics().width(QLatin1String(" {...}; ")),
fontMetrics().width(replacement),
lineRect.height());
if (collapseRect.contains(pos)) {
QTextBlock result = block;
@@ -3453,9 +3456,12 @@ void BaseTextEditorWidget::paintEvent(QPaintEvent *e)
QRectF lineRect = line.naturalTextRect().translated(offset.x(), top);
lineRect.adjust(0, 0, -1, -1);
QString replacement = foldReplacementText(block);
QString rectReplacement = QLatin1String(" {") + replacement + QLatin1String("}; ");
QRectF collapseRect(lineRect.right() + 12,
lineRect.top(),
fontMetrics().width(QLatin1String(" {...}; ")),
fontMetrics().width(rectReplacement),
lineRect.height());
painter.setRenderHint(QPainter::Antialiasing, true);
painter.translate(.5, .5);
@@ -3463,8 +3469,6 @@ void BaseTextEditorWidget::paintEvent(QPaintEvent *e)
painter.setRenderHint(QPainter::Antialiasing, false);
painter.translate(-.5, -.5);
QString replacement = QLatin1String("...");
if (TextBlockUserData *nextBlockUserData = BaseTextDocumentLayout::testUserData(nextBlock)) {
if (nextBlockUserData->foldingStartIncluded())
replacement.prepend(nextBlock.text().trimmed().left(1));
@@ -6341,3 +6345,8 @@ IAssistInterface *BaseTextEditorWidget::createAssistInterface(AssistKind kind,
Q_UNUSED(kind);
return new DefaultAssistInterface(document(), position(), d->m_document, reason);
}
QString TextEditor::BaseTextEditorWidget::foldReplacementText(const QTextBlock &) const
{
return QLatin1String("...");
}