- 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();
- myScalarBarActor->GetLookupTable()->SetRange( aMin, aMax );
- SMESH::RepaintCurrentView();
- } else {
- // Scalar Bar preferences
- SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
- if (!mgr) return false;
-
- QColor titleColor = myTitleColorBtn->paletteBackgroundColor();
- mgr->setValue("SMESH", "ScalarBarTitleColor",
- QString().sprintf("%d:%d:%d", titleColor.red(), titleColor.green(), titleColor.blue()));
- if (myTitleFontCombo->currentItem() == 0)
- mgr->setValue("SMESH", "ScalarBarTitleFont", "Arial");
- else if (myTitleFontCombo->currentItem() == 1)
- mgr->setValue("SMESH", "ScalarBarTitleFont", "Courier");
- else
- mgr->setValue("SMESH", "ScalarBarTitleFont", "Times");
-
- mgr->setValue("SMESH", "ScalarBarTitleBold" , myTitleBoldCheck ->isChecked() ? "true" : "false");
- mgr->setValue("SMESH", "ScalarBarTitleItalic", myTitleItalicCheck->isChecked() ? "true" : "false");
- mgr->setValue("SMESH", "ScalarBarTitleShadow", myTitleShadowCheck->isChecked() ? "true" : "false");
-
- QColor labelColor = myLabelsColorBtn->paletteBackgroundColor();
- mgr->setValue("SMESH", "ScalarBarLabelColor",
- QString().sprintf("%d:%d:%d", labelColor.red(), labelColor.green(),labelColor. blue()));
-
- if (myLabelsFontCombo->currentItem() == 0)
- mgr->setValue("SMESH", "ScalarBarLabelFont", "Arial");
- else if ( myLabelsFontCombo->currentItem() == 1 )
- mgr->setValue("SMESH", "ScalarBarLabelFont", "Courier");
- else
- mgr->setValue("SMESH", "ScalarBarLabelFont", "Times");
-
- mgr->setValue("SMESH", "ScalarBarLabelBold", myLabelsBoldCheck->isChecked() ? "true" : "false");
- mgr->setValue("SMESH", "ScalarBarLabelItalic", myLabelsItalicCheck->isChecked() ? "true" : "false");
- mgr->setValue("SMESH", "ScalarBarLabelShadow", myLabelsShadowCheck->isChecked() ? "true" : "false");
-
- mgr->setValue("SMESH", "ScalarBarNbOfColors", myColorsSpin->value());
- mgr->setValue("SMESH", "ScalarBarNbOfLabels", myLabelsSpin->value());
-
- mgr->setValue("SMESH", "ScalarBarOrientation", myHorizRadioBtn->isChecked() ? "Horizontal" : "Vertical");
-
- mgr->setValue("SMESH", "ScalarBarXPosition", myXSpin->value());
- mgr->setValue("SMESH", "ScalarBarYPosition", myYSpin->value());
- mgr->setValue("SMESH", "ScalarBarWidth", myWidthSpin->value());
- mgr->setValue("SMESH", "ScalarBarHeight", myHeightSpin->value());
+ // 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);
+ }