]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
An object which is sub-object of a composite object can not be accessible in column 1
authorvsv <vitaly.smetannikov@opencascade.com>
Mon, 24 Aug 2015 15:45:58 +0000 (18:45 +0300)
committervsv <vitaly.smetannikov@opencascade.com>
Mon, 24 Aug 2015 15:46:11 +0000 (18:46 +0300)
src/XGUI/XGUI_DataModel.cpp

index 1d422355b6e4f9ac8844a9bd7f5c3707c715ac5d..13653e5f37d53544d677d5efa225442e290bb671 100644 (file)
@@ -641,8 +641,28 @@ Qt::ItemFlags XGUI_DataModel::flags(const QModelIndex& theIndex) const
       aObj = (ModelAPI_Object*) theIndex.internalPointer();
   }
   if (aObj) {
+    bool isCompositeSub = false;
+    if (theIndex.column() == 1) {
+      ObjectPtr aObjPtr = aObj->data()->owner();
+      FeaturePtr aFeature = std::dynamic_pointer_cast<ModelAPI_Feature>(aObjPtr);
+      if (aFeature.get()) {
+        CompositeFeaturePtr aCompFea = ModelAPI_Tools::compositeOwner(aFeature);
+        if (aCompFea.get()) 
+          isCompositeSub = true;
+      } else {
+        ResultPtr aResult = std::dynamic_pointer_cast<ModelAPI_Result>(aObjPtr);
+        if (aResult.get()) {
+          ResultCompSolidPtr aCompRes = ModelAPI_Tools::compSolidOwner(aResult);
+          if (aCompRes.get()) 
+            isCompositeSub = true;
+        }
+      }
+    }
+    // An object which is sub-object of a composite object can not be accessible in column 1
+    if (isCompositeSub)
+      return Qt::ItemFlags();
+
     aFlags |= Qt::ItemIsEditable;
-  
     if (!aObj->isDisabled())
       aFlags |= Qt::ItemIsEnabled;
   } else