diff options
author | Nicolas Arnaud-Cormos <nicolas@kdab.com> | 2011-09-14 22:16:28 +0200 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-10-22 21:11:32 +0200 |
commit | 635ca2a51a6582aceaded32000d2190344805e15 (patch) | |
tree | 784a78d0899b1f80d11b56b759a547ba107d6ee1 /src/plugins/qmljseditor | |
parent | d136b011e14de330a32d781e6653413e1aeb6678 (diff) | |
download | qt-creator-635ca2a51a6582aceaded32000d2190344805e15.tar.gz |
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>
Diffstat (limited to 'src/plugins/qmljseditor')
-rw-r--r-- | src/plugins/qmljseditor/qmljseditor.cpp | 28 | ||||
-rw-r--r-- | src/plugins/qmljseditor/qmljseditor.h | 1 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 0f3c36f7fd..f1b4b2045e 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -1692,3 +1692,31 @@ TextEditor::IAssistInterface *QmlJSTextEditorWidget::createAssistInterface( } return 0; } + +QString QmlJSTextEditorWidget::foldReplacementText(const QTextBlock &block) const +{ + int curlyIndex = block.text().indexOf(QLatin1Char('{')); + + if ((curlyIndex == -1) || !m_semanticInfo.isValid()) + return TextEditor::BaseTextEditorWidget::foldReplacementText(block); + + int pos = block.position() + curlyIndex; + Node *node = m_semanticInfo.rangeAt(pos); + + if (node) { + UiObjectInitializer *objectInitializer = 0; + if (UiObjectDefinition *def = cast<UiObjectDefinition *>(node)) + objectInitializer = def->initializer; + else if (UiObjectBinding *binding = cast<UiObjectBinding *>(node)) + objectInitializer = binding->initializer; + + // Get the id value, if it exists, and display it + if (objectInitializer) { + QString objectId = idOfObject(objectInitializer); + if (!objectId.isEmpty()) + return QLatin1String("id: ") + objectId + QLatin1String("..."); + } + } + + return TextEditor::BaseTextEditorWidget::foldReplacementText(block); +} diff --git a/src/plugins/qmljseditor/qmljseditor.h b/src/plugins/qmljseditor/qmljseditor.h index 52c1bba71b..532290bf3f 100644 --- a/src/plugins/qmljseditor/qmljseditor.h +++ b/src/plugins/qmljseditor/qmljseditor.h @@ -216,6 +216,7 @@ protected: TextEditor::BaseTextEditor *createEditor(); void createToolBar(QmlJSEditorEditable *editable); TextEditor::BaseTextEditorWidget::Link findLinkAt(const QTextCursor &cursor, bool resolveTarget = true); + QString foldReplacementText(const QTextBlock &block) const; private: bool isClosingBrace(const QList<QmlJS::Token> &tokens) const; |