Salome HOME
Initial (compilation) porting to SALOME 8.5.0 current on Debian 8
authormpv <mikhail.ponikarov@opencascade.com>
Tue, 6 Mar 2018 08:12:26 +0000 (11:12 +0300)
committermpv <mikhail.ponikarov@opencascade.com>
Tue, 6 Mar 2018 08:12:26 +0000 (11:12 +0300)
27 files changed:
env.sh
src/Config/Config_Prop.h
src/GeomAlgoAPI/GeomAlgoAPI_Boolean.cpp
src/GeomAlgoAPI/GeomAlgoAPI_IGESImport.cpp
src/GeomAlgoAPI/GeomAlgoAPI_MakeVolume.cpp
src/GeomAlgoAPI/GeomAlgoAPI_Partition.cpp
src/GeomAlgoAPI/GeomAlgoAPI_PaveFiller.cpp
src/GeomAlgoAPI/GeomAlgoAPI_STEPImport.cpp
src/GeomAlgoAPI/GeomAlgoAPI_ShapeBuilder.cpp
src/GeomAlgoAPI/GeomAlgoAPI_ShapeTools.cpp
src/GeomAlgoAPI/GeomAlgoAPI_SketchBuilder.cpp
src/GeomAlgoAPI/GeomAlgoAPI_UnifySameDomain.cpp
src/GeomAlgoImpl/GEOMAlgo_Splitter.cxx
src/Model/Model_Document.cpp
src/ModelHighAPI/ModelHighAPI_Tools.cpp
src/ModuleBase/ModuleBase_BRepOwner.h
src/ModuleBase/ModuleBase_ResultPrs.cpp
src/ModuleBase/ModuleBase_ResultPrs.h
src/ModuleBase/ModuleBase_Tools.cpp
src/ModuleBase/ModuleBase_ViewerFilters.cpp
src/PartSet/PartSet_CenterPrs.cpp
src/PartSet/PartSet_CenterPrs.h
src/PartSet/PartSet_WidgetFeaturePointSelector.cpp
src/SketcherPrs/SketcherPrs_Coincident.cpp
src/SketcherPrs/SketcherPrs_SymbolPrs.cpp
src/SketcherPrs/SketcherPrs_SymbolPrs.h
src/XGUI/XGUI_Workshop.cpp

diff --git a/env.sh b/env.sh
index 05bfb11452bf30cdb2b0ed2bfec876e1a5c6c4d7..a1c6228ace6bb6e312e590da98fb8434c4f603b6 100644 (file)
--- a/env.sh
+++ b/env.sh
@@ -11,7 +11,7 @@ export AUT_DIR=$(pwd)
 export TOOLS_DIR=$(pwd)
 
 export HOME_OLD=$HOME
-source /dn46/SALOME/series8x/current-2017-07-11/start.sh
+source /dn46/SALOME/series8x/current-2018-03-02/start.sh
 export HOME=$HOME_OLD
 
 # Path to solvespace-2
index bdaecb59b7bc84d856cd149407fa9c402f4fe6bd..5411766e4237f7e9e5593096879319346c1f96ea 100644 (file)
@@ -26,7 +26,7 @@
 #include <string>
 #include <list>
 
-static const char* SKETCH_TAB_NAME = "Sketch";
+static const char SKETCH_TAB_NAME[] = "Sketch";
 
 /*!
  * \class Config_Prop
index 7ef54d5d6be0032e4e8401503ef55ca36c8f6acc..2af2e8edb0841920fd95f9ad3c6312bf915a283a 100644 (file)
@@ -86,14 +86,8 @@ void GeomAlgoAPI_Boolean::build(const ListOfShape& theObjects,
 
   // Building and getting result.
   aBuilder->Perform();
-#ifdef USE_OCCT_720
   if (aBuilder->HasErrors())
     return;
-#else
-  if(aBuilder->ErrorStatus() != 0) {
-    return;
-  }
-#endif
   TopoDS_Shape aResult = aBuilder->Shape();
 
   if(aResult.ShapeType() == TopAbs_COMPOUND) {
index f9f9cdfb418d2ab06c554340b5f4f2e106c5dabe..1b9637feb80cddbef1b2e2fed476063f07774266 100644 (file)
@@ -76,9 +76,8 @@ std::shared_ptr<GeomAPI_Shape> IGESImport(const std::string& theFileName,
       aShape.Nullify();
     }
   }
-  catch( Standard_Failure ) {
-    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
-    theError = aFail->GetMessageString();
+  catch( Standard_Failure const& anException) {
+    theError = anException.GetMessageString();
     aShape.Nullify();
   }
 
index c942dd1cb4bb102c3e648fcf0ad134d3c73827e5..9dad362eaa3e60a7b5d3ac19f3eff84e2f66416f 100644 (file)
@@ -65,21 +65,13 @@ void GeomAlgoAPI_MakeVolume::build(const ListOfShape& theFaces)
   // parameters of the volume maker
   aVolumeMaker->SetArguments(anArgs);
   aVolumeMaker->SetIntersect(true); // split edges and faces
-#ifdef USE_OCCT_720
   aVolumeMaker->SetAvoidInternalShapes(true);
-#endif
   aVolumeMaker->SetGlue(BOPAlgo_GlueOff);
 
   // building and getting result
   aVolumeMaker->Perform();
-#ifdef USE_OCCT_720
   if (aVolumeMaker->HasErrors())
     return;
-#else
-  if(aVolumeMaker->ErrorStatus() != 0) {
-    return;
-  }
-#endif
   TopoDS_Shape aResult = aVolumeMaker->Shape();
 
   if(aResult.ShapeType() == TopAbs_COMPOUND) {
index e8199f58c57393908eb190be80bb2d728b98d12b..9655931d771ab170d3cd31c18ca5728114a9b08b 100644 (file)
@@ -150,14 +150,8 @@ void GeomAlgoAPI_Partition::build(const ListOfShape& theObjects,
 
   // Building and getting result.
   anOperation->Perform();
-#ifdef USE_OCCT_720
   if (anOperation->HasErrors())
     return;
-#else
-  if(anOperation->ErrorStatus() != 0) {
-    return;
-  }
-#endif
   TopoDS_Shape aResult = anOperation->Shape();
 
   if(aResult.ShapeType() == TopAbs_COMPOUND) {
index 95a3440720ba5d7060db63a7a2d57e83df7abb54..39a18c4af6dc0f5418856177a96b8e8c34677da3 100644 (file)
@@ -55,30 +55,16 @@ void GeomAlgoAPI_PaveFiller::build(const ListOfShape& theListOfShape,
   }
   aPaveFiller->SetArguments(aListOfShape);
   aPaveFiller->Perform();
-#ifdef USE_OCCT_720
   if (aPaveFiller->HasErrors())
     return;
-#else
-  Standard_Integer iErr = aPaveFiller->ErrorStatus();
-  if(iErr) {
-    return;
-  }
-#endif
 
   BOPAlgo_Builder* aBuilder = new BOPAlgo_Builder();
   this->setImpl(aBuilder);
   this->setBuilderType(OCCT_BOPAlgo_Builder);
   aBuilder->SetArguments(aListOfShape);
   aBuilder->PerformWithFiller(*aPaveFiller);
-#ifdef USE_OCCT_720
   if (aBuilder->HasErrors())
     return;
-#else
-  iErr = aBuilder->ErrorStatus();
-  if(iErr) {
-    return;
-  }
-#endif
 
   TopoDS_Shape aResult = aBuilder->Shape();
   if(aResult.ShapeType() == TopAbs_COMPOUND) {
index 93c3c26f65672041380cae2df3cf6812a062d299..837237a79c761ceb7fdd886a2e0b2debffd30913 100644 (file)
@@ -186,9 +186,8 @@ std::shared_ptr<GeomAPI_Shape> STEPImport(const std::string& theFileName,
       aResShape.Nullify();
     }
   }
-  catch (Standard_Failure) {
-    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
-    theError = aFail->GetMessageString();
+  catch (Standard_Failure const& anException) {
+    theError = anException.GetMessageString();
     aResShape.Nullify();
   }
   // Return previous locale
index ce6022de4c65aaf0529b21348c02fe23aae7ca13..49b66507b73560f18f9f5bfac072b837599091ea 100644 (file)
@@ -189,8 +189,8 @@ void GeomAlgoAPI_ShapeBuilder::addInternal(const std::shared_ptr<GeomAPI_Shape>
           }
         }
       }
-    } else if(aBaseShapeType == GeomAPI_Shape::FACE) {
-      if(aShapeToAddType == GeomAPI_Shape::EDGE) {
+    } else if(aBaseShapeType == TopAbs_FACE) {
+      if(aShapeToAddType == TopAbs_EDGE) {
         aShapeToAdd.Orientation(TopAbs_INTERNAL);
         TopoDS_Wire aWire;
         aBuilder.MakeWire(aWire);
index 5dc12d2edfcf6369a900ad0ed281d832159e804b..d03f8e05ce9fabe6c6b22d91c0d06c2c1aba8129 100644 (file)
@@ -846,13 +846,8 @@ void GeomAlgoAPI_ShapeTools::splitShape(const std::shared_ptr<GeomAPI_Shape>& th
   }
 
   aBOP.Perform();
-#ifdef USE_OCCT_720
   if (aBOP.HasErrors())
     return;
-#else
-  if (aBOP.ErrorStatus())
-    return;
-#endif
 
   // Collect splits
   const TopTools_ListOfShape& aSplits = aBOP.Modified(aBaseEdge);
@@ -896,13 +891,8 @@ void GeomAlgoAPI_ShapeTools::splitShape_p(const std::shared_ptr<GeomAPI_Shape>&
   }
 
   aBOP.Perform();
-#ifdef USE_OCCT_720
   if (aBOP.HasErrors())
     return;
-#else
-  if (aBOP.ErrorStatus())
-    return;
-#endif
 
   // Collect splits
   const TopTools_ListOfShape& aSplits = aBOP.Modified(aBaseEdge);
index a6da1e785e24b70d0a84b515c1afd0b7805fbc94..bf58316e8d06de976bda095d82b18fd614843e0b 100644 (file)
@@ -219,13 +219,8 @@ void GeomAlgoAPI_SketchBuilder::createFaces(
       aBB.AddArgument(anEdge);
   }
   aBB.Perform();
-#ifdef USE_OCCT_720
   if (aBB.HasErrors())
     return;
-#else
-  if (aBB.ErrorStatus())
-    return;
-#endif
   // Collect faces
   TopTools_ListOfShape anAreas = aBB.Modified(aPlnFace);
   sortFaces(anAreas, theFeatures); // sort faces by the edges in them
index 8e8238aafc3e39d5d1fe70c2aac65f73b403c9da..356c15be15ba47b6bc755a3c6964d22e25fe07d2 100644 (file)
@@ -96,11 +96,13 @@ void GeomAlgoAPI_UnifySameDomain::modified(const std::shared_ptr<GeomAPI_Shape>
   const TopoDS_Shape& aShape = theShape->impl<TopoDS_Shape>();
   const ShapeUpgrade_UnifySameDomain& aUnifyAlgo = this->impl<ShapeUpgrade_UnifySameDomain>();
 
-  TopoDS_Shape aModifiedShape = aUnifyAlgo.Generated(aShape);
+  const TopTools_ListOfShape& aMList = aUnifyAlgo.History()->Generated(aShape);
+  for(TopTools_ListIteratorOfListOfShape aModified(aMList); aModified.More(); aModified.Next()) {
 
-  for(TopExp_Explorer anExp(aModifiedShape, aShape.ShapeType()); anExp.More(); anExp.Next()) {
-    GeomShapePtr aGeomShape(new GeomAPI_Shape());
-    aGeomShape->setImpl(new TopoDS_Shape(anExp.Current()));
-    theHistory.push_back(aGeomShape);
+    for(TopExp_Explorer anExp(aModified.Value(), aShape.ShapeType()); anExp.More(); anExp.Next()) {
+      GeomShapePtr aGeomShape(new GeomAPI_Shape());
+      aGeomShape->setImpl(new TopoDS_Shape(anExp.Current()));
+      theHistory.push_back(aGeomShape);
+    }
   }
 }
index 364834d40408dee94994d04ad16b54d7ba64d637..ed3fd90d45eefaf22266468970a0447c2634afc7 100755 (executable)
@@ -143,10 +143,6 @@ void GEOMAlgo_Splitter::Clear()
 //=======================================================================
 void GEOMAlgo_Splitter::BuildResult(const TopAbs_ShapeEnum theType)
 {
-#ifndef USE_OCCT_720
-  myErrorStatus=0;
-#endif
-  //
   TopAbs_ShapeEnum aType;
   BRep_Builder aBB;
   BOPCol_MapOfShape aM;
index ebc01b3e6bf82f7a6b39bea9b5d2d1dcd23cff39..cd276ffff11b663155369c994233ef047441f50c 100755 (executable)
@@ -146,10 +146,9 @@ bool Model_Document::load(const char* theDirName, const char* theFileName, Docum
   Handle(TDocStd_Document) aLoaded;
   try {
     aStatus = anApp->Open(aPath, aLoaded);
-  } catch (Standard_Failure) {
-    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
+  } catch (Standard_Failure const& anException) {
     Events_InfoMessage("Model_Document",
-        "Exception in opening of document: %1").arg(aFail->GetMessageString()).send();
+        "Exception in opening of document: %1").arg(anException.GetMessageString()).send();
     return false;
   }
   bool isError = aStatus != PCDM_RS_OK;
@@ -284,10 +283,9 @@ bool Model_Document::save(
   PCDM_StoreStatus aStatus;
   try {
     aStatus = anApp->SaveAs(myDoc, aPath);
-  } catch (Standard_Failure) {
-    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
+  } catch (Standard_Failure const& anException) {
     Events_InfoMessage("Model_Document",
-        "Exception in saving of document: %1").arg(aFail->GetMessageString()).send();
+        "Exception in saving of document: %1").arg(anException.GetMessageString()).send();
     if (aWasCurrent.get()) { // return the current feature to the initial position
       setCurrentFeature(aWasCurrent, false);
       aSession->setCheckTransactions(true);
index 7d21ba70bbd0c0f48bd96796340bab4d61cd2235..ce7245fba164afd585ffec1eabb1f85f06ab2123 100644 (file)
@@ -439,8 +439,10 @@ bool checkPythonDump()
   aSession->closeAll();
   // execute the dumped
   PyGILState_STATE gstate = PyGILState_Ensure(); /* acquire python thread */
-  PyObject* PyFileObject = PyFile_FromString("./check_dump.py", "r");
-  PyRun_SimpleFileEx(PyFile_AsFile(PyFileObject), "./check_dump.py", 1);
+  static char aDumpName[] = "./check_dump.py";
+  static char aReadMode[] = "r";
+  PyObject* PyFileObject = PyFile_FromString(aDumpName, aReadMode);
+  PyRun_SimpleFileEx(PyFile_AsFile(PyFileObject), aDumpName, 1);
   PyGILState_Release(gstate); /* release python thread */
 
   // compare with the stored data
index b0dade4b17170d84f0f3343d15f9e5a2f40ae10a..31600e41af8e9f3d22b4de8ca89a0e854c109676 100644 (file)
@@ -52,7 +52,7 @@ public:
   /// \param theStyle a style of presentation
   /// \param theMode a drawing mode
   virtual void HilightWithColor (const Handle(PrsMgr_PresentationManager3d)& aPM,
-    const Handle(Graphic3d_HighlightStyle)& theStyle, const Standard_Integer theMode = 0)
+    const Handle(Prs3d_Drawer)& theStyle, const Standard_Integer theMode = 0)
   {
     Selectable()->HilightOwnerWithColor(aPM, theStyle, this);
   }
index fe20fa5daf04e5159eaa6512e8cc30e30b9ff551..9068342854dc1b546e20c1e1d3ba02b1a1987290 100755 (executable)
@@ -389,7 +389,7 @@ void ModuleBase_ResultPrs::HilightSelected(const Handle(PrsMgr_PresentationManag
 
 //********************************************************************
 void ModuleBase_ResultPrs::HilightOwnerWithColor(const Handle(PrsMgr_PresentationManager3d)& thePM,
-                                                 const Handle(Graphic3d_HighlightStyle)& theStyle,
+                                                 const Handle(Prs3d_Drawer)& theStyle,
                                                  const Handle(SelectMgr_EntityOwner)& theOwner)
 {
   Handle(StdSelect_BRepOwner) aOwner = Handle(StdSelect_BRepOwner)::DownCast(theOwner);
index 0a1f999b7787b9321a9bebc30d836e9725281ff4..367d38232312888cf5c5d2e76df578cac2c79954 100644 (file)
@@ -65,7 +65,7 @@ public:
   //! this selectable object  ( for fast presentation draw )
   Standard_EXPORT virtual void HilightOwnerWithColor(
                                         const Handle(PrsMgr_PresentationManager3d)& thePM,
-                                        const Handle(Graphic3d_HighlightStyle)& theStyle,
+                                        const Handle(Prs3d_Drawer)& theStyle,
                                         const Handle(SelectMgr_EntityOwner)& theOwner);
 
   /// Returns result object
index bd3c855cc0b8628317c957ba05a751613bc25d9b..402e40bd886217928741e54bd877951eb59b811f 100755 (executable)
@@ -1141,6 +1141,7 @@ void setPointBallHighlighting(AIS_Shape* theAIS)
 #ifdef USE_OCCT_720
   // to do: implement ball highlighting, in 7.2.0 this drawer is NULL
 #else
+/*
   if(aDrawer->HasOwnPointAspect()) {
     Handle(Prs3d_PointAspect) aPntAspect = aDrawer->PointAspect();
     if(aPixMap->IsEmpty()) {
@@ -1158,6 +1159,7 @@ void setPointBallHighlighting(AIS_Shape* theAIS)
     aDrawer->SetPointAspect(aPntAspect);
     theAIS->SetHilightAttributes(aDrawer);
   }
+  */
 #endif
 }
 
index 3f7b3a3ad5fc853519475e166c67e8d0d0580151..d4a77c29bf677065a64811a68f862fc44eaeccea 100644 (file)
@@ -156,24 +156,10 @@ Standard_Boolean ModuleBase_ShapeInPlaneFilter::IsOk(
             const Prs3d_DatumParts& aPart = aTrOwner->DatumPart();
             if (aPart >= Prs3d_DP_XAxis && aPart <= Prs3d_DP_ZAxis)
             {
-#ifdef USE_OCCT_720
               gp_Ax2 anAxis = aTrihedron->Component()->Ax2();
               gp_Dir aDir = anAxis.XDirection();
               gp_Lin aLine(aTrihedron->Component()->Location(), aDir);
               return aPlane.Contains(aLine, Precision::Confusion(), Precision::Angular());
-#else
-              Handle(Prs3d_Drawer) aDrawer = aTrihedron->Attributes();
-              Handle(Prs3d_DatumAspect) aDatumAspect = aDrawer->DatumAspect();
-              Handle(Graphic3d_ArrayOfPrimitives) aPrimitives =
-                                                        aDatumAspect->ArrayOfPrimitives(aPart);
-              Standard_Real aX1, anY1, aZ1, aX2, anY2, aZ2;
-              aPrimitives->Vertice(1, aX1, anY1, aZ1);
-              aPrimitives->Vertice(2, aX2, anY2, aZ2);
-              gp_Pnt aPnt1(aX1, anY1, aZ1);
-              gp_Pnt aPnt2(aX2, anY2, aZ2);
-              gp_Lin aLine(aPnt1, gp_Dir(gp_Vec(aPnt1, aPnt2)));
-              return aPlane.Contains(aLine, Precision::Confusion(), Precision::Angular());
-#endif
             }
           }
         }
index cc2ad4b0f090eead63aa3bc8e3837ef7f4bb804c..8049c1385221194d527a75929cd4ecfdefa963e6 100644 (file)
@@ -89,7 +89,7 @@ void PartSet_CenterPrs::HilightSelected(const Handle(PrsMgr_PresentationManager3
 }
 
 void PartSet_CenterPrs::HilightOwnerWithColor(const Handle(PrsMgr_PresentationManager3d)& thePM,
-                                              const Handle(Graphic3d_HighlightStyle)& theStyle,
+                                              const Handle(Prs3d_Drawer)& theStyle,
                                               const Handle(SelectMgr_EntityOwner)& theOwner)
 {
   Handle( Prs3d_Presentation ) aHilightPrs = GetHilightPresentation( thePM );
index 8d60f6466880d2109e953892b368e5ec87c7d6bc..5e9c86b4fff926ab7591c0a4c1ebf9f9e4f001a1 100644 (file)
@@ -65,7 +65,7 @@ public:
   virtual void HilightSelected(const Handle(PrsMgr_PresentationManager3d)& PM,
                                const SelectMgr_SequenceOfOwner& Seq);
   virtual void HilightOwnerWithColor (const Handle(PrsMgr_PresentationManager3d)&,
-                                      const Handle(Graphic3d_HighlightStyle)&,
+                                      const Handle(Prs3d_Drawer)&,
                                       const Handle(SelectMgr_EntityOwner)&);
 
   DEFINE_STANDARD_RTTIEXT(PartSet_CenterPrs, AIS_Point)
index 486138917e31a59fcf6655124d8b1990259f2fd7..9772899836f3d5b4d8e3b3bdf7a767f4d707427e 100644 (file)
@@ -92,8 +92,8 @@ void PartSet_WidgetFeaturePointSelector::updateSelectionModesAndFilters(bool toA
   Handle(AIS_InteractiveContext) aContext =
                             XGUI_Tools::workshop(myWorkshop)->viewer()->AISContext();
   Quantity_Color aColor;
-  Handle(Graphic3d_HighlightStyle) aHStyle = aContext->HighlightStyle();
-  Handle(Graphic3d_HighlightStyle) aSStyle = aContext->SelectionStyle();
+  Handle(Prs3d_Drawer) aHStyle = aContext->HighlightStyle();
+  Handle(Prs3d_Drawer) aSStyle = aContext->SelectionStyle();
   if (toActivate) {
     std::vector<int> aColors;
     aColors = Config_PropManager::color("Visualization", "sketch_entity_color");
index 8d7ea1581f67f9e353e856bedbe4a529db9f3f26..fc2f3e36aa163cd5b35d2dc28d8efb8f4d74b447 100644 (file)
@@ -139,9 +139,6 @@ void SketcherPrs_Coincident::SetColor(const Quantity_NameOfColor aCol)
 void SketcherPrs_Coincident::SetColor(const Quantity_Color &aCol)
 {
   hasOwnColor=Standard_True;
-#ifndef USE_OCCT_720
-  myOwnColor=aCol;
-#endif
 }
 
 void SketcherPrs_Coincident::SetCustomColor(const std::vector<int>& theColor)
index 3f38196864a251e3d999456009772fc5a64bd714..a2e51cbd4fb848d73e2f56d655f6c80571775692 100644 (file)
@@ -99,7 +99,7 @@ public:
 
     // Update selection position only if there is no selected object
     // because it can corrupt selection of other objects
-    if ((myContext->NbCurrents() == 0) && (myContext->NbSelected() == 0))  {
+    if (myContext->NbSelected() == 0)  {
       myContext->MainSelector()->RebuildSensitivesTree(myObj);
       myContext->MainSelector()->RebuildObjectsTree (false);
     }
@@ -243,7 +243,7 @@ void SketcherPrs_SymbolPrs::HilightSelected(const Handle(PrsMgr_PresentationMana
 //*********************************************************************************
 void SketcherPrs_SymbolPrs::HilightOwnerWithColor(
                                   const Handle(PrsMgr_PresentationManager3d)& thePM,
-                                  const Handle(Graphic3d_HighlightStyle)& theStyle,
+                                  const Handle(Prs3d_Drawer)& theStyle,
                                   const Handle(SelectMgr_EntityOwner)& theOwner)
 {
   thePM->Color(this, theStyle);
index 5d28c1dd1a408e7ca059954a817ce4d30ab9753c..669f7a55523ef4cfb5365d56fa8c5e078bd14b52 100644 (file)
@@ -69,7 +69,7 @@ public:
   //! this selectable object  ( for fast presentation draw )
   Standard_EXPORT virtual void HilightOwnerWithColor(
     const Handle(PrsMgr_PresentationManager3d)& thePM,
-    const Handle(Graphic3d_HighlightStyle)& theStyle,
+    const Handle(Prs3d_Drawer)& theStyle,
     const Handle(SelectMgr_EntityOwner)& theOwner);
 
   /// Returns sketcher plane
index 313366bcc66364345b3ea55eec4e846f490db723..34cbc8b5fc5d17ea676a6141d6f542ecb433bc27 100755 (executable)
@@ -1657,7 +1657,7 @@ bool XGUI_Workshop::prepareForDisplay(const std::set<ObjectPtr>& theObjects) con
   int anAnswer = QMessageBox::question(
         desktop(), tr("Show object"),
         tr("'%1'\n are hidden by %2:\nRemove objects from the panel to be displayed?")
-        .arg(aHiddenObjectNames.join(' ,')).arg(facesPanel()->windowTitle()),
+        .arg(aHiddenObjectNames.join(", ")).arg(facesPanel()->windowTitle()),
         QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
 
   bool aToBeDisplayed = anAnswer == QMessageBox::Yes;