forked from qt-creator/qt-creator
QmlOutline: Treat grouped property items as properties
E.g. "anchors {}" is represented in the AST as a UiObjectDefinition.
Treat it nevertheless like a property in the outline, such that it
isn't shown in the outline if you deactivate showing bindings.
This commit is contained in:
@@ -44,8 +44,7 @@ bool QmlJSOutlineFilterModel::filterAcceptsRow(int sourceRow,
|
|||||||
if (m_filterBindings) {
|
if (m_filterBindings) {
|
||||||
QModelIndex sourceIndex = sourceModel()->index(sourceRow, 0, sourceParent);
|
QModelIndex sourceIndex = sourceModel()->index(sourceRow, 0, sourceParent);
|
||||||
QVariant itemType = sourceIndex.data(QmlOutlineModel::ItemTypeRole);
|
QVariant itemType = sourceIndex.data(QmlOutlineModel::ItemTypeRole);
|
||||||
Q_ASSERT(itemType.isValid());
|
if (itemType == QmlOutlineModel::PropertyType) {
|
||||||
if (itemType.isValid() && itemType == QmlOutlineModel::PropertyType) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -347,20 +347,28 @@ QModelIndex QmlOutlineModel::enterObjectDefinition(AST::UiObjectDefinition *objD
|
|||||||
QmlOutlineItem prototype(this);
|
QmlOutlineItem prototype(this);
|
||||||
|
|
||||||
const QString typeName = asString(objDef->qualifiedTypeNameId);
|
const QString typeName = asString(objDef->qualifiedTypeNameId);
|
||||||
const QString id = getId(objDef);
|
|
||||||
if (!id.isEmpty()) {
|
if (typeName.at(0).isUpper()) {
|
||||||
prototype.setText(id);
|
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 {
|
} else {
|
||||||
|
// it's a grouped propery like 'anchors'
|
||||||
prototype.setText(typeName);
|
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.setSourceLocation(getLocation(objDef));
|
||||||
prototype.setNode(objDef);
|
prototype.setNode(objDef);
|
||||||
prototype.setIdNode(objDef->qualifiedTypeNameId);
|
|
||||||
|
|
||||||
return enterNode(prototype);
|
return enterNode(prototype);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user