Salome HOME
fixed problem where only the first solid was imported from STEP
[modules/shaper.git] / src / Config / Config_FeatureReader.cpp
index d983afb08b123ce2bd783102536785450d6cbffd..2aeaadb7838cfc39249b3bc87e370240f3a9fb72 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2022  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 
 Config_FeatureReader::Config_FeatureReader(const std::string& theXmlFile,
                                            const std::string& theLibraryName,
+                                           const std::string& theDocSection,
                                            const char* theEventGenerated)
     : Config_XMLReader(theXmlFile),
       myLibraryName(theLibraryName),
+      myLibraryDocSection(theDocSection),
       myEventGenerated(theEventGenerated ? theEventGenerated : Config_FeatureMessage::GUI_EVENT()),
       myIsProcessWidgets(theEventGenerated != NULL)
 {
@@ -99,7 +101,7 @@ void Config_FeatureReader::processNode(xmlNodePtr theNode)
           std::string aCaseNodeID = getProperty(aCaseNode, _ID);
           std::string aSwitchNodeID = "";
           const xmlChar* aName = aCaseNode->name;
-          xmlNodePtr aSwitchNode;
+          xmlNodePtr aSwitchNode = 0;
           if (!xmlStrcmp(aName, (const xmlChar *) WDG_SWITCH_CASE)) {
             aSwitchNode = hasParentRecursive(aCaseNode, WDG_SWITCH, NULL);
           }
@@ -176,8 +178,17 @@ void Config_FeatureReader::fillFeature(xmlNodePtr theFeatureNode,
   outFeatureMessage->setInternal(isInternal);
 
   std::string aHelpFile = getProperty(theFeatureNode, HELP_FILE);
-  if (!aHelpFile.empty())
-    outFeatureMessage->setHelpFileName(myLibraryName + "/" + aHelpFile);
+  if (!aHelpFile.empty()) {
+    aHelpFile =
+      (myLibraryDocSection.empty() ? myLibraryName : myLibraryDocSection) + "/" + aHelpFile;
+    outFeatureMessage->setHelpFileName(aHelpFile);
+  }
+
+  bool isHideFaces = getBooleanAttribute(theFeatureNode, HIDEFACES_PANEL, false);
+  outFeatureMessage->setHideFacesPanel(isHideFaces);
+
+  bool isConfirmAbort = getBooleanAttribute(theFeatureNode, ABORT_CONFIRMATION, true);
+  outFeatureMessage->setAbortConfirmation(isConfirmAbort);
 
   //if (isInternal) {
   //  //Internal feature has no visual representation.