Salome HOME
Fix a bug of config file for RedHat 9 - correct binaries distribution path
[tools/install.git] / src / SALOME_XmlHandler.cxx
index 9ea21ed587a86b8bf25a2035426881bb8aa79325..1372b7e77efeecaebd6ca9daeaddb94b14aa77e8 100644 (file)
@@ -1,10 +1,11 @@
 //  File      : SALOME_XmlHandler.cxx
 //  Created   : Thu Dec 18 12:01:00 2002
 //  Author    : Vadim SANDLER
-//  Project   : PAL/SALOME
-//  Module    : InstallWizard
-//  Copyright : 2004 CEA
-//  $Header$ 
+//  Project   : SALOME
+//  Module    : Installation Wizard
+//  Copyright : 2004-2005 CEA
+
+#include "globals.h"
 
 #include "SALOME_XmlHandler.hxx"
 #include "SALOME_ProductsView.hxx"
 
 #include <qlineedit.h>
 
+bool isBoolAttributeSet( const QString& attr ) {
+  return ( attr == "true" || attr == "yes" || attr == "ok" || ( !attr.stripWhiteSpace().isEmpty() && attr.toInt() != 0 ) );
+}
+
 // ================================================================
 /*!
  *  StructureParser::StructureParser
@@ -67,10 +72,8 @@ bool StructureParser::startElement( const QString&        /*namespaceURI*/,
                                     const QString&        qName,
                                     const QXmlAttributes& attributes)
 {
-#ifdef DEBUG
-  cout << qName << endl;
-  cout << attributes.length() << endl;
-#endif
+  ___MESSAGE___( qName );
+  ___MESSAGE___( attributes.length() );
   QCheckListItem* element;
   if (( qName == "config" ) && ( attributes.length() > 0 ) ) {
     QString myVersion, myCaption, myCopyright, myLicense, myOS;
@@ -101,7 +104,7 @@ bool StructureParser::startElement( const QString&        /*namespaceURI*/,
     }
   } 
   else if (( qName == "product" ) && ( attributes.length() > 0 ) && myTree && myWizard ) {
-    if (attributes.value( "disable" ) == "true" )
+    if ( isBoolAttributeSet( attributes.value( "disable" ) ) )
       return true;
     
     QString install = attributes.value( "install" );
@@ -115,6 +118,7 @@ bool StructureParser::startElement( const QString&        /*namespaceURI*/,
     QString descr = QString::null;
     if ( attributes.value( "description" ) != "" )
       descr = attributes.value( "description" ).stripWhiteSpace();
+    bool pickUp = isBoolAttributeSet( attributes.value( "pickupenv" ) );
     myWizard->setDependancies( element, 
                               Dependancies( attributes.value( "name" ), 
                                             deps,
@@ -122,7 +126,8 @@ bool StructureParser::startElement( const QString&        /*namespaceURI*/,
                                             ( diskspace.count() > 1 ? diskspace[1].toInt() : ( diskspace.count() > 0 ? diskspace[0].toInt() : 0 ) ), 
                                             attributes.value( "temporarydiskspace" ).toInt(),
                                             install,
-                                            descr ) );
+                                            descr,
+                                            pickUp ) );
   }
   else if (( qName == "path" ) && ( attributes.length() > 0 ) && myWizard ) {
     if ( myTargetDir )