Salome HOME
PAL8346 improvement: provide two tri-state check boxes on "Products" page of Installa...
authorvsr <vsr@opencascade.com>
Tue, 5 Apr 2005 12:54:43 +0000 (12:54 +0000)
committervsr <vsr@opencascade.com>
Tue, 5 Apr 2005 12:54:43 +0000 (12:54 +0000)
bin/SALOME_InstallWizard
config.xml
config_RedHat8_0.xml
config_RedHat8_0_with_Mesa.xml
config_RedHat9.xml
src/SALOME_InstallWizard.cxx
src/SALOME_InstallWizard.hxx
src/SALOME_XmlHandler.cxx

index ea655ded51899d4ddb16b4423d9454699f44e9a3..c1fa8b396f809dab3744889bac40f13065337df5 100755 (executable)
Binary files a/bin/SALOME_InstallWizard and b/bin/SALOME_InstallWizard differ
index 04ad6080ff9cc7e9f16648aa181e002eff378280..33ebaf6202f1ff05378d0b01d088a09965f10a6e 100644 (file)
           script="graphviz-1.9.sh"/>
   <product name="KERNEL-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform KERNEL module sources"
            install="install sources"
           supported="install sources"
           script="KERNEL_SRC.sh"/>
   <product name="KERNEL-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform KERNEL module"
            install="install binaries"
           supported="install binaries"
           script="KERNEL_BIN.sh"/>
   <product name="GEOM-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform GEOM modules sources"
            install="install sources"
           supported="install sources"
           script="GEOM_SRC.sh"/>
   <product name="GEOM-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform GEOM module"
            install="install binaries"
           supported="install binaries"
           script="GEOM_BIN.sh"/>
   <product name="MED-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform MED module sources"
            install="install sources"
           supported="install sources"
           script="MED_SRC.sh"/>
   <product name="MED-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform MED module"
            install="install binaries"
           supported="install binaries"
           script="MED_BIN.sh"/>
   <product name="SMESH-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform SMESH module sources"
            install="install sources"
           supported="install sources"
           script="SMESH_SRC.sh"/>
   <product name="SMESH-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform SMEHS module"
            install="install binaries"
           supported="install binaries"
           script="SMESH_BIN.sh"/>
   <product name="VISU-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform VISU module sources"
            install="install sources"
           supported="install sources"
           script="VISU_SRC.sh"/>
   <product name="VISU-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform VISU module"
            install="install binaries"
           supported="install binaries"
           script="VISU_BIN.sh"/>
   <product name="SUPERV-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform SUPERV module sources"
            install="install sources"
           supported="install sources"
           script="SUPERV_SRC.sh"/>
   <product name="SUPERV-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform SUPERV module"
            install="install binaries"
           supported="install binaries"
           script="SUPERV_BIN.sh"/>
   <product name="COMPONENT-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform COMPONENT module sources"
            install="install sources"
           supported="install sources"
           script="COMPONENT_SRC.sh"/>
   <product name="COMPONENT-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform COMPONENT module"
            install="install binaries"
           supported="install binaries"
           script="COMPONENT_BIN.sh"/>
   <product name="PYCALCULATOR-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform PYCALCULATOR module sources"
            install="install sources"
           supported="install sources"
           script="PYCALCULATOR_SRC.sh"/>
   <product name="PYCALCULATOR-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform PYCALCULATOR module"
            install="install binaries"
           supported="install binaries"
           script="PYCALCULATOR_BIN.sh"/>
   <product name="NETGENplugin-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform NETGEN meshing algorithm plugin sources"
            install="install sources"
           supported="install sources"
           script="NETGENPLUGIN_SRC.sh"/>
   <product name="NETGENplugin-Bin" 
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform NETGEN meshing algorithm plugin"
            install="install binaries"
           supported="install binaries"
           script="NETGENPLUGIN_BIN.sh"/>
   <product name="GHS3Dplugin-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
            install="install sources"
           supported="install sources"
           script="GHS3DPLUGIN_SRC.sh"/>
   <product name="GHS3Dplugin-Bin" 
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
            install="install binaries"
           supported="install binaries"
           script="GHS3DPLUGIN_BIN.sh"/>
   <product name="Hello-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="Example SALOME C++ module: Hello."
            install="install sources"
           supported="install sources"
           script="HELLO1_SRC.sh"/>
   <product name="PyHello-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="Example SALOME Python module: Hello."
            install="install sources"
           supported="install sources"
index 04ad6080ff9cc7e9f16648aa181e002eff378280..33ebaf6202f1ff05378d0b01d088a09965f10a6e 100644 (file)
           script="graphviz-1.9.sh"/>
   <product name="KERNEL-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform KERNEL module sources"
            install="install sources"
           supported="install sources"
           script="KERNEL_SRC.sh"/>
   <product name="KERNEL-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform KERNEL module"
            install="install binaries"
           supported="install binaries"
           script="KERNEL_BIN.sh"/>
   <product name="GEOM-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform GEOM modules sources"
            install="install sources"
           supported="install sources"
           script="GEOM_SRC.sh"/>
   <product name="GEOM-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform GEOM module"
            install="install binaries"
           supported="install binaries"
           script="GEOM_BIN.sh"/>
   <product name="MED-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform MED module sources"
            install="install sources"
           supported="install sources"
           script="MED_SRC.sh"/>
   <product name="MED-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform MED module"
            install="install binaries"
           supported="install binaries"
           script="MED_BIN.sh"/>
   <product name="SMESH-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform SMESH module sources"
            install="install sources"
           supported="install sources"
           script="SMESH_SRC.sh"/>
   <product name="SMESH-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform SMEHS module"
            install="install binaries"
           supported="install binaries"
           script="SMESH_BIN.sh"/>
   <product name="VISU-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform VISU module sources"
            install="install sources"
           supported="install sources"
           script="VISU_SRC.sh"/>
   <product name="VISU-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform VISU module"
            install="install binaries"
           supported="install binaries"
           script="VISU_BIN.sh"/>
   <product name="SUPERV-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform SUPERV module sources"
            install="install sources"
           supported="install sources"
           script="SUPERV_SRC.sh"/>
   <product name="SUPERV-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform SUPERV module"
            install="install binaries"
           supported="install binaries"
           script="SUPERV_BIN.sh"/>
   <product name="COMPONENT-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform COMPONENT module sources"
            install="install sources"
           supported="install sources"
           script="COMPONENT_SRC.sh"/>
   <product name="COMPONENT-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform COMPONENT module"
            install="install binaries"
           supported="install binaries"
           script="COMPONENT_BIN.sh"/>
   <product name="PYCALCULATOR-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform PYCALCULATOR module sources"
            install="install sources"
           supported="install sources"
           script="PYCALCULATOR_SRC.sh"/>
   <product name="PYCALCULATOR-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform PYCALCULATOR module"
            install="install binaries"
           supported="install binaries"
           script="PYCALCULATOR_BIN.sh"/>
   <product name="NETGENplugin-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform NETGEN meshing algorithm plugin sources"
            install="install sources"
           supported="install sources"
           script="NETGENPLUGIN_SRC.sh"/>
   <product name="NETGENplugin-Bin" 
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform NETGEN meshing algorithm plugin"
            install="install binaries"
           supported="install binaries"
           script="NETGENPLUGIN_BIN.sh"/>
   <product name="GHS3Dplugin-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
            install="install sources"
           supported="install sources"
           script="GHS3DPLUGIN_SRC.sh"/>
   <product name="GHS3Dplugin-Bin" 
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
            install="install binaries"
           supported="install binaries"
           script="GHS3DPLUGIN_BIN.sh"/>
   <product name="Hello-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="Example SALOME C++ module: Hello."
            install="install sources"
           supported="install sources"
           script="HELLO1_SRC.sh"/>
   <product name="PyHello-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="Example SALOME Python module: Hello."
            install="install sources"
           supported="install sources"
index 87582c75e329a6db5975983bce90e057828c713a..8a3e298362a205e1c6cad9b31f2012d99db9ea52 100644 (file)
           script="graphviz-1.9.sh"/>
   <product name="KERNEL-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform KERNEL module sources"
            install="install sources"
           supported="install sources"
           script="KERNEL_SRC.sh"/>
   <product name="KERNEL-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform KERNEL module"
            install="install binaries"
           supported="install binaries"
           script="KERNEL_BIN.sh"/>
   <product name="GEOM-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform GEOM modules sources"
            install="install sources"
           supported="install sources"
           script="GEOM_SRC.sh"/>
   <product name="GEOM-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform GEOM module"
            install="install binaries"
           supported="install binaries"
           script="GEOM_BIN.sh"/>
   <product name="MED-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform MED module sources"
            install="install sources"
           supported="install sources"
           script="MED_SRC.sh"/>
   <product name="MED-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform MED module"
            install="install binaries"
           supported="install binaries"
           script="MED_BIN.sh"/>
   <product name="SMESH-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform SMESH module sources"
            install="install sources"
           supported="install sources"
           script="SMESH_SRC.sh"/>
   <product name="SMESH-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform SMEHS module"
            install="install binaries"
           supported="install binaries"
           script="SMESH_BIN.sh"/>
   <product name="VISU-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform VISU module sources"
            install="install sources"
           supported="install sources"
           script="VISU_SRC.sh"/>
   <product name="VISU-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform VISU module"
            install="install binaries"
           supported="install binaries"
           script="VISU_BIN.sh"/>
   <product name="SUPERV-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform SUPERV module sources"
            install="install sources"
           supported="install sources"
           script="SUPERV_SRC.sh"/>
   <product name="SUPERV-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform SUPERV module"
            install="install binaries"
           supported="install binaries"
           script="SUPERV_BIN.sh"/>
   <product name="COMPONENT-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform COMPONENT module sources"
            install="install sources"
           supported="install sources"
           script="COMPONENT_SRC.sh"/>
   <product name="COMPONENT-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform COMPONENT module"
            install="install binaries"
           supported="install binaries"
           script="COMPONENT_BIN.sh"/>
   <product name="PYCALCULATOR-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform PYCALCULATOR module sources"
            install="install sources"
           supported="install sources"
           script="PYCALCULATOR_SRC.sh"/>
   <product name="PYCALCULATOR-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform PYCALCULATOR module"
            install="install binaries"
           supported="install binaries"
           script="PYCALCULATOR_BIN.sh"/>
   <product name="NETGENplugin-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform NETGEN meshing algorithm plugin sources"
            install="install sources"
           supported="install sources"
           script="NETGENPLUGIN_SRC.sh"/>
   <product name="NETGENplugin-Bin" 
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform NETGEN meshing algorithm plugin"
            install="install binaries"
           supported="install binaries"
           script="NETGENPLUGIN_BIN.sh"/>
   <product name="GHS3Dplugin-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
            install="install sources"
           supported="install sources"
           script="GHS3DPLUGIN_SRC.sh"/>
   <product name="GHS3Dplugin-Bin" 
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
            install="install binaries"
           supported="install binaries"
           script="GHS3DPLUGIN_BIN.sh"/>
   <product name="Hello-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="Example SALOME C++ module: Hello."
            install="install sources"
           supported="install sources"
           script="HELLO1_SRC.sh"/>
   <product name="PyHello-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="Example SALOME Python module: Hello."
            install="install sources"
           supported="install sources"
index b662eeeb683db9e07f0b1dbc3349c39f18d0323f..a683297806c9d027262e2003eafb7d21cbeb4bb7 100755 (executable)
           script="graphviz-1.9.sh"/>
   <product name="KERNEL-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform KERNEL module sources"
            install="install sources"
           supported="install sources"
           script="KERNEL_SRC.sh"/>
   <product name="KERNEL-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform KERNEL module"
            install="install binaries"
           supported="install binaries"
           script="KERNEL_BIN.sh"/>
   <product name="GEOM-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform GEOM modules sources"
            install="install sources"
           supported="install sources"
           script="GEOM_SRC.sh"/>
   <product name="GEOM-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform GEOM module"
            install="install binaries"
           supported="install binaries"
           script="GEOM_BIN.sh"/>
   <product name="MED-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform MED module sources"
            install="install sources"
           supported="install sources"
           script="MED_SRC.sh"/>
   <product name="MED-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform MED module"
            install="install binaries"
           supported="install binaries"
           script="MED_BIN.sh"/>
   <product name="SMESH-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform SMESH module sources"
            install="install sources"
           supported="install sources"
           script="SMESH_SRC.sh"/>
   <product name="SMESH-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform SMEHS module"
            install="install binaries"
           supported="install binaries"
           script="SMESH_BIN.sh"/>
   <product name="VISU-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform VISU module sources"
            install="install sources"
           supported="install sources"
           script="VISU_SRC.sh"/>
   <product name="VISU-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform VISU module"
            install="install binaries"
           supported="install binaries"
           script="VISU_BIN.sh"/>
   <product name="SUPERV-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform SUPERV module sources"
            install="install sources"
           supported="install sources"
           script="SUPERV_SRC.sh"/>
   <product name="SUPERV-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform SUPERV module"
            install="install binaries"
           supported="install binaries"
           script="SUPERV_BIN.sh"/>
   <product name="COMPONENT-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform COMPONENT module sources"
            install="install sources"
           supported="install sources"
           script="COMPONENT_SRC.sh"/>
   <product name="COMPONENT-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform COMPONENT module"
            install="install binaries"
           supported="install binaries"
           script="COMPONENT_BIN.sh"/>
   <product name="PYCALCULATOR-Src"
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform PYCALCULATOR module sources"
            install="install sources"
           supported="install sources"
           script="PYCALCULATOR_SRC.sh"/>
   <product name="PYCALCULATOR-Bin"
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform PYCALCULATOR module"
            install="install binaries"
           supported="install binaries"
           script="PYCALCULATOR_BIN.sh"/>
   <product name="NETGENplugin-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform NETGEN meshing algorithm plugin sources"
            install="install sources"
           supported="install sources"
           script="NETGENPLUGIN_SRC.sh"/>
   <product name="NETGENplugin-Bin" 
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform NETGEN meshing algorithm plugin"
            install="install binaries"
           supported="install binaries"
           script="NETGENPLUGIN_BIN.sh"/>
   <product name="GHS3Dplugin-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
            install="install sources"
           supported="install sources"
           script="GHS3DPLUGIN_SRC.sh"/>
   <product name="GHS3Dplugin-Bin" 
            version="2.2.2" 
+           context="salome binaries" 
            description="Precompiled SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
            install="install binaries"
           supported="install binaries"
           script="GHS3DPLUGIN_BIN.sh"/>
   <product name="Hello-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="Example SALOME C++ module: Hello."
            install="install sources"
           supported="install sources"
           script="HELLO1_SRC.sh"/>
   <product name="PyHello-Src" 
            version="2.2.2" 
+           context="salome sources" 
            description="Example SALOME Python module: Hello."
            install="install sources"
           supported="install sources"
index 87fe009202beb1ffcceed957e8ca8b43a18cae7a..64ac2c11b0e044c90347dfde5ab18f82355d4c74 100644 (file)
@@ -270,6 +270,19 @@ static bool hasSpace( const QString& dir )
   return false;
 }
 
+// ================================================================
+/*!
+ *  QMyCheckBox class : custom check box
+ *  The only goal is to give access to the protected setState() method
+ */
+// ================================================================
+class QMyCheckBox: public QCheckBox
+{
+public:
+  QMyCheckBox( const QString& text, QWidget* parent, const char* name = 0 ) : QCheckBox ( text, parent, name ) {}
+  void setState ( ToggleState s ) { QCheckBox::setState( s ); }
+};
+
 // ================================================================
 /*!
  *  SALOME_InstallWizard::SALOME_InstallWizard
@@ -548,12 +561,23 @@ void SALOME_InstallWizard::setupProductsPage()
   prerequisites->setChecked( true );
   QWhatsThis::add( prerequisites, tr( "Check this if you want prerequisites products to be set on automatically" ) );
   QToolTip::add  ( prerequisites, tr( "Check this if you want prerequisites products to be set on automatically" ) );
-  // <Unselect All> buttons
-  unselectBtn  = new QPushButton( tr( "&Unselect All" ),    moreBox );
+  // <Unselect All> button
+  unselectBtn  = new QPushButton( tr( "&Unselect All" ), moreBox );
   QWhatsThis::add( unselectBtn, tr( "Unselects all products" ) );
   QToolTip::add  ( unselectBtn, tr( "Unselects all products" ) );
+  // <SALOME sources> / <SALOME binaries> tri-state checkboxes
+  selectSrcBtn  = new QMyCheckBox( tr( "SALOME sources" ), moreBox );
+  selectSrcBtn->setTristate( true );
+  QWhatsThis::add( selectSrcBtn, tr( "Selects/unselects SALOME sources" ) );
+  QToolTip::add  ( selectSrcBtn, tr( "Selects/unselects SALOME sources" ) );
+  selectBinBtn  = new QMyCheckBox( tr( "SALOME binaries" ), moreBox );
+  selectBinBtn->setTristate( true );
+  QWhatsThis::add( selectBinBtn, tr( "Selects/unselects SALOME binaries" ) );
+  QToolTip::add  ( selectBinBtn, tr( "Selects/unselects SALOME binaries" ) );
   QVBoxLayout* btnLayout = new QVBoxLayout; btnLayout->setMargin( 0 ); btnLayout->setSpacing( 6 );
   btnLayout->addWidget( unselectBtn );
+  btnLayout->addWidget( selectSrcBtn );
+  btnLayout->addWidget( selectBinBtn );
   // layouting advancet mode widgets
   moreBoxLayout->addMultiCellWidget( tempLab,      0, 0, 0, 2 );
   moreBoxLayout->addMultiCellWidget( tempFolder,   1, 1, 0, 1 );
@@ -599,6 +623,10 @@ void SALOME_InstallWizard::setupProductsPage()
   connect( productsView, SIGNAL( itemToggled( QCheckListItem* ) ), 
                                               this, SLOT( onItemToggled( QCheckListItem* ) ) );
   connect( unselectBtn,  SIGNAL( clicked() ), this, SLOT( onProdBtn() ) );
+  connect( selectSrcBtn, SIGNAL( stateChanged(int) ), 
+                                             this, SLOT( onProdBtn() ) );
+  connect( selectBinBtn, SIGNAL( stateChanged(int) ), 
+                                             this, SLOT( onProdBtn() ) );
   // connecting signals
   connect( targetFolder, SIGNAL( textChanged( const QString& ) ),
                                               this, SLOT( directoryChanged( const QString& ) ) );
@@ -1134,6 +1162,29 @@ void SALOME_InstallWizard::checkProductPage()
   // update required size information
   requiredSize->setText( QString::number( tots )  + " Kb");
   requiredTemp->setText( QString::number( temps ) + " Kb");
+  
+  // update <SALOME sources>, <SALOME binaries> check boxes state
+  int totSrc = 0, selSrc = 0;
+  int totBin = 0, selBin = 0;
+  MapProducts::Iterator itProd;
+  for ( itProd = productsMap.begin(); itProd != productsMap.end(); ++itProd ) {
+    if ( itProd.data().getContext() == "salome sources" ) {
+      totSrc++;
+      if ( productsView->isSources( itProd.key() ) )
+       selSrc++;
+    }
+    if ( itProd.data().getContext() == "salome binaries" ) {
+      totBin++;
+      if ( productsView->isBinaries( itProd.key() ) )
+       selBin++;
+    }
+  }
+  selectSrcBtn->blockSignals( true );
+  selectBinBtn->blockSignals( true );
+  selectSrcBtn->setState( selSrc == 0 ? QButton::Off : ( selSrc == totSrc ? QButton::On : QButton::NoChange  ) );
+  selectBinBtn->setState( selBin == 0 ? QButton::Off : ( selBin == totBin ? QButton::On : QButton::NoChange  ) );
+  selectSrcBtn->blockSignals( false );
+  selectBinBtn->blockSignals( false );
 
   // enable/disable "Next" button
   setNextEnabled( productsPage, isAnyProductSelected && isTargetDirValid && isTempDirValid );
@@ -1805,6 +1856,8 @@ void SALOME_InstallWizard::onProdBtn()
 {
   const QObject* snd = sender();
   productsView->blockSignals( true );
+  selectSrcBtn->blockSignals( true );
+  selectBinBtn->blockSignals( true );
   if ( snd == unselectBtn ) {
     QCheckListItem* item = (QCheckListItem*)( productsView->firstChild() );
     while( item ) {
@@ -1812,6 +1865,36 @@ void SALOME_InstallWizard::onProdBtn()
       item = (QCheckListItem*)( item->nextSibling() );
     }
   }
+  else if ( snd == selectSrcBtn )  {
+    QMyCheckBox* checkBox = ( QMyCheckBox* )snd;
+    if ( checkBox->state() == QButton::NoChange )
+      checkBox->setState( QButton::On );
+    MapProducts::Iterator itProd;
+    for ( itProd = productsMap.begin(); itProd != productsMap.end(); ++itProd ) {
+      if ( itProd.data().getContext() == "salome sources" ) {
+       if ( checkBox->state() == QButton::Off )
+         productsView->setNone( itProd.key() );
+       else
+         productsView->setSources( itProd.key() );
+      }
+    }
+  }
+  else if ( snd == selectBinBtn )  {
+    QMyCheckBox* checkBox = ( QMyCheckBox* )snd;
+    if ( checkBox->state() == QButton::NoChange )
+      checkBox->setState( QButton::On );
+    MapProducts::Iterator itProd;
+    for ( itProd = productsMap.begin(); itProd != productsMap.end(); ++itProd ) {
+      if ( itProd.data().getContext() == "salome binaries" ) {
+       if ( checkBox->state() == QButton::Off )
+         productsView->setNone( itProd.key() );
+       else
+         productsView->setBinaries( itProd.key() );
+      }
+    }
+  }
+  selectSrcBtn->blockSignals( false );
+  selectBinBtn->blockSignals( false );
   productsView->blockSignals( false );
   onSelectionChanged();
   checkProductPage();
index 5f38c9f8e74d04c93b6f841d336e5a98ada52dc5..551e43c20fb513246462b9a7483854f758b5796b 100644 (file)
@@ -36,6 +36,7 @@ class Dependancies
                 const long         tempsize, 
                 const QString&     def = QString::null,
                 const QString&     descr = QString::null,
+                const QString&     ctx = QString::null,
                 bool               pickup = false )
     : smbName( name ), 
       dependsOn( depend ), 
@@ -44,6 +45,7 @@ class Dependancies
       sizeTemp( tempsize ),
       defaultMode( def ),
       description( descr ),
+      context( ctx ),
       pickupEnv( pickup ) {}
 
   // gets symbolic name
@@ -56,6 +58,8 @@ class Dependancies
   long        getTempSize() const     { return sizeTemp;   }
   // gets product's description
   QString     getDescription() const  { return description; }
+  // gets product's context
+  QString     getContext() const      { return context; }
   // gets default mode
   QString     getDefault() const      { return defaultMode; }
   // returns true if this product needs to pick-up environment
@@ -69,6 +73,7 @@ class Dependancies
   long        sizeTemp;         // disk space for temporary files required
   QString     defaultMode;      // default installation mode
   QString     description;      // product's description
+  QString     context;          // product's context (salome sources, binaries or prerequisite)
   bool        pickupEnv;        // "Pick-up environment" flag
 };
 
@@ -82,7 +87,7 @@ class QTextBrowser;
 class QProcess;
 class QCheckBox;
 class QSplitter;
-
+class QMyCheckBox;
 class QProcessThread;
 class ProductsView;
 class ProgressView;
@@ -205,7 +210,7 @@ class SALOME_InstallWizard: public InstallWizard
   void onSelectionChanged();
   // called when user checks/unchecks any product item
   void onItemToggled( QCheckListItem* );
-  // <Select Sources>, <Select Binaries>, <Unselect All> buttons slot
+  // <SALOME sources>, <SALOME binaries>, <Unselect All> buttons slot
   void onProdBtn();
   // <More...> button slot
   void onMoreBtn();
@@ -258,8 +263,8 @@ class SALOME_InstallWizard: public InstallWizard
   ProductsView* productsView;   // products list view
   QTextBrowser* productsInfo;   // products info box
   QCheckBox*    prerequisites;  // <Auto check prerequisites products> checkbox
-  QPushButton*  selectSrcBtn;   // <Select Sources> button - NOT USED CURRENTLY
-  QPushButton*  selectBinBtn;   // <Select Binaries> button - NOT USED CURRENTLY
+  QMyCheckBox*  selectSrcBtn;   // <SALOME sources> check box 
+  QMyCheckBox*  selectBinBtn;   // <SALOME binaries> check box 
   QPushButton*  unselectBtn;    // <Unselect All> button
   // --> prestart page
   QWidget*      prestartPage;   // page itself
index 1372b7e77efeecaebd6ca9daeaddb94b14aa77e8..0be7084a7e36bc7a5cf33ae895733bad0b81b242 100644 (file)
@@ -118,6 +118,9 @@ bool StructureParser::startElement( const QString&        /*namespaceURI*/,
     QString descr = QString::null;
     if ( attributes.value( "description" ) != "" )
       descr = attributes.value( "description" ).stripWhiteSpace();
+    QString ctx = QString::null;
+    if ( attributes.value( "context" ) != "" )
+      ctx = attributes.value( "context" ).stripWhiteSpace().lower();
     bool pickUp = isBoolAttributeSet( attributes.value( "pickupenv" ) );
     myWizard->setDependancies( element, 
                               Dependancies( attributes.value( "name" ), 
@@ -127,6 +130,7 @@ bool StructureParser::startElement( const QString&        /*namespaceURI*/,
                                             attributes.value( "temporarydiskspace" ).toInt(),
                                             install,
                                             descr,
+                                            ctx,
                                             pickUp ) );
   }
   else if (( qName == "path" ) && ( attributes.length() > 0 ) && myWizard ) {