QmlDesigner: disable none default properties in navigator

Change-Id: Ia5c6e4c34ef40145f0fa7618a1ceb5afb1f666b3
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
Tim Jenssen
2014-08-05 16:52:49 +02:00
committed by Thomas Hartmann
parent 76fbc65c18
commit 3e1234c81a

View File

@@ -50,6 +50,8 @@
#include <QtDebug>
#define DISABLE_VISIBLE_PROPERTIES
namespace QmlDesigner {
static PropertyNameList visibleProperties(const ModelNode &node)
@@ -84,7 +86,9 @@ static QList<ModelNode> acceptedModelNodeChildren(const ModelNode &parentNode)
if (parentNode.metaInfo().hasDefaultProperty())
properties.append(parentNode.metaInfo().defaultPropertyName());
#ifndef DISABLE_VISIBLE_PROPERTIES
properties.append(visibleProperties(parentNode));
#endif
foreach (const PropertyName &propertyName, properties) {
AbstractProperty property(parentNode.property(propertyName));
@@ -201,7 +205,9 @@ static bool computeTarget(const QModelIndex &rowModelIndex,
ModelNode targetNode = navigatorTreeModel->nodeForIndex(targetItemIndex);
if (!targetNode.metaInfo().hasDefaultProperty())
return false;
#ifndef DISABLE_VISIBLE_PROPERTIES
*targetRowNumber -= visibleProperties(targetNode).count();
#endif
targetPropertyName = targetNode.metaInfo().defaultPropertyName();
} else {
targetItemIndex = rowModelIndex.parent();
@@ -280,6 +286,7 @@ ItemRow NavigatorTreeModel::createItemRow(const ModelNode &node)
visibilityItem->setCheckable(false);
QMap<QString, QStandardItem *> propertyItems;
#ifndef DISABLE_VISIBLE_PROPERTIES
foreach (const QString &propertyName, visibleProperties(node)) {
QStandardItem *propertyItem = new QStandardItem;
propertyItem->setSelectable(false);
@@ -290,6 +297,7 @@ ItemRow NavigatorTreeModel::createItemRow(const ModelNode &node)
propertyItems.insert(propertyName, propertyItem);
idItem->appendRow(propertyItem);
}
#endif
# ifdef _LOCK_ITEMS_
ItemRow newRow = ItemRow(idItem, lockItem, visibilityItem, propertyItems);
@@ -340,7 +348,9 @@ static void findTargetItem(const NodeListProperty &listProperty,
*targetItem = parentRow.propertyItems.value(listProperty.name());
} else { // default property
*targetItem = parentRow.idItem;
#ifndef DISABLE_VISIBLE_PROPERTIES
newRowNumber += visibleProperties(listProperty.parentModelNode()).count();
#endif
}
} else {
*targetItem = currentItemRow.idItem->parent();