diff --git a/src/plugins/qmljseditor/qmljsoutline.cpp b/src/plugins/qmljseditor/qmljsoutline.cpp index b80d746078aae0eb058283def919f5b670b406a6..66d505672b739ed3b55f632b22dc5161da2acb71 100644 --- a/src/plugins/qmljseditor/qmljsoutline.cpp +++ b/src/plugins/qmljseditor/qmljsoutline.cpp @@ -44,8 +44,7 @@ bool QmlJSOutlineFilterModel::filterAcceptsRow(int sourceRow, if (m_filterBindings) { QModelIndex sourceIndex = sourceModel()->index(sourceRow, 0, sourceParent); QVariant itemType = sourceIndex.data(QmlOutlineModel::ItemTypeRole); - Q_ASSERT(itemType.isValid()); - if (itemType.isValid() && itemType == QmlOutlineModel::PropertyType) { + if (itemType == QmlOutlineModel::PropertyType) { return false; } } diff --git a/src/plugins/qmljseditor/qmloutlinemodel.cpp b/src/plugins/qmljseditor/qmloutlinemodel.cpp index 77eae8d008a3daf116d94d502ee57b656c4ff0f4..9064277687bf1cb780cd5582afd5a15f97fb9f0f 100644 --- a/src/plugins/qmljseditor/qmloutlinemodel.cpp +++ b/src/plugins/qmljseditor/qmloutlinemodel.cpp @@ -347,20 +347,28 @@ QModelIndex QmlOutlineModel::enterObjectDefinition(AST::UiObjectDefinition *objD QmlOutlineItem prototype(this); const QString typeName = asString(objDef->qualifiedTypeNameId); - const QString id = getId(objDef); - if (!id.isEmpty()) { - prototype.setText(id); + + if (typeName.at(0).isUpper()) { + const QString id = getId(objDef); + if (!id.isEmpty()) { + prototype.setText(id); + } else { + prototype.setText(typeName); + } + if (!m_typeToIcon.contains(typeName)) { + m_typeToIcon.insert(typeName, getIcon(objDef)); + } + prototype.setIcon(m_typeToIcon.value(typeName)); + prototype.setData(ElementType, ItemTypeRole); + prototype.setIdNode(objDef->qualifiedTypeNameId); } else { + // it's a grouped propery like 'anchors' prototype.setText(typeName); + prototype.setIcon(m_icons->scriptBindingIcon()); + prototype.setData(PropertyType, ItemTypeRole); } - if (!m_typeToIcon.contains(typeName)) { - m_typeToIcon.insert(typeName, getIcon(objDef)); - } - prototype.setIcon(m_typeToIcon.value(typeName)); - prototype.setData(ElementType, ItemTypeRole); prototype.setSourceLocation(getLocation(objDef)); prototype.setNode(objDef); - prototype.setIdNode(objDef->qualifiedTypeNameId); return enterNode(prototype); }