Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_Preferences_ScalarBarDlg.cxx
index b17a523ebf13201b94c125bbb9947ae3da79ca93..a6d44e57a2c9ccb6c1b3e83add38bc754a5d7e99 100644 (file)
@@ -1,6 +1,6 @@
-//  SMESH SMESHGUI : GUI for SMESH component
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
 //  This library is free software; you can redistribute it and/or
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+// SMESH SMESHGUI : GUI for SMESH component
+// File   : SMESHGUI_Preferences_ScalarBarDlg.cxx
+// Author : Nicolas REJNERI, Open CASCADE S.A.S.
+// SMESH includes
 //
-//
-//  File   : SMESHGUI_Preferences_ScalarBarDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
 #include "SMESHGUI_Preferences_ScalarBarDlg.h"
 
 #include "SMESHGUI.h"
 #include "SMESHGUI_VTKUtils.h"
 #include "SMESHGUI_Utils.h"
 
-#include "SMESH_Actor.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-
-#include "LightApp_SelectionMgr.h"
-#include "SALOME_ListIO.hxx"
-
-#include <QtxDblSpinBox.h>
-
-#include <qbuttongroup.h>
-#include <qcheckbox.h>
-#include <qcombobox.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qtoolbutton.h>
-#include <qradiobutton.h>
-#include <qspinbox.h>
-#include <qlayout.h>
-#include <qvalidator.h>
-#include <qcolordialog.h>
-
+#include <SMESH_Actor.h>
+
+// SALOME GUI includes
+#include <SUIT_Desktop.h>
+#include <SUIT_ResourceMgr.h>
+#include <SUIT_Session.h>
+#include <SUIT_MessageBox.h>
+
+#include <LightApp_Application.h>
+#include <LightApp_SelectionMgr.h>
+#include <SALOME_ListIO.hxx>
+
+#include <QtxDoubleSpinBox.h>
+#include <QtxColorButton.h>
+
+// Qt includes
+#include <QButtonGroup>
+#include <QCheckBox>
+#include <QComboBox>
+#include <QGroupBox>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QRadioButton>
+#include <QSpinBox>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QGridLayout>
+#include <QDoubleValidator>
+
+// VTK includes
 #include <vtkTextProperty.h>
 #include <vtkScalarBarActor.h>
 #include <vtkLookupTable.h>
@@ -64,8 +69,6 @@
 #define MARGIN_SIZE   11
 #define SPACING_SIZE   6
 
-using namespace std;
-
 // Only one instance is allowed
 SMESHGUI_Preferences_ScalarBarDlg* SMESHGUI_Preferences_ScalarBarDlg::myDlg = 0;
 
@@ -79,30 +82,15 @@ SMESHGUI_Preferences_ScalarBarDlg* SMESHGUI_Preferences_ScalarBarDlg::myDlg = 0;
 void SMESHGUI_Preferences_ScalarBarDlg::ScalarBarProperties( SMESHGUI* theModule )
 {
   if (!myDlg) {
-    myDlg = new SMESHGUI_Preferences_ScalarBarDlg( theModule, true);
+    myDlg = new SMESHGUI_Preferences_ScalarBarDlg( theModule );
     myDlg->show();
   } else {
     myDlg->show();
-    myDlg->setActiveWindow();
     myDlg->raise();
-    myDlg->setFocus();
+    myDlg->activateWindow();
   }
 }
 
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::ScalarBarPreferences
- *
- *  Opens "Scalar Bar Preferences" dialog box
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::ScalarBarPreferences( SMESHGUI* theModule )
-{
-  SMESHGUI_Preferences_ScalarBarDlg* aDlg =
-    new SMESHGUI_Preferences_ScalarBarDlg( theModule, false);
-  aDlg->exec();
-}
-
 //=================================================================================================
 /*!
  *  SMESHGUI_Preferences_ScalarBarDlg::SMESHGUI_Preferences_ScalarBarDlg
@@ -110,11 +98,10 @@ void SMESHGUI_Preferences_ScalarBarDlg::ScalarBarPreferences( SMESHGUI* theModul
  *  Constructor
  */
 //=================================================================================================
-SMESHGUI_Preferences_ScalarBarDlg::SMESHGUI_Preferences_ScalarBarDlg( SMESHGUI* theModule, bool property, bool modal )
-     : QDialog( SMESH::GetDesktop( theModule ), 0, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | WDestructiveClose ),
-       mySMESHGUI( theModule ),
-       mySelectionMgr( property ? SMESH::GetSelectionMgr( theModule ) : 0 )
+SMESHGUI_Preferences_ScalarBarDlg::SMESHGUI_Preferences_ScalarBarDlg( SMESHGUI* theModule )
+  : QDialog( SMESH::GetDesktop( theModule ) ),
+    mySMESHGUI( theModule ),
+    mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
 {
   DEF_VER_X = 0.01;
   DEF_VER_Y = 0.10;
@@ -124,319 +111,276 @@ SMESHGUI_Preferences_ScalarBarDlg::SMESHGUI_Preferences_ScalarBarDlg( SMESHGUI*
   DEF_HOR_Y = 0.01;
   DEF_HOR_H = 0.12;
   DEF_HOR_W = 0.60;
-  setName("SMESHGUI_Preferences_ScalarBarDlg");
-  setCaption( property ? tr("SMESH_PROPERTIES_SCALARBAR") : tr("SMESH_PREFERENCES_SCALARBAR"));
-  setSizeGripEnabled(TRUE);
+
+  setModal( false );
+  setAttribute( Qt::WA_DeleteOnClose, true );
+  setWindowTitle( tr("SMESH_PROPERTIES_SCALARBAR") );
+  setSizeGripEnabled(true);
 
   myActor = 0;
 
   /******************************************************************************/
   // Top layout
-  QGridLayout* aTopLayout = new QGridLayout( this );
+  QVBoxLayout* aTopLayout = new QVBoxLayout( this );
   aTopLayout->setSpacing( SPACING_SIZE ); aTopLayout->setMargin( MARGIN_SIZE );
-  int aRow = 0;
 
   /******************************************************************************/
   // Scalar range
-  if ( mySelectionMgr ) {
-    myRangeGrp = new QGroupBox ( tr( "SMESH_RANGE_SCALARBAR" ), this, "myRangeGrp" );
-    myRangeGrp->setColumnLayout( 0, Qt::Vertical );
-    myRangeGrp->layout()->setSpacing( 0 ); myRangeGrp->layout()->setMargin( 0 );
-    QGridLayout* myRangeGrpLayout = new QGridLayout( myRangeGrp->layout() );
-    myRangeGrpLayout->setAlignment( Qt::AlignTop );
-    myRangeGrpLayout->setSpacing( SPACING_SIZE ); myRangeGrpLayout->setMargin( MARGIN_SIZE );
-
-    myMinEdit = new QLineEdit( myRangeGrp, "myMinEdit" );
-    myMinEdit->setMinimumWidth( MINIMUM_WIDTH );
-    myMinEdit->setValidator( new QDoubleValidator( this ) );
-
-    myMaxEdit = new QLineEdit( myRangeGrp, "myMaxEdit" );
-    myMaxEdit->setMinimumWidth( MINIMUM_WIDTH );
-    myMaxEdit->setValidator( new QDoubleValidator( this ) );
-
-    myRangeGrpLayout->addWidget( new QLabel( tr( "SMESH_RANGE_MIN" ), myRangeGrp, "myMinLab" ), 0, 0 );
-    myRangeGrpLayout->addWidget( myMinEdit, 0, 1 );
-    myRangeGrpLayout->addWidget( new QLabel( tr( "SMESH_RANGE_MAX" ), myRangeGrp, "myMaxLab" ), 0, 2 );
-    myRangeGrpLayout->addWidget( myMaxEdit, 0, 3 );
-
-    aTopLayout->addWidget( myRangeGrp, aRow, 0 );
-    aRow++;
-  }
+  myRangeGrp = new QGroupBox ( tr( "SMESH_RANGE_SCALARBAR" ), this );
+  QHBoxLayout* myRangeGrpLayout = new QHBoxLayout( myRangeGrp );
+  myRangeGrpLayout->setSpacing( SPACING_SIZE ); myRangeGrpLayout->setMargin( MARGIN_SIZE );
+  
+  myMinEdit = new QLineEdit( myRangeGrp );
+  myMinEdit->setMinimumWidth( MINIMUM_WIDTH );
+  myMinEdit->setValidator( new QDoubleValidator( this ) );
+  
+  myMaxEdit = new QLineEdit( myRangeGrp );
+  myMaxEdit->setMinimumWidth( MINIMUM_WIDTH );
+  myMaxEdit->setValidator( new QDoubleValidator( this ) );
+  
+  myRangeGrpLayout->addWidget( new QLabel( tr( "SMESH_RANGE_MIN" ), myRangeGrp ) );
+  myRangeGrpLayout->addWidget( myMinEdit );
+  myRangeGrpLayout->addWidget( new QLabel( tr( "SMESH_RANGE_MAX" ), myRangeGrp ) );
+  myRangeGrpLayout->addWidget( myMaxEdit );
+  
+  aTopLayout->addWidget( myRangeGrp );
 
   /******************************************************************************/
   // Text properties
-  myFontGrp = new QGroupBox ( tr( "SMESH_FONT_SCALARBAR" ), this, "myFontGrp" );
-  myFontGrp->setColumnLayout( 0, Qt::Vertical );
-  myFontGrp->layout()->setSpacing( 0 ); myFontGrp->layout()->setMargin( 0 );
-  QGridLayout* myFontGrpLayout = new QGridLayout( myFontGrp->layout() );
-  myFontGrpLayout->setAlignment( Qt::AlignTop );
+  myFontGrp = new QGroupBox ( tr( "SMESH_FONT_SCALARBAR" ), this  );
+  QGridLayout* myFontGrpLayout = new QGridLayout( myFontGrp );
   myFontGrpLayout->setSpacing( SPACING_SIZE ); myFontGrpLayout->setMargin( MARGIN_SIZE );
 
-  myTitleColorBtn = new QToolButton( myFontGrp, "myTitleColorBtn" );
-  myTitleColorBtn->setMinimumWidth( 20 );
+  myTitleColorBtn = new QtxColorButton( myFontGrp  );
 
-  myTitleFontCombo = new QComboBox( false, myFontGrp, "myTitleFontCombo" );
+  myTitleFontCombo = new QComboBox( myFontGrp );
   myTitleFontCombo->setMinimumWidth( MINIMUM_WIDTH );
   myTitleFontCombo->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-  myTitleFontCombo->insertItem( tr( "SMESH_FONT_ARIAL" ) );
-  myTitleFontCombo->insertItem( tr( "SMESH_FONT_COURIER" ) );
-  myTitleFontCombo->insertItem( tr( "SMESH_FONT_TIMES" ) );
+  myTitleFontCombo->addItem( tr( "SMESH_FONT_ARIAL" ) );
+  myTitleFontCombo->addItem( tr( "SMESH_FONT_COURIER" ) );
+  myTitleFontCombo->addItem( tr( "SMESH_FONT_TIMES" ) );
 
-  myTitleBoldCheck   = new QCheckBox( tr( "SMESH_FONT_BOLD" ),   myFontGrp, "myTitleBoldCheck" );
-  myTitleItalicCheck = new QCheckBox( tr( "SMESH_FONT_ITALIC" ), myFontGrp, "myTitleItalicCheck" );
-  myTitleShadowCheck = new QCheckBox( tr( "SMESH_FONT_SHADOW" ), myFontGrp, "myTitleShadowCheck" );
+  myTitleBoldCheck   = new QCheckBox( tr( "SMESH_FONT_BOLD" ),   myFontGrp );
+  myTitleItalicCheck = new QCheckBox( tr( "SMESH_FONT_ITALIC" ), myFontGrp );
+  myTitleShadowCheck = new QCheckBox( tr( "SMESH_FONT_SHADOW" ), myFontGrp );
 
-  myLabelsColorBtn = new QToolButton( myFontGrp, "myLabelsColorBtn" );
-  myLabelsColorBtn->setMinimumWidth( 20 );
+  myLabelsColorBtn = new QtxColorButton( myFontGrp );
 
-  myLabelsFontCombo = new QComboBox( false, myFontGrp, "myLabelsFontCombo" );
+  myLabelsFontCombo = new QComboBox( myFontGrp );
   myLabelsFontCombo->setMinimumWidth( MINIMUM_WIDTH );
   myLabelsFontCombo->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-  myLabelsFontCombo->insertItem( tr( "SMESH_FONT_ARIAL" ) );
-  myLabelsFontCombo->insertItem( tr( "SMESH_FONT_COURIER" ) );
-  myLabelsFontCombo->insertItem( tr( "SMESH_FONT_TIMES" ) );
+  myLabelsFontCombo->addItem( tr( "SMESH_FONT_ARIAL" ) );
+  myLabelsFontCombo->addItem( tr( "SMESH_FONT_COURIER" ) );
+  myLabelsFontCombo->addItem( tr( "SMESH_FONT_TIMES" ) );
 
-  myLabelsBoldCheck   = new QCheckBox( tr( "SMESH_FONT_BOLD" ),   myFontGrp, "myLabelsBoldCheck" );
-  myLabelsItalicCheck = new QCheckBox( tr( "SMESH_FONT_ITALIC" ), myFontGrp, "myLabelsItalicCheck" );
-  myLabelsShadowCheck = new QCheckBox( tr( "SMESH_FONT_SHADOW" ), myFontGrp, "myLabelsShadowCheck" );
+  myLabelsBoldCheck   = new QCheckBox( tr( "SMESH_FONT_BOLD" ),   myFontGrp );
+  myLabelsItalicCheck = new QCheckBox( tr( "SMESH_FONT_ITALIC" ), myFontGrp );
+  myLabelsShadowCheck = new QCheckBox( tr( "SMESH_FONT_SHADOW" ), myFontGrp );
 
-  myFontGrpLayout->addWidget( new QLabel( tr( "SMESH_TITLE" ), myFontGrp, "myFontTitleLab" ), 0, 0 );
+  myFontGrpLayout->addWidget( new QLabel( tr( "SMESH_TITLE" ), myFontGrp ), 0, 0 );
   myFontGrpLayout->addWidget( myTitleColorBtn,    0, 1 );
   myFontGrpLayout->addWidget( myTitleFontCombo,   0, 2 );
   myFontGrpLayout->addWidget( myTitleBoldCheck,   0, 3 );
   myFontGrpLayout->addWidget( myTitleItalicCheck, 0, 4 );
   myFontGrpLayout->addWidget( myTitleShadowCheck, 0, 5 );
 
-  myFontGrpLayout->addWidget( new QLabel( tr( "SMESH_LABELS" ), myFontGrp, "myFontLabelsLab" ), 1, 0 );
+  myFontGrpLayout->addWidget( new QLabel( tr( "SMESH_LABELS" ), myFontGrp ), 1, 0 );
   myFontGrpLayout->addWidget( myLabelsColorBtn,    1, 1 );
   myFontGrpLayout->addWidget( myLabelsFontCombo,   1, 2 );
   myFontGrpLayout->addWidget( myLabelsBoldCheck,   1, 3 );
   myFontGrpLayout->addWidget( myLabelsItalicCheck, 1, 4 );
   myFontGrpLayout->addWidget( myLabelsShadowCheck, 1, 5 );
 
-  aTopLayout->addWidget( myFontGrp, aRow, 0 );
-  aRow++;
+  aTopLayout->addWidget( myFontGrp );
 
   /******************************************************************************/
   // Labels & Colors
-  myLabColorGrp = new QGroupBox ( tr( "SMESH_LABELS_COLORS_SCALARBAR" ), this, "myLabColorGrp" );
-  myLabColorGrp->setColumnLayout( 0, Qt::Vertical );
-  myLabColorGrp->layout()->setSpacing( 0 ); myLabColorGrp->layout()->setMargin( 0 );
-  QGridLayout* myLabColorGrpLayout = new QGridLayout( myLabColorGrp->layout() );
-  myLabColorGrpLayout->setAlignment( Qt::AlignTop );
+  myLabColorGrp = new QGroupBox ( tr( "SMESH_LABELS_COLORS_SCALARBAR" ), this );
+  QHBoxLayout* myLabColorGrpLayout = new QHBoxLayout( myLabColorGrp );
   myLabColorGrpLayout->setSpacing( SPACING_SIZE ); myLabColorGrpLayout->setMargin( MARGIN_SIZE );
 
-  myColorsSpin = new QSpinBox( 2, 256, 1, myLabColorGrp, "myColorsSpin" );
+  myColorsSpin = new QSpinBox( myLabColorGrp );
+  myColorsSpin->setRange( 2, 256 );
+  myColorsSpin->setSingleStep( 1 );
   myColorsSpin->setMinimumWidth( MINIMUM_WIDTH );
   myColorsSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 
-  myLabelsSpin = new QSpinBox( 2, 65, 1, myLabColorGrp, "myLabelsSpin" );
+  myLabelsSpin = new QSpinBox( myLabColorGrp );
+  myLabelsSpin->setRange( 2, 65 );
+  myLabelsSpin->setSingleStep( 1 );
   myLabelsSpin->setMinimumWidth( MINIMUM_WIDTH );
   myLabelsSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 
-  myLabColorGrpLayout->addWidget( new QLabel( tr( "SMESH_NUMBEROFCOLORS" ), myLabColorGrp, "myNbColorLab" ), 0, 0 );
-  myLabColorGrpLayout->addWidget( myColorsSpin, 0, 1 );
-  myLabColorGrpLayout->addWidget( new QLabel( tr( "SMESH_NUMBEROFLABELS" ), myLabColorGrp, "myNbLabsLab" ), 0, 2 );
-  myLabColorGrpLayout->addWidget( myLabelsSpin, 0, 3 );
+  myLabColorGrpLayout->addWidget( new QLabel( tr( "SMESH_NUMBEROFCOLORS" ), myLabColorGrp ) );
+  myLabColorGrpLayout->addWidget( myColorsSpin );
+  myLabColorGrpLayout->addWidget( new QLabel( tr( "SMESH_NUMBEROFLABELS" ), myLabColorGrp ) );
+  myLabColorGrpLayout->addWidget( myLabelsSpin );
 
-  aTopLayout->addWidget( myLabColorGrp, aRow, 0 );
-  aRow++;
+  aTopLayout->addWidget( myLabColorGrp );
 
   /******************************************************************************/
   // Orientation
-  myOrientationGrp = new QButtonGroup ( tr( "SMESH_ORIENTATION" ), this, "myOrientationGrp" );
-  myOrientationGrp->setColumnLayout( 0, Qt::Vertical );
-  myOrientationGrp->layout()->setSpacing( 0 ); myOrientationGrp->layout()->setMargin( 0 );
-  QGridLayout* myOrientationGrpLayout = new QGridLayout( myOrientationGrp->layout() );
-  myOrientationGrpLayout->setAlignment( Qt::AlignTop );
+  myOrientationGrp = new QGroupBox ( tr( "SMESH_ORIENTATION" ), this );
+  QButtonGroup* aOrientationGrp = new QButtonGroup( this );
+  QHBoxLayout* myOrientationGrpLayout = new QHBoxLayout( myOrientationGrp );
   myOrientationGrpLayout->setSpacing( SPACING_SIZE ); myOrientationGrpLayout->setMargin( MARGIN_SIZE );
 
-  myVertRadioBtn  = new QRadioButton( tr( "SMESH_VERTICAL" ),   myOrientationGrp, "myVertRadioBtn" );
-  myHorizRadioBtn = new QRadioButton( tr( "SMESH_HORIZONTAL" ), myOrientationGrp, "myHorizRadioBtn" );
+  myVertRadioBtn  = new QRadioButton( tr( "SMESH_VERTICAL" ),   myOrientationGrp );
+  myHorizRadioBtn = new QRadioButton( tr( "SMESH_HORIZONTAL" ), myOrientationGrp );
   myVertRadioBtn->setChecked( true );
 
-  myOrientationGrpLayout->addWidget( myVertRadioBtn,  0, 0 );
-  myOrientationGrpLayout->addWidget( myHorizRadioBtn, 0, 1 );
+  myOrientationGrpLayout->addWidget( myVertRadioBtn );
+  myOrientationGrpLayout->addWidget( myHorizRadioBtn );
+  aOrientationGrp->addButton(myVertRadioBtn);
+  aOrientationGrp->addButton(myHorizRadioBtn);
 
-  aTopLayout->addWidget( myOrientationGrp, aRow, 0 );
-  aRow++;
+  aTopLayout->addWidget( myOrientationGrp );
 
   /******************************************************************************/
   // Position & Size
-  myOriginDimGrp = new QGroupBox (tr("SMESH_POSITION_SIZE_SCALARBAR"), this, "myOriginDimGrp");
-  myOriginDimGrp->setColumnLayout(0, Qt::Vertical);
-  myOriginDimGrp->layout()->setSpacing( 0 ); myOriginDimGrp->layout()->setMargin( 0 );
-  QGridLayout* myOriginDimGrpLayout = new QGridLayout( myOriginDimGrp->layout() );
-  myOriginDimGrpLayout->setAlignment( Qt::AlignTop );
+  myOriginDimGrp = new QGroupBox ( tr("SMESH_POSITION_SIZE_SCALARBAR"), this );
+  QGridLayout* myOriginDimGrpLayout = new QGridLayout( myOriginDimGrp );
   myOriginDimGrpLayout->setSpacing( SPACING_SIZE ); myOriginDimGrpLayout->setMargin( MARGIN_SIZE );
 
-  myXSpin = new QtxDblSpinBox (0.0, 1.0, 0.1, myOriginDimGrp);
+  myXSpin = new QtxDoubleSpinBox (0.0, 1.0, 0.1, myOriginDimGrp);
   myXSpin->setMinimumWidth( MINIMUM_WIDTH );
   myXSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 
-  myYSpin = new QtxDblSpinBox(0.0, 1.0, 0.1, myOriginDimGrp);
+  myYSpin = new QtxDoubleSpinBox(0.0, 1.0, 0.1, myOriginDimGrp);
   myYSpin->setMinimumWidth( MINIMUM_WIDTH );
   myYSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 
-  myWidthSpin = new QtxDblSpinBox(0.0, 1.0, 0.1, myOriginDimGrp);
+  myWidthSpin = new QtxDoubleSpinBox(0.0, 1.0, 0.1, myOriginDimGrp);
   myWidthSpin->setMinimumWidth( MINIMUM_WIDTH );
   myWidthSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 
-  myHeightSpin = new QtxDblSpinBox(0.0, 1.0, 0.1, myOriginDimGrp);
+  myHeightSpin = new QtxDoubleSpinBox(0.0, 1.0, 0.1, myOriginDimGrp);
   myHeightSpin->setMinimumWidth( MINIMUM_WIDTH );
   myHeightSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 
-  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_X_SCALARBAR" ), myOriginDimGrp, "myXLab" ), 0, 0 );
+  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_X_SCALARBAR" ), myOriginDimGrp ), 0, 0 );
   myOriginDimGrpLayout->addWidget( myXSpin, 0, 1 );
-  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_Y_SCALARBAR" ), myOriginDimGrp, "myYLab" ), 0, 2 );
+  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_Y_SCALARBAR" ), myOriginDimGrp ), 0, 2 );
   myOriginDimGrpLayout->addWidget( myYSpin, 0, 3 );
-  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_WIDTH" ),  myOriginDimGrp, "myWidthLab" ),  1, 0 );
+  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_WIDTH" ),  myOriginDimGrp ),  1, 0 );
   myOriginDimGrpLayout->addWidget( myWidthSpin, 1, 1 );
-  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_HEIGHT" ), myOriginDimGrp, "myHeightLab" ), 1, 2 );
+  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_HEIGHT" ), myOriginDimGrp ), 1, 2 );
   myOriginDimGrpLayout->addWidget( myHeightSpin, 1, 3 );
 
-  aTopLayout->addWidget( myOriginDimGrp, aRow, 0 );
-  aRow++;
+  aTopLayout->addWidget( myOriginDimGrp );
 
   /***************************************************************/
   // Common buttons
-  myButtonGrp = new QGroupBox( this, "myButtonGrp" );
-  myButtonGrp->setColumnLayout(0, Qt::Vertical );
-  myButtonGrp->layout()->setSpacing( 0 ); myButtonGrp->layout()->setMargin( 0 );
-  QHBoxLayout* myButtonGrpLayout = new QHBoxLayout( myButtonGrp->layout() );
-  myButtonGrpLayout->setAlignment( Qt::AlignTop );
+  myButtonGrp = new QGroupBox( this );
+  QHBoxLayout* myButtonGrpLayout = new QHBoxLayout( myButtonGrp );
   myButtonGrpLayout->setSpacing( SPACING_SIZE ); myButtonGrpLayout->setMargin( MARGIN_SIZE );
 
-  myOkBtn = new QPushButton( tr( "SMESH_BUT_OK" ), myButtonGrp, "myOkBtn" );
-  myOkBtn->setAutoDefault( TRUE ); myOkBtn->setDefault( TRUE );
+  myOkBtn = new QPushButton( tr( "SMESH_BUT_APPLY_AND_CLOSE" ), myButtonGrp );
+  myOkBtn->setAutoDefault( true ); myOkBtn->setDefault( true );
+  myApplyBtn = new QPushButton( tr( "SMESH_BUT_APPLY" ), myButtonGrp );
+  myApplyBtn->setAutoDefault( true );
+  myCancelBtn = new QPushButton( tr( "SMESH_BUT_CLOSE" ), myButtonGrp );
+  myCancelBtn->setAutoDefault( true );
+  myHelpBtn = new QPushButton( tr("SMESH_BUT_HELP"), myButtonGrp );
+  myHelpBtn->setAutoDefault(true);
+
   myButtonGrpLayout->addWidget( myOkBtn );
-  if ( mySelectionMgr ) {
-    myApplyBtn = new QPushButton( tr( "SMESH_BUT_APPLY" ), myButtonGrp, "myApplyBtn" );
-    myApplyBtn->setAutoDefault( TRUE );
-    myButtonGrpLayout->addWidget( myApplyBtn );
-  }
+  myButtonGrpLayout->addSpacing( 10 );
+  myButtonGrpLayout->addWidget( myApplyBtn );
+  myButtonGrpLayout->addSpacing( 10 );
   myButtonGrpLayout->addStretch();
-  myCancelBtn = new QPushButton( tr( "SMESH_BUT_CANCEL" ), myButtonGrp, "myCancelBtn" );
-  if ( mySelectionMgr )
-    myCancelBtn->setText( tr( "SMESH_BUT_CLOSE" ) );
-  myCancelBtn->setAutoDefault( TRUE );
   myButtonGrpLayout->addWidget( myCancelBtn );
+  myButtonGrpLayout->addWidget( myHelpBtn );
 
-  aTopLayout->addWidget( myButtonGrp, aRow, 0 );
+  aTopLayout->addWidget( myButtonGrp );
 
   /***************************************************************/
   // Init
   // --> first init from preferences
   SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
 
-  QColor titleColor (255, 255, 255);
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_title_color")) {
-    QStringList aTColor =
-      QStringList::split(":", mgr->stringValue("SMESH", "scalar_bar_title_color"), false);
-    titleColor = QColor((aTColor.count() > 0 ? aTColor[0].toInt() : 255),
-                        (aTColor.count() > 1 ? aTColor[1].toInt() : 255),
-                        (aTColor.count() > 2 ? aTColor[2].toInt() : 255));
-  }
-  myTitleColorBtn->setPaletteBackgroundColor(titleColor);
-  myTitleFontCombo->setCurrentItem(0);
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_title_font")) {
+  QColor titleColor = mgr->colorValue("SMESH", "scalar_bar_title_color",
+                                     QColor(255, 255, 255));
+  myTitleColorBtn->setColor(titleColor);
+  myTitleFontCombo->setCurrentIndex(0);
+  if (mgr->hasValue("SMESH", "scalar_bar_title_font")) {
     QFont f = mgr->fontValue( "SMESH", "scalar_bar_title_font" );
     if( f.family()=="Arial" )
-      myTitleFontCombo->setCurrentItem(0);
+      myTitleFontCombo->setCurrentIndex(0);
     if( f.family()=="Courier" )
-      myTitleFontCombo->setCurrentItem(1);
+      myTitleFontCombo->setCurrentIndex(1);
     if( f.family()=="Times")
-      myTitleFontCombo->setCurrentItem(2);
-  
+      myTitleFontCombo->setCurrentIndex(2);
+    
     myTitleBoldCheck->setChecked  ( f.bold() );
     myTitleItalicCheck->setChecked( f.italic() );
-    myTitleShadowCheck->setChecked( f.underline() );
+    myTitleShadowCheck->setChecked( f.overline() );
   }
-
-  QColor labelColor (255, 255, 255);
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_label_color")) {
-    QStringList aLColor =
-      QStringList::split(":", mgr->stringValue("SMESH", "scalar_bar_label_color"), false);
-    labelColor = QColor((aLColor.count() > 0 ? aLColor[0].toInt() : 255),
-                        (aLColor.count() > 1 ? aLColor[1].toInt() : 255),
-                        (aLColor.count() > 2 ? aLColor[2].toInt() : 255));
-  }
-  myLabelsColorBtn->setPaletteBackgroundColor(labelColor);
-  myLabelsFontCombo->setCurrentItem(0);
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_label_font")) {
+                                     
+  QColor labelColor = mgr->colorValue("SMESH", "scalar_bar_label_color", 
+                                     QColor(255, 255, 255));
+  myLabelsColorBtn->setColor(labelColor);
+  myLabelsFontCombo->setCurrentIndex(0);
+  if (mgr->hasValue("SMESH", "scalar_bar_label_font")) {
     QFont f = mgr->fontValue( "SMESH", "scalar_bar_label_font" );
     if (f.family() == "Arial")
-      myLabelsFontCombo->setCurrentItem(0);
+      myLabelsFontCombo->setCurrentIndex(0);
     if (f.family() == "Courier")
-      myLabelsFontCombo->setCurrentItem(1);
+      myLabelsFontCombo->setCurrentIndex(1);
     if (f.family() == "Times")
-      myLabelsFontCombo->setCurrentItem(2);
+      myLabelsFontCombo->setCurrentIndex(2);
       
     myLabelsBoldCheck  ->setChecked( f.bold() );
     myLabelsItalicCheck->setChecked( f.italic() );
-    myLabelsShadowCheck->setChecked( f.underline() );
+    myLabelsShadowCheck->setChecked( f.overline() );
   }
 
-  int aNbColors = 64;
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_num_colors"))
-    aNbColors = mgr->integerValue("SMESH", "scalar_bar_num_colors");
+  int aNbColors = mgr->integerValue("SMESH", "scalar_bar_num_colors", 64);
   myColorsSpin->setValue(aNbColors);
 
-  int aNbLabels = 5;
-  if (mgr && mgr->hasValue("SMESH", "scalar_bar_num_labels"))
-    aNbLabels = mgr->integerValue("SMESH", "scalar_bar_num_labels");
+  int aNbLabels = mgr->integerValue("SMESH", "scalar_bar_num_labels", 5);
   myLabelsSpin->setValue(aNbLabels);
 
-  int aOrientation = ( mgr ? mgr->integerValue( "SMESH", "scalar_bar_orientation", 1 ) : 1 );
-  bool isHoriz = ( aOrientation==1 );
-  if (aOrientation == 1)
+  int aOrientation = mgr->integerValue( "SMESH", "scalar_bar_orientation", 1 );
+  bool isHoriz = aOrientation == 1;
+  if (isHoriz)
     myHorizRadioBtn->setChecked(true);
   else
     myVertRadioBtn->setChecked(true);
   myIniOrientation = myVertRadioBtn->isChecked();
 
   QString name = isHoriz ? "scalar_bar_horizontal_%1" : "scalar_bar_vertical_%1";
-  if (mgr && mgr->hasValue("SMESH", name.arg( "x" )))
-    myIniX = mgr->doubleValue("SMESH", name.arg( "x" ));
-  else
-    myIniX = myHorizRadioBtn->isChecked() ? DEF_HOR_X : DEF_VER_X;
 
-  if (mgr && mgr->hasValue("SMESH", name.arg( "y" )))
-    myIniY = mgr->doubleValue("SMESH", name.arg( "y" ));
-  else
-    myIniY = myHorizRadioBtn->isChecked() ? DEF_HOR_Y : DEF_VER_Y;
+  myIniX = mgr->doubleValue("SMESH", name.arg( "x" ), 
+                           myHorizRadioBtn->isChecked() ? DEF_HOR_X : DEF_VER_X);
 
-  if (mgr && mgr->hasValue("SMESH", name.arg( "width" )))
-    myIniW = mgr->doubleValue("SMESH", name.arg( "width" ));
-  else
-    myIniW = myHorizRadioBtn->isChecked() ? DEF_HOR_W : DEF_VER_W;
+  myIniY = mgr->doubleValue("SMESH", name.arg( "y" ),
+                           myHorizRadioBtn->isChecked() ? DEF_HOR_Y : DEF_VER_Y);
 
-  if (mgr && mgr->hasValue("SMESH", name.arg( "height" )))
-    myIniH = mgr->doubleValue("SMESH", name.arg( "height" ));
-  else
-    myIniH = myHorizRadioBtn->isChecked() ? DEF_HOR_H : DEF_VER_H;
+  myIniW = mgr->doubleValue("SMESH", name.arg( "width" ),
+                           myHorizRadioBtn->isChecked() ? DEF_HOR_W : DEF_VER_W);
+
+  myIniH = mgr->doubleValue("SMESH", name.arg( "height" ),
+                           myHorizRadioBtn->isChecked() ? DEF_HOR_H : DEF_VER_H);
 
   setOriginAndSize(myIniX, myIniY, myIniW, myIniH);
 
-  if (mySelectionMgr) {
-    // --> then init from selection if necessary
-    onSelectionChanged();
-  }
+  // --> then init from selection if necessary
+  onSelectionChanged();
 
   /***************************************************************/
   // Connect section
-  connect( myTitleColorBtn,     SIGNAL( clicked() ), this, SLOT( onTitleColor() ) );
-  connect( myLabelsColorBtn,    SIGNAL( clicked() ), this, SLOT( onLabelsColor() ) );
   connect( myOkBtn,             SIGNAL( clicked() ), this, SLOT( onOk() ) );
+  connect( myApplyBtn,          SIGNAL( clicked() ), this, SLOT( onApply() ) );
   connect( myCancelBtn,         SIGNAL( clicked() ), this, SLOT( onCancel() ) );
+  connect( myHelpBtn,           SIGNAL(clicked()),   this, SLOT( onHelp() ) );
   connect( myXSpin,             SIGNAL( valueChanged( double ) ), this, SLOT( onXYChanged() ) );
   connect( myYSpin,             SIGNAL( valueChanged( double ) ), this, SLOT( onXYChanged() ) );
-  connect( myOrientationGrp,    SIGNAL( clicked( int ) ), this, SLOT( onOrientationChanged() ) );
-  if ( mySelectionMgr ) {
-    connect( myApplyBtn,        SIGNAL( clicked() ), this, SLOT( onApply() ) );
-    connect( mySelectionMgr,    SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionChanged() ) );
-  }
-  connect( mySMESHGUI,  SIGNAL( SignalCloseAllDialogs() ), this, SLOT( onCancel() ) ) ;
+  connect( aOrientationGrp,     SIGNAL( buttonClicked( int ) ),   this, SLOT( onOrientationChanged() ) );
+  connect( mySelectionMgr,      SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionChanged() ) );
+  connect( mySMESHGUI,          SIGNAL( SignalCloseAllDialogs() ),   this, SLOT( onCancel() ) );
+
+  myHelpFileName = "about_quality_controls_page.html";
 }
 
 //=================================================================================================
@@ -472,107 +416,59 @@ void SMESHGUI_Preferences_ScalarBarDlg::onOk()
 //=================================================================================================
 bool SMESHGUI_Preferences_ScalarBarDlg::onApply()
 {
-  if (mySelectionMgr) {
-    // Scalar Bar properties
-    if (!myActor)
-      return false;
-    vtkScalarBarActor* myScalarBarActor = myActor->GetScalarBarActor();
-
-    vtkTextProperty* aTitleTextPrp = myScalarBarActor->GetTitleTextProperty();
-    QColor aTColor = myTitleColorBtn->paletteBackgroundColor();
-    aTitleTextPrp->SetColor( aTColor.red()/255., aTColor.green()/255., aTColor.blue()/255. );
-    if ( myTitleFontCombo->currentItem() == 0 )
-      aTitleTextPrp->SetFontFamilyToArial();
-    else if ( myTitleFontCombo->currentItem() == 1 )
-      aTitleTextPrp->SetFontFamilyToCourier();
-    else
-      aTitleTextPrp->SetFontFamilyToTimes();
-    aTitleTextPrp->SetBold( myTitleBoldCheck->isChecked() );
-    aTitleTextPrp->SetItalic( myTitleItalicCheck->isChecked() );
-    aTitleTextPrp->SetShadow( myTitleShadowCheck->isChecked() );
-    myScalarBarActor->SetTitleTextProperty( aTitleTextPrp );
-
-    vtkTextProperty* aLabelsTextPrp = myScalarBarActor->GetLabelTextProperty();
-    QColor aLColor = myLabelsColorBtn->paletteBackgroundColor();
-    aLabelsTextPrp->SetColor( aLColor.red()/255., aLColor.green()/255., aLColor.blue()/255. );
-    if ( myLabelsFontCombo->currentItem() == 0 )
-      aLabelsTextPrp->SetFontFamilyToArial();
-    else if ( myLabelsFontCombo->currentItem() == 1 )
-      aLabelsTextPrp->SetFontFamilyToCourier();
-    else
-      aLabelsTextPrp->SetFontFamilyToTimes();
-    aLabelsTextPrp->SetBold( myLabelsBoldCheck->isChecked() );
-    aLabelsTextPrp->SetItalic( myLabelsItalicCheck->isChecked() );
-    aLabelsTextPrp->SetShadow( myLabelsShadowCheck->isChecked() );
-    myScalarBarActor->SetLabelTextProperty( aLabelsTextPrp );
-
-    myScalarBarActor->SetNumberOfLabels( myLabelsSpin->value() );
-    myScalarBarActor->SetMaximumNumberOfColors( myColorsSpin->value() );
-
-    if ( myHorizRadioBtn->isChecked() )
-      myScalarBarActor->SetOrientationToHorizontal();
-    else
-      myScalarBarActor->SetOrientationToVertical();
-
-    myScalarBarActor->SetPosition( myXSpin->value(), myYSpin->value() );
-    myScalarBarActor->SetWidth( myWidthSpin->value() );
-    myScalarBarActor->SetHeight( myHeightSpin->value() );
-
-    double aMin = myMinEdit->text().toDouble();
-    double aMax = myMaxEdit->text().toDouble();
-    vtkLookupTable* myLookupTable =
-      static_cast<vtkLookupTable*>(myScalarBarActor->GetLookupTable());
-    myLookupTable->SetRange( aMin, aMax );
-    myLookupTable->SetNumberOfTableValues(myColorsSpin->value());
-    myLookupTable->Build();
-    SMESH::RepaintCurrentView();
-  } else {
-    // Scalar Bar preferences
-    SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
-    if (!mgr) return false;
-
-    QColor titleColor = myTitleColorBtn->paletteBackgroundColor();
-    mgr->setValue("SMESH", "scalar_bar_title_color", titleColor );
-
-    QFont f;
-    if (myTitleFontCombo->currentItem() == 0)
-      f.setFamily( "Arial" );
-    else if (myTitleFontCombo->currentItem() == 1)
-      f.setFamily( "Courier" );
-    else
-      f.setFamily( "Times");
-
-    f.setBold( myTitleBoldCheck  ->isChecked() );
-    f.setItalic( myTitleItalicCheck->isChecked() );
-    f.setUnderline( myTitleShadowCheck->isChecked() );
-    mgr->setValue( "SMESH", "scalar_bar_title_font", f );
-
-    QColor labelColor = myLabelsColorBtn->paletteBackgroundColor();
-    mgr->setValue("SMESH", "scalar_bar_label_color", labelColor );
-
-    if (myLabelsFontCombo->currentItem() == 0)
-      f.setFamily( "Arial" );
-    else if ( myLabelsFontCombo->currentItem() == 1 )
-      f.setFamily( "Courier");
-    else
-      f.setFamily( "Times");
-
-    f.setBold( myLabelsBoldCheck  ->isChecked() );
-    f.setItalic( myLabelsItalicCheck->isChecked() );
-    f.setUnderline( myLabelsShadowCheck->isChecked() );
-    mgr->setValue( "SMESH", "scalar_bar_label_font", f );
-
-    mgr->setValue("SMESH", "scalar_bar_num_colors", myColorsSpin->value());
-    mgr->setValue("SMESH", "scalar_bar_num_labels", myLabelsSpin->value());
-
-    mgr->setValue("SMESH", "scalar_bar_orientation", myHorizRadioBtn->isChecked() ? 1 : 0 );
-
-    QString name = myHorizRadioBtn->isChecked() ? "scalar_bar_horizontal_%1" : "scalar_bar_vertical_%1";
-    mgr->setValue("SMESH", name.arg( "x" ), myXSpin->value());
-    mgr->setValue("SMESH", name.arg( "y" ), myYSpin->value());
-    mgr->setValue("SMESH", name.arg( "width" ),     myWidthSpin->value());
-    mgr->setValue("SMESH", name.arg( "height" ),    myHeightSpin->value());
-  }
+  // Scalar Bar properties
+  if (!myActor)
+    return false;
+  vtkScalarBarActor* myScalarBarActor = myActor->GetScalarBarActor();
+
+  vtkTextProperty* aTitleTextPrp = myScalarBarActor->GetTitleTextProperty();
+  QColor aTColor = myTitleColorBtn->color();
+  aTitleTextPrp->SetColor( aTColor.red()/255., aTColor.green()/255., aTColor.blue()/255. );
+  if ( myTitleFontCombo->currentIndex() == 0 )
+    aTitleTextPrp->SetFontFamilyToArial();
+  else if ( myTitleFontCombo->currentIndex() == 1 )
+    aTitleTextPrp->SetFontFamilyToCourier();
+  else
+    aTitleTextPrp->SetFontFamilyToTimes();
+  aTitleTextPrp->SetBold( myTitleBoldCheck->isChecked() );
+  aTitleTextPrp->SetItalic( myTitleItalicCheck->isChecked() );
+  aTitleTextPrp->SetShadow( myTitleShadowCheck->isChecked() );
+  myScalarBarActor->SetTitleTextProperty( aTitleTextPrp );
+
+  vtkTextProperty* aLabelsTextPrp = myScalarBarActor->GetLabelTextProperty();
+  QColor aLColor = myLabelsColorBtn->color();
+  aLabelsTextPrp->SetColor( aLColor.red()/255., aLColor.green()/255., aLColor.blue()/255. );
+  if ( myLabelsFontCombo->currentIndex() == 0 )
+    aLabelsTextPrp->SetFontFamilyToArial();
+  else if ( myLabelsFontCombo->currentIndex() == 1 )
+    aLabelsTextPrp->SetFontFamilyToCourier();
+  else
+    aLabelsTextPrp->SetFontFamilyToTimes();
+  aLabelsTextPrp->SetBold( myLabelsBoldCheck->isChecked() );
+  aLabelsTextPrp->SetItalic( myLabelsItalicCheck->isChecked() );
+  aLabelsTextPrp->SetShadow( myLabelsShadowCheck->isChecked() );
+  myScalarBarActor->SetLabelTextProperty( aLabelsTextPrp );
+
+  myScalarBarActor->SetNumberOfLabels( myLabelsSpin->value() );
+  myScalarBarActor->SetMaximumNumberOfColors( myColorsSpin->value() );
+
+  if ( myHorizRadioBtn->isChecked() )
+    myScalarBarActor->SetOrientationToHorizontal();
+  else
+    myScalarBarActor->SetOrientationToVertical();
+
+  myScalarBarActor->SetPosition( myXSpin->value(), myYSpin->value() );
+  myScalarBarActor->SetWidth( myWidthSpin->value() );
+  myScalarBarActor->SetHeight( myHeightSpin->value() );
+
+  double aMin = myMinEdit->text().toDouble();
+  double aMax = myMaxEdit->text().toDouble();
+  vtkLookupTable* myLookupTable =
+    static_cast<vtkLookupTable*>(myScalarBarActor->GetLookupTable());
+  myLookupTable->SetRange( aMin, aMax );
+  myLookupTable->SetNumberOfTableValues(myColorsSpin->value());
+  myLookupTable->Build();
+  SMESH::RepaintCurrentView();
   return true;
 }
 
@@ -590,32 +486,29 @@ void SMESHGUI_Preferences_ScalarBarDlg::onCancel()
 
 //=================================================================================================
 /*!
- *  SMESHGUI_Preferences_ScalarBarDlg::onTitleColor
+ *  SMESHGUI_Preferences_ScalarBarDlg::onHelp
  *
- *  Change Title color button slot
+ *  Help button slot
  */
 //=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::onTitleColor()
+void SMESHGUI_Preferences_ScalarBarDlg::onHelp()
 {
-  QColor aColor = myTitleColorBtn->paletteBackgroundColor();
-  aColor = QColorDialog::getColor( aColor, this );
-  if ( aColor.isValid() )
-    myTitleColorBtn->setPaletteBackgroundColor( aColor );
-}
-
-//=================================================================================================
-/*!
- *  SMESHGUI_Preferences_ScalarBarDlg::onLabelsColor
- *
- *  Change Labels color button slot
- */
-//=================================================================================================
-void SMESHGUI_Preferences_ScalarBarDlg::onLabelsColor()
-{
-  QColor aColor = myLabelsColorBtn->paletteBackgroundColor();
-  aColor = QColorDialog::getColor( aColor, this );
-  if ( aColor.isValid() )
-    myLabelsColorBtn->setPaletteBackgroundColor( aColor );
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    QString platform;
+#ifdef WIN32
+    platform = "winapplication";
+#else
+    platform = "application";
+#endif
+    SUIT_MessageBox::warning(this, tr("WRN_WARNING"),
+                            tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                            arg(app->resourceMgr()->stringValue("ExternalBrowser", 
+                                                                platform)).
+                            arg(myHelpFileName));
+  }
 }
 
 //=================================================================================================
@@ -627,77 +520,75 @@ void SMESHGUI_Preferences_ScalarBarDlg::onLabelsColor()
 //=================================================================================================
 void SMESHGUI_Preferences_ScalarBarDlg::onSelectionChanged()
 {
-  if (mySelectionMgr) {
-    SALOME_ListIO aList;
-    mySelectionMgr->selectedObjects(aList);
-
-    if (aList.Extent() == 1) {
-      Handle(SALOME_InteractiveObject) anIO = aList.First();
-      if( anIO->hasEntry() ) {
-       SMESH_Actor* anActor = SMESH::FindActorByEntry(anIO->getEntry());
-       if ( anActor && anActor->GetScalarBarActor() && anActor->GetControlMode() != SMESH_Actor::eNone ) {
-         myActor = anActor;
-         vtkScalarBarActor* myScalarBarActor = myActor->GetScalarBarActor();
-
-         if ( myScalarBarActor->GetLookupTable() ) {
-           vtkFloatingPointType *range = myScalarBarActor->GetLookupTable()->GetRange();
-           myMinEdit->setText( QString::number( range[0],'g',12 ) );
-           myMaxEdit->setText( QString::number( range[1],'g',12 ) );
-         }
-
-         vtkTextProperty* aTitleTextPrp = myScalarBarActor->GetTitleTextProperty();
-         vtkFloatingPointType aTColor[3];
-         aTitleTextPrp->GetColor( aTColor );
-         myTitleColorBtn->setPaletteBackgroundColor( QColor( (int)( aTColor[0]*255 ), (int)( aTColor[1]*255 ), (int)( aTColor[2]*255 ) ) );
-         myTitleFontCombo->setCurrentItem( aTitleTextPrp->GetFontFamily() );
-         myTitleBoldCheck->setChecked( aTitleTextPrp->GetBold() );
-         myTitleItalicCheck->setChecked( aTitleTextPrp->GetItalic() );
-         myTitleShadowCheck->setChecked( aTitleTextPrp->GetShadow() );
-
-         vtkTextProperty* aLabelsTextPrp = myScalarBarActor->GetLabelTextProperty();
-         vtkFloatingPointType aLColor[3];
-         aLabelsTextPrp->GetColor( aLColor );
-         myLabelsColorBtn->setPaletteBackgroundColor( QColor( (int)( aLColor[0]*255 ), (int)( aLColor[1]*255 ), (int)( aLColor[2]*255 ) ) );
-         myLabelsFontCombo->setCurrentItem( aLabelsTextPrp->GetFontFamily() );
-         myLabelsBoldCheck->setChecked( aLabelsTextPrp->GetBold() );
-         myLabelsItalicCheck->setChecked( aLabelsTextPrp->GetItalic() );
-         myLabelsShadowCheck->setChecked( aLabelsTextPrp->GetShadow() );
-
-         myLabelsSpin->setValue( myScalarBarActor->GetNumberOfLabels() );
-         myColorsSpin->setValue( myScalarBarActor->GetMaximumNumberOfColors() );
-
-         if ( myScalarBarActor->GetOrientation() == VTK_ORIENT_VERTICAL )
-           myVertRadioBtn->setChecked( true );
-         else
-           myHorizRadioBtn->setChecked( true );
-         myIniOrientation = myVertRadioBtn->isChecked();
-
-         myIniX = myScalarBarActor->GetPosition()[0];
-         myIniY = myScalarBarActor->GetPosition()[1];
-         myIniW = myScalarBarActor->GetWidth();
-         myIniH = myScalarBarActor->GetHeight();
-         setOriginAndSize( myIniX, myIniY, myIniW, myIniH );
-
-         myRangeGrp->setEnabled( true );
-         myFontGrp->setEnabled( true );
-         myLabColorGrp->setEnabled( true );
-         myOrientationGrp->setEnabled( true );
-         myOriginDimGrp->setEnabled( true );
-         myOkBtn->setEnabled( true );
-         myApplyBtn->setEnabled( true );
-         return;
+  SALOME_ListIO aList;
+  mySelectionMgr->selectedObjects(aList);
+
+  if (aList.Extent() == 1) {
+    Handle(SALOME_InteractiveObject) anIO = aList.First();
+    if( anIO->hasEntry() ) {
+      SMESH_Actor* anActor = SMESH::FindActorByEntry(anIO->getEntry());
+      if ( anActor && anActor->GetScalarBarActor() && anActor->GetControlMode() != SMESH_Actor::eNone ) {
+       myActor = anActor;
+       vtkScalarBarActor* myScalarBarActor = myActor->GetScalarBarActor();
+
+       if ( myScalarBarActor->GetLookupTable() ) {
+         vtkFloatingPointType *range = myScalarBarActor->GetLookupTable()->GetRange();
+         myMinEdit->setText( QString::number( range[0],'g',12 ) );
+         myMaxEdit->setText( QString::number( range[1],'g',12 ) );
        }
+
+       vtkTextProperty* aTitleTextPrp = myScalarBarActor->GetTitleTextProperty();
+       vtkFloatingPointType aTColor[3];
+       aTitleTextPrp->GetColor( aTColor );
+       myTitleColorBtn->setColor( QColor( (int)( aTColor[0]*255 ), (int)( aTColor[1]*255 ), (int)( aTColor[2]*255 ) ) );
+       myTitleFontCombo->setCurrentIndex( aTitleTextPrp->GetFontFamily() );
+       myTitleBoldCheck->setChecked( aTitleTextPrp->GetBold() );
+       myTitleItalicCheck->setChecked( aTitleTextPrp->GetItalic() );
+       myTitleShadowCheck->setChecked( aTitleTextPrp->GetShadow() );
+
+       vtkTextProperty* aLabelsTextPrp = myScalarBarActor->GetLabelTextProperty();
+       vtkFloatingPointType aLColor[3];
+       aLabelsTextPrp->GetColor( aLColor );
+       myLabelsColorBtn->setColor( QColor( (int)( aLColor[0]*255 ), (int)( aLColor[1]*255 ), (int)( aLColor[2]*255 ) ) );
+       myLabelsFontCombo->setCurrentIndex( aLabelsTextPrp->GetFontFamily() );
+       myLabelsBoldCheck->setChecked( aLabelsTextPrp->GetBold() );
+       myLabelsItalicCheck->setChecked( aLabelsTextPrp->GetItalic() );
+       myLabelsShadowCheck->setChecked( aLabelsTextPrp->GetShadow() );
+
+       myLabelsSpin->setValue( myScalarBarActor->GetNumberOfLabels() );
+       myColorsSpin->setValue( myScalarBarActor->GetMaximumNumberOfColors() );
+
+       if ( myScalarBarActor->GetOrientation() == VTK_ORIENT_VERTICAL )
+         myVertRadioBtn->setChecked( true );
+       else
+         myHorizRadioBtn->setChecked( true );
+       myIniOrientation = myVertRadioBtn->isChecked();
+
+       myIniX = myScalarBarActor->GetPosition()[0];
+       myIniY = myScalarBarActor->GetPosition()[1];
+       myIniW = myScalarBarActor->GetWidth();
+       myIniH = myScalarBarActor->GetHeight();
+       setOriginAndSize( myIniX, myIniY, myIniW, myIniH );
+
+       myRangeGrp->setEnabled( true );
+       myFontGrp->setEnabled( true );
+       myLabColorGrp->setEnabled( true );
+       myOrientationGrp->setEnabled( true );
+       myOriginDimGrp->setEnabled( true );
+       myOkBtn->setEnabled( true );
+       myApplyBtn->setEnabled( true );
+       return;
       }
     }
-    myActor = 0;
-    myRangeGrp->setEnabled( false );
-    myFontGrp->setEnabled( false );
-    myLabColorGrp->setEnabled( false );
-    myOrientationGrp->setEnabled( false );
-    myOriginDimGrp->setEnabled( false );
-    myOkBtn->setEnabled( false );
-    myApplyBtn->setEnabled( false );
   }
+  myActor = 0;
+  myRangeGrp->setEnabled( false );
+  myFontGrp->setEnabled( false );
+  myLabColorGrp->setEnabled( false );
+  myOrientationGrp->setEnabled( false );
+  myOriginDimGrp->setEnabled( false );
+  myOkBtn->setEnabled( false );
+  myApplyBtn->setEnabled( false );
 }
 
 //=================================================================================================
@@ -709,8 +600,7 @@ void SMESHGUI_Preferences_ScalarBarDlg::onSelectionChanged()
 //=================================================================================================
 void SMESHGUI_Preferences_ScalarBarDlg::closeEvent( QCloseEvent* e )
 {
-  if ( mySelectionMgr ) // "Properties" dialog box
-    myDlg = 0;
+  myDlg = 0;
   QDialog::closeEvent( e );
 }
 
@@ -723,8 +613,8 @@ void SMESHGUI_Preferences_ScalarBarDlg::closeEvent( QCloseEvent* e )
 //=================================================================================================
 void SMESHGUI_Preferences_ScalarBarDlg::onXYChanged()
 {
-  myWidthSpin->setMaxValue( 1.0 - myXSpin->value() );
-  myHeightSpin->setMaxValue( 1.0 - myYSpin->value() );
+  myWidthSpin->setMaximum( 1.0 - myXSpin->value() );
+  myHeightSpin->setMaximum( 1.0 - myYSpin->value() );
 }
 
 //=================================================================================================
@@ -742,9 +632,9 @@ void SMESHGUI_Preferences_ScalarBarDlg::setOriginAndSize( const double x,
   blockSignals( true );
   myXSpin->setValue( x );
   myYSpin->setValue( y );
-  myWidthSpin->setMaxValue( 1.0 );
+  myWidthSpin->setMaximum( 1.0 );
   myWidthSpin->setValue( w );
-  myHeightSpin->setMaxValue( 1.0 );
+  myHeightSpin->setMaximum( 1.0 );
   myHeightSpin->setValue( h );
   blockSignals( false );
   onXYChanged();
@@ -759,7 +649,7 @@ void SMESHGUI_Preferences_ScalarBarDlg::setOriginAndSize( const double x,
 //=================================================================================================
 void SMESHGUI_Preferences_ScalarBarDlg::onOrientationChanged()
 {
-  this->initScalarBarFromResources();
+  initScalarBarFromResources();
 
   int aOrientation = myVertRadioBtn->isChecked();
   if ( aOrientation == myIniOrientation )