Salome HOME
updated copyright message
[modules/shaper.git] / src / Config / Config_FeatureReader.cpp
index 719dd5eb136c5affbf1b8c74fb20d4dab2ab7649..0639f8af389a48465834042e820b0e8917f9a518 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023  CEA, EDF
 //
 // 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);
           }
@@ -174,20 +176,34 @@ void Config_FeatureReader::fillFeature(xmlNodePtr theFeatureNode,
 
   bool isInternal = getBooleanAttribute(theFeatureNode, ATTR_INTERNAL, false);
   outFeatureMessage->setInternal(isInternal);
-  if (isInternal) {
-    //Internal feature has no visual representation.
-    return;
+
+  std::string aHelpFile = getProperty(theFeatureNode, HELP_FILE);
+  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.
+  //  return;
+  //}
+
   std::string aText = Config_Translator::translate(anId, getProperty(theFeatureNode, FEATURE_TEXT));
   outFeatureMessage->setText(aText);
-  std::string aToolTip = Config_Translator::translate(anId,
-                                                      getProperty(theFeatureNode, FEATURE_TOOLTIP));
+  bool isTitleInToolbar = getBooleanAttribute(theFeatureNode, FEATURE_TITLE_IN_TOOLBAR, true);
+  outFeatureMessage->setTitleInToolbar(isTitleInToolbar);
+  std::string aToolTip = Config_Translator::translate(
+    anId, getProperty(theFeatureNode, FEATURE_TOOLTIP));
+  outFeatureMessage->setTooltip(aToolTip);
   outFeatureMessage->setIcon(getProperty(theFeatureNode, FEATURE_ICON));
   outFeatureMessage->setKeysequence(getProperty(theFeatureNode, FEATURE_KEYSEQUENCE));
-  std::string aHelpFile = getProperty(theFeatureNode, HELP_FILE);
-  if (!aHelpFile.empty())
-    outFeatureMessage->setHelpFileName(myLibraryName + "/" + aHelpFile);
 
   std::string aGroupName = restoreAttribute(NODE_GROUP, _ID);
   std::string aWBNName = restoreAttribute(NODE_WORKBENCH, _ID);