Version: 6.3.1
Public Member Functions | Static Public Member Functions | Protected Slots | Private Member Functions | Private Attributes | Static Private Attributes

SMESHGUI_Preferences_ScalarBarDlg Class Reference

#include <SMESHGUI_Preferences_ScalarBarDlg.h>

Inheritance diagram for SMESHGUI_Preferences_ScalarBarDlg:
Inheritance graph
[legend]

Public Member Functions

 ~SMESHGUI_Preferences_ScalarBarDlg ()
 SMESHGUI_Preferences_ScalarBarDlg.~SMESHGUI_Preferences_ScalarBarDlg.
void closeEvent (QCloseEvent *)
 SMESHGUI_Preferences_ScalarBarDlg.closeEvent.
void setOriginAndSize (const double, const double, const double, const double)
 SMESHGUI_Preferences_ScalarBarDlg.setOriginAndSize.
void initScalarBarFromResources ()
 SMESHGUI_Preferences_ScalarBarDlg.initScalarBarFromResources()

Static Public Member Functions

static void ScalarBarProperties (SMESHGUI *)
 SMESHGUI_Preferences_ScalarBarDlg.ScalarBarProperties.

Protected Slots

void onOk ()
 SMESHGUI_Preferences_ScalarBarDlg.onOk.
bool onApply ()
 SMESHGUI_Preferences_ScalarBarDlg.onApply.
void onCancel ()
 SMESHGUI_Preferences_ScalarBarDlg.onCancel.
void onHelp ()
 SMESHGUI_Preferences_ScalarBarDlg.onHelp.
void onSelectionChanged ()
 SMESHGUI_Preferences_ScalarBarDlg.onSelectionChanged.
void onXYChanged ()
 SMESHGUI_Preferences_ScalarBarDlg.onXYChanged.
void onOrientationChanged ()
 SMESHGUI_Preferences_ScalarBarDlg.onOrientationChanged.
void onDistributionChanged (int)
 SMESHGUI_Preferences_ScalarBarDlg.onDistributionChanged.
void onDistributionActivated (bool)
 SMESHGUI_Preferences_ScalarBarDlg.onDistributionActivated.

Private Member Functions

 SMESHGUI_Preferences_ScalarBarDlg (SMESHGUI *)
 SMESHGUI_Preferences_ScalarBarDlg.SMESHGUI_Preferences_ScalarBarDlg.

Private Attributes

SMESHGUImySMESHGUI
LightApp_SelectionMgr * mySelectionMgr
SMESH_ActormyActor
double myIniX
double myIniY
double myIniW
double myIniH
int myIniOrientation
double DEF_VER_X
double DEF_VER_Y
double DEF_VER_H
double DEF_VER_W
double DEF_HOR_X
double DEF_HOR_Y
double DEF_HOR_H
double DEF_HOR_W
QGroupBoxmyRangeGrp
QLineEdit * myMinEdit
QLineEdit * myMaxEdit
QGroupBoxmyFontGrp
QtxColorButton * myTitleColorBtn
QComboBox * myTitleFontCombo
QCheckBox * myTitleBoldCheck
QCheckBox * myTitleItalicCheck
QCheckBox * myTitleShadowCheck
QtxColorButton * myLabelsColorBtn
QComboBox * myLabelsFontCombo
QCheckBox * myLabelsBoldCheck
QCheckBox * myLabelsItalicCheck
QCheckBox * myLabelsShadowCheck
QGroupBoxmyLabColorGrp
SalomeApp_IntSpinBox * myColorsSpin
SalomeApp_IntSpinBox * myLabelsSpin
QGroupBoxmyOrientationGrp
QRadioButton * myVertRadioBtn
QRadioButton * myHorizRadioBtn
QGroupBoxmyOriginDimGrp
SMESHGUI_SpinBoxmyXSpin
SMESHGUI_SpinBoxmyYSpin
SMESHGUI_SpinBoxmyWidthSpin
SMESHGUI_SpinBoxmyHeightSpin
QGroupBoxmyDistributionGrp
QRadioButton * myDMonoColor
QRadioButton * myDMultiColor
QtxColorButton * myMonoColorBtn
QLabel * myDistributionColorLbl
QGroupBoxmyButtonGrp
QButtonGroup * myDistribColorGrp
QPushButton * myOkBtn
QPushButton * myApplyBtn
QPushButton * myCancelBtn
QPushButton * myHelpBtn
QString myHelpFileName

Static Private Attributes

static
SMESHGUI_Preferences_ScalarBarDlg
myDlg = 0

Detailed Description

Definition at line 53 of file SMESHGUI_Preferences_ScalarBarDlg.h.


Constructor & Destructor Documentation

SMESHGUI_Preferences_ScalarBarDlg::SMESHGUI_Preferences_ScalarBarDlg ( SMESHGUI theModule) [private]

SMESHGUI_Preferences_ScalarBarDlg.SMESHGUI_Preferences_ScalarBarDlg.

Constructor

Definition at line 104 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

References DEF_HOR_H, DEF_HOR_W, DEF_HOR_X, DEF_HOR_Y, DEF_VER_H, DEF_VER_W, DEF_VER_X, DEF_VER_Y, SMESH.GetResourceMgr(), MARGIN_SIZE, MINIMUM_WIDTH, myActor, myApplyBtn, myButtonGrp, myCancelBtn, myColorsSpin, myDistribColorGrp, myDistributionColorLbl, myDistributionGrp, myDMonoColor, myDMultiColor, myFontGrp, myHeightSpin, myHelpBtn, myHelpFileName, myHorizRadioBtn, myIniH, myIniOrientation, myIniW, myIniX, myIniY, myLabColorGrp, myLabelsBoldCheck, myLabelsColorBtn, myLabelsFontCombo, myLabelsItalicCheck, myLabelsShadowCheck, myLabelsSpin, myMaxEdit, myMinEdit, myMonoColorBtn, myOkBtn, myOrientationGrp, myOriginDimGrp, myRangeGrp, mySelectionMgr, mySMESHGUI, myTitleBoldCheck, myTitleColorBtn, myTitleFontCombo, myTitleItalicCheck, myTitleShadowCheck, myVertRadioBtn, myWidthSpin, myXSpin, myYSpin, ex21_lamp.name, onApply(), onCancel(), onDistributionActivated(), onDistributionChanged(), onHelp(), onOk(), onOrientationChanged(), onSelectionChanged(), onXYChanged(), SMESHGUI_SpinBox.RangeStepAndValidator(), setOriginAndSize(), SMESH_MONOCOLOR_TYPE, and SPACING_SIZE.

Referenced by ScalarBarProperties().

  : QDialog( SMESH::GetDesktop( theModule ) ),
    mySMESHGUI( theModule ),
    mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
{
  DEF_VER_X = 0.01;
  DEF_VER_Y = 0.10;
  DEF_VER_H = 0.80;
  DEF_VER_W = 0.10;
  DEF_HOR_X = 0.20;
  DEF_HOR_Y = 0.01;
  DEF_HOR_H = 0.12;
  DEF_HOR_W = 0.60;

  setModal( false );
  setAttribute( Qt::WA_DeleteOnClose, true );
  setWindowTitle( tr("SMESH_PROPERTIES_SCALARBAR") );
  setSizeGripEnabled(true);

  myActor = 0;

  /******************************************************************************/
  // Top layout
  QVBoxLayout* aTopLayout = new QVBoxLayout( this );
  aTopLayout->setSpacing( SPACING_SIZE ); aTopLayout->setMargin( MARGIN_SIZE );

  /******************************************************************************/
  // Scalar range
  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  );
  QGridLayout* myFontGrpLayout = new QGridLayout( myFontGrp );
  myFontGrpLayout->setSpacing( SPACING_SIZE ); myFontGrpLayout->setMargin( MARGIN_SIZE );

  myTitleColorBtn = new QtxColorButton( myFontGrp  );

  myTitleFontCombo = new QComboBox( myFontGrp );
  myTitleFontCombo->setMinimumWidth( MINIMUM_WIDTH );
  myTitleFontCombo->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
  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 );
  myTitleItalicCheck = new QCheckBox( tr( "SMESH_FONT_ITALIC" ), myFontGrp );
  myTitleShadowCheck = new QCheckBox( tr( "SMESH_FONT_SHADOW" ), myFontGrp );

  myLabelsColorBtn = new QtxColorButton( myFontGrp );

  myLabelsFontCombo = new QComboBox( myFontGrp );
  myLabelsFontCombo->setMinimumWidth( MINIMUM_WIDTH );
  myLabelsFontCombo->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
  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 );
  myLabelsItalicCheck = new QCheckBox( tr( "SMESH_FONT_ITALIC" ), myFontGrp );
  myLabelsShadowCheck = new QCheckBox( tr( "SMESH_FONT_SHADOW" ), myFontGrp );

  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 ), 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 );

  /******************************************************************************/
  // Labels & Colors
  myLabColorGrp = new QGroupBox ( tr( "SMESH_LABELS_COLORS_SCALARBAR" ), this );
  QHBoxLayout* myLabColorGrpLayout = new QHBoxLayout( myLabColorGrp );
  myLabColorGrpLayout->setSpacing( SPACING_SIZE ); myLabColorGrpLayout->setMargin( MARGIN_SIZE );

  myColorsSpin = new SalomeApp_IntSpinBox( myLabColorGrp );
  myColorsSpin->setAcceptNames( false ); // No Notebook variables allowed
  myColorsSpin->setRange( 2, 256 );
  myColorsSpin->setSingleStep( 1 );
  myColorsSpin->setMinimumWidth( MINIMUM_WIDTH );
  myColorsSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );

  myLabelsSpin = new SalomeApp_IntSpinBox( myLabColorGrp );
  myLabelsSpin->setAcceptNames( false ); // No Notebook variables allowed
  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 ) );
  myLabColorGrpLayout->addWidget( myColorsSpin );
  myLabColorGrpLayout->addWidget( new QLabel( tr( "SMESH_NUMBEROFLABELS" ), myLabColorGrp ) );
  myLabColorGrpLayout->addWidget( myLabelsSpin );

  aTopLayout->addWidget( myLabColorGrp );

  /******************************************************************************/
  // Orientation
  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 );
  myHorizRadioBtn = new QRadioButton( tr( "SMESH_HORIZONTAL" ), myOrientationGrp );
  myVertRadioBtn->setChecked( true );

  myOrientationGrpLayout->addWidget( myVertRadioBtn );
  myOrientationGrpLayout->addWidget( myHorizRadioBtn );
  aOrientationGrp->addButton(myVertRadioBtn);
  aOrientationGrp->addButton(myHorizRadioBtn);

  aTopLayout->addWidget( myOrientationGrp );

  /******************************************************************************/
  // Position & Size
  myOriginDimGrp = new QGroupBox ( tr("SMESH_POSITION_SIZE_SCALARBAR"), this );
  QGridLayout* myOriginDimGrpLayout = new QGridLayout( myOriginDimGrp );
  myOriginDimGrpLayout->setSpacing( SPACING_SIZE ); myOriginDimGrpLayout->setMargin( MARGIN_SIZE );

  myXSpin = new SMESHGUI_SpinBox(myOriginDimGrp);
  myXSpin->setAcceptNames( false );
  myXSpin->RangeStepAndValidator( 0.0, 1.0, 0.1, "parametric_precision" );
  myXSpin->setMinimumWidth( MINIMUM_WIDTH );
  myXSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );

  myYSpin = new SMESHGUI_SpinBox(myOriginDimGrp);
  myYSpin->setAcceptNames( false );
  myYSpin->RangeStepAndValidator( 0.0, 1.0, 0.1, "parametric_precision" );  
  myYSpin->setMinimumWidth( MINIMUM_WIDTH );
  myYSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );

  myWidthSpin = new SMESHGUI_SpinBox(myOriginDimGrp);
  myWidthSpin->setAcceptNames( false );
  myWidthSpin->RangeStepAndValidator( 0.0, 1.0, 0.1, "parametric_precision" );    
  myWidthSpin->setMinimumWidth( MINIMUM_WIDTH );
  myWidthSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );

  myHeightSpin = new SMESHGUI_SpinBox(myOriginDimGrp);
  myHeightSpin->setAcceptNames( false );
  myHeightSpin->RangeStepAndValidator( 0.0, 1.0, 0.1, "parametric_precision" );    
  myHeightSpin->setMinimumWidth( MINIMUM_WIDTH );
  myHeightSpin->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );

  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 ), 0, 2 );
  myOriginDimGrpLayout->addWidget( myYSpin, 0, 3 );
  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_WIDTH" ),  myOriginDimGrp ),  1, 0 );
  myOriginDimGrpLayout->addWidget( myWidthSpin, 1, 1 );
  myOriginDimGrpLayout->addWidget( new QLabel( tr( "SMESH_HEIGHT" ), myOriginDimGrp ), 1, 2 );
  myOriginDimGrpLayout->addWidget( myHeightSpin, 1, 3 );

  aTopLayout->addWidget( myOriginDimGrp );
  /******************************************************************************/

  // Destribution
  myDistributionGrp = new QGroupBox ( tr( "SMESH_DISTRIBUTION_SCALARBAR" ), this );
  myDistributionGrp->setCheckable(true);
  QHBoxLayout* aDistributionGrpLayout = new QHBoxLayout( myDistributionGrp );
  aDistributionGrpLayout->setSpacing( SPACING_SIZE ); aDistributionGrpLayout->setMargin( MARGIN_SIZE );

  myDistribColorGrp = new QButtonGroup( this );

  myDMonoColor  = new QRadioButton( tr( "SMESH_MONOCOLOR" ) ,  myDistributionGrp );
  myDMultiColor = new QRadioButton( tr( "SMESH_MULTICOLOR" ),  myDistributionGrp );
  myDMonoColor->setChecked( true );

  myDistribColorGrp->addButton(myDMonoColor);myDistribColorGrp->setId(myDMonoColor,1);
  myDistribColorGrp->addButton(myDMultiColor);myDistribColorGrp->setId(myDMultiColor,2);
  
  aDistributionGrpLayout->addWidget( myDMultiColor );
  aDistributionGrpLayout->addWidget( myDMonoColor );
  
  //Color of the Distribution in monocolor case:
  myDistributionColorLbl = new QLabel( tr( "SMESH_DISTRIBUTION_COLOR" ), myDistributionGrp );
  aDistributionGrpLayout->addWidget( myDistributionColorLbl );
  myMonoColorBtn = new QtxColorButton( myDistributionGrp  );
  aDistributionGrpLayout->addWidget(myMonoColorBtn);
  
  aTopLayout->addWidget(myDistributionGrp);
  
  /******************************************************************************/
  // Common buttons
  myButtonGrp = new QGroupBox( this );
  QHBoxLayout* myButtonGrpLayout = new QHBoxLayout( myButtonGrp );
  myButtonGrpLayout->setSpacing( SPACING_SIZE ); myButtonGrpLayout->setMargin( MARGIN_SIZE );

  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 );
  myButtonGrpLayout->addSpacing( 10 );
  myButtonGrpLayout->addWidget( myApplyBtn );
  myButtonGrpLayout->addSpacing( 10 );
  myButtonGrpLayout->addStretch();
  myButtonGrpLayout->addWidget( myCancelBtn );
  myButtonGrpLayout->addWidget( myHelpBtn );

  aTopLayout->addWidget( myButtonGrp );

  /***************************************************************/
  // Init
  // --> first init from preferences
  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );

  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->setCurrentIndex(0);
    if( f.family()=="Courier" )
      myTitleFontCombo->setCurrentIndex(1);
    if( f.family()=="Times")
      myTitleFontCombo->setCurrentIndex(2);
    
    myTitleBoldCheck->setChecked  ( f.bold() );
    myTitleItalicCheck->setChecked( f.italic() );
    myTitleShadowCheck->setChecked( f.overline() );
  }
                                      
  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->setCurrentIndex(0);
    if (f.family() == "Courier")
      myLabelsFontCombo->setCurrentIndex(1);
    if (f.family() == "Times")
      myLabelsFontCombo->setCurrentIndex(2);
      
    myLabelsBoldCheck  ->setChecked( f.bold() );
    myLabelsItalicCheck->setChecked( f.italic() );
    myLabelsShadowCheck->setChecked( f.overline() );
  }

  int aNbColors = mgr->integerValue("SMESH", "scalar_bar_num_colors", 64);
  myColorsSpin->setValue(aNbColors);

  int aNbLabels = mgr->integerValue("SMESH", "scalar_bar_num_labels", 5);
  myLabelsSpin->setValue(aNbLabels);

  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";

  myIniX = mgr->doubleValue("SMESH", name.arg( "x" ), 
                            myHorizRadioBtn->isChecked() ? DEF_HOR_X : DEF_VER_X);

  myIniY = mgr->doubleValue("SMESH", name.arg( "y" ),
                            myHorizRadioBtn->isChecked() ? DEF_HOR_Y : DEF_VER_Y);

  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);


  bool distributionVisibility = mgr->booleanValue("SMESH","distribution_visibility");
  myDistributionGrp->setChecked(distributionVisibility);

  int coloringType = mgr->integerValue("SMESH", "distribution_coloring_type", 0);
  if( coloringType == SMESH_MONOCOLOR_TYPE ) {
    myDMonoColor->setChecked(true);
    onDistributionChanged(myDistribColorGrp->id(myDMonoColor));    
  } else {
    myDMultiColor->setChecked(true);
    onDistributionChanged(myDistribColorGrp->id(myDMultiColor));

  }
  
  QColor distributionColor = mgr->colorValue("SMESH", "distribution_color",
                                             QColor(255, 255, 255));
  myMonoColorBtn->setColor(distributionColor);
  
  

  // --> then init from selection if necessary
  onSelectionChanged();

  /***************************************************************/
  // Connect section
  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( aOrientationGrp,     SIGNAL( buttonClicked( int ) ),   this, SLOT( onOrientationChanged() ) );
  connect( myDistributionGrp,   SIGNAL( toggled(bool) ), this, SLOT(onDistributionActivated(bool)) );
  connect( myDistribColorGrp,   SIGNAL( buttonClicked( int ) ),   this, SLOT( onDistributionChanged( int ) ) );
  connect( mySelectionMgr,      SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionChanged() ) );
  connect( mySMESHGUI,          SIGNAL( SignalCloseAllDialogs() ),   this, SLOT( onCancel() ) );

  myHelpFileName = "quality_page.html";
}
SMESHGUI_Preferences_ScalarBarDlg::~SMESHGUI_Preferences_ScalarBarDlg ( )

Member Function Documentation

void SMESHGUI_Preferences_ScalarBarDlg::closeEvent ( QCloseEvent *  e)

SMESHGUI_Preferences_ScalarBarDlg.closeEvent.

Close event handler

Definition at line 724 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

References myDlg.

{
  myDlg = 0;
  QDialog::closeEvent( e );
}
void SMESHGUI_Preferences_ScalarBarDlg::initScalarBarFromResources ( )

SMESHGUI_Preferences_ScalarBarDlg.initScalarBarFromResources()

Rereading vertical and horizontal default positions from resources.

Definition at line 830 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

References DEF_HOR_H, DEF_HOR_W, DEF_HOR_X, DEF_HOR_Y, DEF_VER_H, DEF_VER_W, DEF_VER_X, DEF_VER_Y, SMESH.GetResourceMgr(), mySMESHGUI, and ex21_lamp.name.

Referenced by onOrientationChanged().

{
  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
  QString name;
  if (mgr){
    // initialize from resoources
    
    // horizontal
    name = QString("scalar_bar_horizontal_%1");
    if (mgr->hasValue("SMESH", name.arg( "x" )))
      DEF_HOR_X = mgr->doubleValue("SMESH", name.arg( "x" ));
    if (mgr->hasValue("SMESH", name.arg( "y" )))
      DEF_HOR_Y = mgr->doubleValue("SMESH", name.arg( "y" ));
    if (mgr->hasValue("SMESH", name.arg( "width" )))
      DEF_HOR_W = mgr->doubleValue("SMESH", name.arg( "width" ));
    if (mgr->hasValue("SMESH", name.arg( "height" )))
      DEF_HOR_H = mgr->doubleValue("SMESH", name.arg( "height" ));

    // vertical
    name = QString("scalar_bar_vertical_%1");
    if (mgr->hasValue("SMESH", name.arg( "x" )))
      DEF_VER_X = mgr->doubleValue("SMESH", name.arg( "x" ));
    if (mgr->hasValue("SMESH", name.arg( "y" )))
      DEF_VER_Y = mgr->doubleValue("SMESH", name.arg( "y" ));
    if (mgr->hasValue("SMESH", name.arg( "width" )))
      DEF_VER_W = mgr->doubleValue("SMESH", name.arg( "width" ));
    if (mgr->hasValue("SMESH", name.arg( "height" )))
      DEF_VER_H = mgr->doubleValue("SMESH", name.arg( "height" ));
  }
}
bool SMESHGUI_Preferences_ScalarBarDlg::onApply ( ) [protected, slot]

SMESHGUI_Preferences_ScalarBarDlg.onApply.

Apply button slot

Definition at line 479 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

References SMESH_ScalarBarActor.GetDistributionColor(), SMESH_ScalarBarActor.GetDistributionColoringType(), SMESH_Actor.GetPlot2Histogram(), SMESH_Actor.GetScalarBarActor(), myActor, myColorsSpin, myDistributionGrp, myDMultiColor, myHeightSpin, myHorizRadioBtn, myLabelsBoldCheck, myLabelsColorBtn, myLabelsFontCombo, myLabelsItalicCheck, myLabelsShadowCheck, myLabelsSpin, myMaxEdit, myMinEdit, myMonoColorBtn, myTitleBoldCheck, myTitleColorBtn, myTitleFontCombo, myTitleItalicCheck, myTitleShadowCheck, myWidthSpin, myXSpin, myYSpin, SMESH.ProcessIn2DViewers(), SMESH.RepaintCurrentView(), SMESH_ScalarBarActor.SetDistributionColor(), SMESH_ScalarBarActor.SetDistributionColoringType(), SMESH_ScalarBarActor.SetDistributionVisibility(), SMESH_ScalarBarActor.SetLabelTextProperty(), SMESH_ScalarBarActor.SetOrientationToHorizontal(), SMESH_ScalarBarActor.SetOrientationToVertical(), SMESH_ScalarBarActor.SetTitleTextProperty(), SMESH_MONOCOLOR_TYPE, SMESH_MULTICOLOR_TYPE, and SMESH_Actor.UpdateDistribution().

Referenced by onOk(), and SMESHGUI_Preferences_ScalarBarDlg().

{
  // Scalar Bar properties
  if (!myActor)
    return false;
  SMESH_ScalarBarActor* 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() );

  if ( myHorizRadioBtn->isChecked() )
    myScalarBarActor->SetOrientationToHorizontal();
  else
    myScalarBarActor->SetOrientationToVertical();

  myScalarBarActor->SetPosition( myXSpin->value(), myYSpin->value() );
  myScalarBarActor->SetWidth( myWidthSpin->value() );
  myScalarBarActor->SetHeight( myHeightSpin->value() );

  // Distribution
  bool distributionTypeChanged = false, colorChanged=false;
  myScalarBarActor->SetDistributionVisibility((int)myDistributionGrp->isChecked());
  if( myDistributionGrp->isChecked() ) {
    int ColoringType = myDMultiColor->isChecked() ? SMESH_MULTICOLOR_TYPE : SMESH_MONOCOLOR_TYPE;
    distributionTypeChanged = (ColoringType != myScalarBarActor->GetDistributionColoringType());
    if(distributionTypeChanged)      
      myScalarBarActor->SetDistributionColoringType(ColoringType);
    
    if( !myDMultiColor->isChecked() ) {
      QColor aTColor = myMonoColorBtn->color();
      double rgb[3], oldRgb[3];;
      rgb [0] = aTColor.red()/255.;
      rgb [1] = aTColor.green()/255.;
      rgb [2] = aTColor.blue()/255.;
      myScalarBarActor->GetDistributionColor(oldRgb);
      colorChanged = (rgb[0] != oldRgb[0] || rgb[1] != oldRgb[1] || rgb[2] != oldRgb[2]);
      if(colorChanged)
        myScalarBarActor->SetDistributionColor(rgb);
    }
  }

  double aMin = myMinEdit->text().toDouble();
  double aMax = myMaxEdit->text().toDouble();
  vtkLookupTable* myLookupTable =
    static_cast<vtkLookupTable*>(myScalarBarActor->GetLookupTable());
  double oldMinMax[2] = { myLookupTable->GetRange()[0], myLookupTable->GetRange()[1] };
  bool rangeChanges = ( fabs( oldMinMax[0] - aMin ) + fabs( oldMinMax[1] - aMax ) >
                        0.001 * ( aMax-aMin + oldMinMax[1]-oldMinMax[0] ));
  
  bool nbColorsChanged = (myColorsSpin->value() != myScalarBarActor->GetMaximumNumberOfColors());
  if(nbColorsChanged)
    myScalarBarActor->SetMaximumNumberOfColors(myColorsSpin->value());
  

  myLookupTable->SetRange( aMin, aMax );
  myLookupTable->SetNumberOfTableValues(myColorsSpin->value());
  myLookupTable->Build();

  if( nbColorsChanged || rangeChanges)
    myActor->UpdateDistribution();
  
#ifndef DISABLE_PLOT2DVIEWER
  if( myActor->GetPlot2Histogram() && 
      (nbColorsChanged || 
       rangeChanges ||
       distributionTypeChanged || 
       colorChanged ))
    SMESH::ProcessIn2DViewers(myActor);
#endif
    
    

  SMESH::RepaintCurrentView();
  return true;
}
void SMESHGUI_Preferences_ScalarBarDlg::onCancel ( ) [protected, slot]

SMESHGUI_Preferences_ScalarBarDlg.onCancel.

Cancel button slot

Definition at line 589 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

Referenced by onOk(), and SMESHGUI_Preferences_ScalarBarDlg().

{
  close();
}
void SMESHGUI_Preferences_ScalarBarDlg::onDistributionActivated ( bool  on) [protected, slot]
void SMESHGUI_Preferences_ScalarBarDlg::onDistributionChanged ( int  id) [protected, slot]

SMESHGUI_Preferences_ScalarBarDlg.onDistributionChanged.

Called when coloring type of the distribution is changed

Definition at line 774 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

References myDistribColorGrp, myDistributionColorLbl, myDMonoColor, and myMonoColorBtn.

Referenced by onDistributionActivated(), onSelectionChanged(), and SMESHGUI_Preferences_ScalarBarDlg().

                                                                      {

  bool isActive = myDistribColorGrp->id(myDMonoColor) == id;

  myMonoColorBtn->setEnabled(isActive);
  myDistributionColorLbl->setEnabled(isActive);
}
void SMESHGUI_Preferences_ScalarBarDlg::onHelp ( ) [protected, slot]

SMESHGUI_Preferences_ScalarBarDlg.onHelp.

Help button slot

Definition at line 601 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

References myHelpFileName, and mySMESHGUI.

Referenced by SMESHGUI_Preferences_ScalarBarDlg().

{
  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));
  }
}
void SMESHGUI_Preferences_ScalarBarDlg::onOk ( ) [protected, slot]

SMESHGUI_Preferences_ScalarBarDlg.onOk.

OK button slot

Definition at line 466 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

References onApply(), and onCancel().

Referenced by SMESHGUI_Preferences_ScalarBarDlg().

{
  if ( onApply() )
    onCancel();
}
void SMESHGUI_Preferences_ScalarBarDlg::onOrientationChanged ( ) [protected, slot]
void SMESHGUI_Preferences_ScalarBarDlg::onSelectionChanged ( ) [protected, slot]

SMESHGUI_Preferences_ScalarBarDlg.onSelectionChanged.

Called when selection changed

Definition at line 628 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

References SMESH_Actor.eNone, SMESH.FindActorByEntry(), SMESH_Actor.GetControlMode(), SMESH_ScalarBarActor.GetDistributionColor(), SMESH_ScalarBarActor.GetDistributionColoringType(), SMESH_ScalarBarActor.GetDistributionVisibility(), SMESH_Actor.GetScalarBarActor(), Handle(), myActor, myApplyBtn, myColorsSpin, myDistribColorGrp, myDistributionGrp, myDMonoColor, myDMultiColor, myFontGrp, myHorizRadioBtn, myIniH, myIniOrientation, myIniW, myIniX, myIniY, myLabColorGrp, myLabelsBoldCheck, myLabelsColorBtn, myLabelsFontCombo, myLabelsItalicCheck, myLabelsShadowCheck, myLabelsSpin, myMaxEdit, myMinEdit, myMonoColorBtn, myOkBtn, myOrientationGrp, myOriginDimGrp, myRangeGrp, mySelectionMgr, myTitleBoldCheck, myTitleColorBtn, myTitleFontCombo, myTitleItalicCheck, myTitleShadowCheck, myVertRadioBtn, onDistributionActivated(), onDistributionChanged(), setOriginAndSize(), SMESH_MONOCOLOR_TYPE, and VTK_ORIENT_VERTICAL.

Referenced by SMESHGUI_Preferences_ScalarBarDlg().

{
  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;
        SMESH_ScalarBarActor* 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 );

        int coloringType = myScalarBarActor->GetDistributionColoringType();
        myScalarBarActor->GetDistributionColor( aTColor );
        myMonoColorBtn->setColor( QColor( (int)( aTColor[0]*255 ), (int)( aTColor[1]*255 ), (int)( aTColor[2]*255 ) ) );
        if ( coloringType == SMESH_MONOCOLOR_TYPE ) {
          myDMonoColor->setChecked(true);
          onDistributionChanged(myDistribColorGrp->id(myDMonoColor));    
        } else {
          myDMultiColor->setChecked(true);
          onDistributionChanged(myDistribColorGrp->id(myDMultiColor));
        }
        myDistributionGrp->setChecked((bool)myScalarBarActor->GetDistributionVisibility());
        onDistributionActivated(myScalarBarActor->GetDistributionVisibility());
        
        
        myRangeGrp->setEnabled( true );
        myFontGrp->setEnabled( true );
        myLabColorGrp->setEnabled( true );
        myOrientationGrp->setEnabled( true );
        myOriginDimGrp->setEnabled( true );
        myOkBtn->setEnabled( true );
        myApplyBtn->setEnabled( true );
        myDistributionGrp->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 );
  myDistributionGrp->setEnabled( false );
}
void SMESHGUI_Preferences_ScalarBarDlg::onXYChanged ( ) [protected, slot]

SMESHGUI_Preferences_ScalarBarDlg.onXYChanged.

Called when X, Y values are changed

Definition at line 737 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

References myHeightSpin, myWidthSpin, myXSpin, and myYSpin.

Referenced by setOriginAndSize(), and SMESHGUI_Preferences_ScalarBarDlg().

{
  myWidthSpin->setMaximum( 1.0 - myXSpin->value() );
  myHeightSpin->setMaximum( 1.0 - myYSpin->value() );
}
void SMESHGUI_Preferences_ScalarBarDlg::ScalarBarProperties ( SMESHGUI theModule) [static]

SMESHGUI_Preferences_ScalarBarDlg.ScalarBarProperties.

Gets the only instance of "Scalar Bar Properties" dialog box

Definition at line 85 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

References myDlg, and SMESHGUI_Preferences_ScalarBarDlg().

Referenced by SMESHGUI.OnGUIEvent().

{
  if (!myDlg) {
    myDlg = new SMESHGUI_Preferences_ScalarBarDlg( theModule );
    myDlg->show();
  } else {
    myDlg->show();
    myDlg->raise();
    myDlg->activateWindow();
  }
}
void SMESHGUI_Preferences_ScalarBarDlg::setOriginAndSize ( const double  x,
const double  y,
const double  w,
const double  h 
)

SMESHGUI_Preferences_ScalarBarDlg.setOriginAndSize.

Called when X, Y values are changed

Definition at line 750 of file SMESHGUI_Preferences_ScalarBarDlg.cxx.

References myHeightSpin, myWidthSpin, myXSpin, myYSpin, and onXYChanged().

Referenced by onOrientationChanged(), onSelectionChanged(), and SMESHGUI_Preferences_ScalarBarDlg().

{
  blockSignals( true );
  myXSpin->setValue( x );
  myYSpin->setValue( y );
  myWidthSpin->setMaximum( 1.0 );
  myWidthSpin->setValue( w );
  myHeightSpin->setMaximum( 1.0 );
  myHeightSpin->setValue( h );
  blockSignals( false );
  onXYChanged();
}

Field Documentation

SalomeApp_IntSpinBox* SMESHGUI_Preferences_ScalarBarDlg.myColorsSpin [private]

Definition at line 60 of file SMESHGUI_Preferences_ScalarBarDlg.h.

Referenced by closeEvent(), and ScalarBarProperties().

SalomeApp_IntSpinBox* SMESHGUI_Preferences_ScalarBarDlg.myLabelsSpin [private]
LightApp_SelectionMgr* SMESHGUI_Preferences_ScalarBarDlg.mySelectionMgr [private]
Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS