From 7c92db106d5b7ea1696fe4df54033f4979d077e5 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 25 May 2020 17:55:36 +0200 Subject: QmlJSEditor: Clear old values when updating outline Fixes: QTCREATORBUG-21335 Change-Id: I46b1ad52f62edf7865a44ade298ff2233ca4554a Reviewed-by: Ulf Hermann --- src/plugins/qmljseditor/qmloutlinemodel.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/qmljseditor/qmloutlinemodel.cpp b/src/plugins/qmljseditor/qmloutlinemodel.cpp index 0cda207b51..3dbcb48474 100644 --- a/src/plugins/qmljseditor/qmloutlinemodel.cpp +++ b/src/plugins/qmljseditor/qmloutlinemodel.cpp @@ -497,6 +497,7 @@ QModelIndex QmlOutlineModel::enterObjectDefinition(AST::UiObjectDefinition *objD } else { // it's a grouped propery like 'anchors' data.insert(ItemTypeRole, NonElementBindingType); + data.insert(AnnotationRole, QString()); // clear possible former annotation icon = Icons::scriptBindingIcon(); } @@ -516,6 +517,7 @@ QModelIndex QmlOutlineModel::enterObjectBinding(AST::UiObjectBinding *objBinding bindingData.insert(Qt::DisplayRole, asString(objBinding->qualifiedId)); bindingData.insert(ItemTypeRole, ElementBindingType); + bindingData.insert(AnnotationRole, QString()); // clear possible former annotation QmlOutlineItem *bindingItem = enterNode(bindingData, objBinding, objBinding->qualifiedId, Icons::scriptBindingIcon()); @@ -545,6 +547,7 @@ QModelIndex QmlOutlineModel::enterArrayBinding(AST::UiArrayBinding *arrayBinding bindingData.insert(Qt::DisplayRole, asString(arrayBinding->qualifiedId)); bindingData.insert(ItemTypeRole, ElementBindingType); + bindingData.insert(AnnotationRole, QString()); // clear possible former annotation QmlOutlineItem *item = enterNode(bindingData, arrayBinding, arrayBinding->qualifiedId, Icons::scriptBindingIcon()); @@ -617,6 +620,7 @@ QModelIndex QmlOutlineModel::enterFunctionDeclaration(AST::FunctionDeclaration * objectData.insert(Qt::DisplayRole, functionDisplayName(functionDeclaration->name, functionDeclaration->formals)); objectData.insert(ItemTypeRole, ElementBindingType); + objectData.insert(AnnotationRole, QString()); // clear possible former annotation QmlOutlineItem *item = enterNode(objectData, functionDeclaration, nullptr, Icons::functionDeclarationIcon()); @@ -648,6 +652,7 @@ QModelIndex QmlOutlineModel::enterFieldMemberExpression(AST::FieldMemberExpressi objectData.insert(Qt::DisplayRole, display); objectData.insert(ItemTypeRole, ElementBindingType); + objectData.insert(AnnotationRole, QString()); // clear possible former annotation QmlOutlineItem *item = enterNode(objectData, expression, nullptr, m_icons->functionDeclarationIcon()); @@ -666,6 +671,7 @@ QModelIndex QmlOutlineModel::enterTestCase(AST::ObjectPattern *objectLiteral) objectData.insert(Qt::DisplayRole, QLatin1String("testcase")); objectData.insert(ItemTypeRole, ElementBindingType); + objectData.insert(AnnotationRole, QString()); // clear possible former annotation QmlOutlineItem *item = enterNode(objectData, objectLiteral, nullptr, Icons::objectDefinitionIcon()); @@ -686,6 +692,7 @@ QModelIndex QmlOutlineModel::enterTestCaseProperties(AST::PatternPropertyList *p if (auto propertyName = AST::cast(assignment->name)) { objectData.insert(Qt::DisplayRole, propertyName->id.toString()); objectData.insert(ItemTypeRole, ElementBindingType); + objectData.insert(AnnotationRole, QString()); // clear possible former annotation QmlOutlineItem *item; if (assignment->initializer->kind == AST::Node::Kind_FunctionExpression) item = enterNode(objectData, assignment, nullptr, Icons::functionDeclarationIcon()); @@ -702,6 +709,7 @@ QModelIndex QmlOutlineModel::enterTestCaseProperties(AST::PatternPropertyList *p if (auto propertyName = AST::cast(getterSetter->name)) { objectData.insert(Qt::DisplayRole, propertyName->id.toString()); objectData.insert(ItemTypeRole, ElementBindingType); + objectData.insert(AnnotationRole, QString()); // clear possible former annotation QmlOutlineItem *item; item = enterNode(objectData, getterSetter, nullptr, Icons::functionDeclarationIcon()); -- cgit v1.2.1