OSDN Git Service

QmlDesigner.contextMenu: crash fix
authorThomas Hartmann <Thomas.Hartmann@nokia.com>
Mon, 12 Sep 2011 08:21:53 +0000 (10:21 +0200)
committerEike Ziller <eike.ziller@nokia.com>
Mon, 12 Sep 2011 08:35:46 +0000 (10:35 +0200)
Task-number: QTCREATORBUG-6071
Change-Id: Iae2cc199cd8ec3809bc635084b8a8fa79bb36b08
Reviewed-on: http://codereview.qt-project.org/4643
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp

index 0333b5e..3ae4815 100644 (file)
@@ -71,7 +71,7 @@ static inline bool checkIfNodeIsAView(const ModelNode &node)
 
 static inline bool isItem(const ModelNode &node)
 {
-    return node.metaInfo().isValid() && node.metaInfo().isSubclassOf("QtQuick.Item", -1, -1);
+    return node.isValid() && node.metaInfo().isValid() && node.metaInfo().isSubclassOf("QtQuick.Item", -1, -1);
 }
 
 static inline QList<QmlItemNode> siblingsForNode(const QmlItemNode &itemNode)
@@ -251,7 +251,7 @@ void ModelNodeContextMenu::execute(const QPoint &pos, bool selectionMenuBool)
         editMenu->addAction(action);
         action = createModelNodeAction(tr("Visibility"), editMenu, QList<ModelNode>() << currentSingleNode, ModelNodeAction::ModelNodeVisibility, singleSelected);
         editMenu->addAction(action);
-        if (!isItem(currentSingleNode))
+        if (singleSelected && !isItem(currentSingleNode))
             action->setDisabled(true);
 
     } else {