Salome HOME
Issue #3060: Use HideFaces panel for groups creation operation
[modules/shaper.git] / src / XGUI / XGUI_Tools.cpp
index cb66e1837fdaf24eb62da0d0f3ce818caf4f65e2..ae2bb898412f6d02e03a09813dec6e30b8ef9058 100644 (file)
@@ -250,40 +250,42 @@ QString generateName(const ModuleBase_ViewerPrsPtr& thePrs)
   if (aContext.get()) {
     GeomShapePtr aSubShape(new GeomAPI_Shape());
     TopoDS_Shape aShape = ModuleBase_Tools::getSelectedShape(thePrs);
-    aSubShape->setImpl(new TopoDS_Shape(aShape));
-    if (!aSubShape->isEqual(aContext)) {
-      QString aTypeName;
-      switch (aShape.ShapeType()) {
-      case TopAbs_COMPOUND:
-        aTypeName = "compound";
-        break;
-      case TopAbs_COMPSOLID:
-        aTypeName = "compsolid";
-        break;
-      case TopAbs_SOLID:
-        aTypeName = "solid";
-        break;
-      case TopAbs_SHELL:
-        aTypeName = "shell";
-        break;
-      case TopAbs_FACE:
-        aTypeName = "face";
-        break;
-      case TopAbs_WIRE:
-        aTypeName = "wire";
-        break;
-      case TopAbs_EDGE:
-        aTypeName = "edge";
-        break;
-      case TopAbs_VERTEX:
-        aTypeName = "vertex";
-        break;
-      case TopAbs_SHAPE:
-        aTypeName = "shape";
-        break;
+    if (!aShape.IsNull()) {
+      aSubShape->setImpl(new TopoDS_Shape(aShape));
+      if (!aSubShape->isEqual(aContext)) {
+        QString aTypeName;
+        switch (aShape.ShapeType()) {
+        case TopAbs_COMPOUND:
+          aTypeName = "compound";
+          break;
+        case TopAbs_COMPSOLID:
+          aTypeName = "compsolid";
+          break;
+        case TopAbs_SOLID:
+          aTypeName = "solid";
+          break;
+        case TopAbs_SHELL:
+          aTypeName = "shell";
+          break;
+        case TopAbs_FACE:
+          aTypeName = "face";
+          break;
+        case TopAbs_WIRE:
+          aTypeName = "wire";
+          break;
+        case TopAbs_EDGE:
+          aTypeName = "edge";
+          break;
+        case TopAbs_VERTEX:
+          aTypeName = "vertex";
+          break;
+        case TopAbs_SHAPE:
+          aTypeName = "shape";
+          break;
+        }
+        int aId = GeomAlgoAPI_CompoundBuilder::id(aContext, aSubShape);
+        aName += QString("/%1_%2").arg(aTypeName).arg(aId);
       }
-      int aId = GeomAlgoAPI_CompoundBuilder::id(aContext, aSubShape);
-      aName += QString("/%1_%2").arg(aTypeName).arg(aId);
     }
   }
   return aName;