]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
refs #639: the button to regenerate colors
authorasl <asl@opencascade.com>
Fri, 21 Aug 2015 12:23:29 +0000 (15:23 +0300)
committerasl <asl@opencascade.com>
Fri, 21 Aug 2015 12:23:29 +0000 (15:23 +0300)
src/HYDROGUI/HYDROGUI_CalculationDlg.cxx
src/HYDROGUI/HYDROGUI_CalculationDlg.h
src/HYDROGUI/HYDROGUI_CalculationOp.cxx
src/HYDROGUI/HYDROGUI_CalculationOp.h
src/HYDROGUI/resources/HYDROGUI_msg_en.ts

index 396e2c579c436b469beb17c07325d9b77c6551dc..6a6e60f09f9c528f7577d344bce32d3d729da412 100644 (file)
@@ -477,6 +477,9 @@ QWizardPage* HYDROGUI_CalculationDlg::createZonesPage() {
   aLayout->addWidget( myBathymetryLabel, 2, 0 );
   aLayout->addWidget( myBathymetryChoice, 2, 1 );
 
+  QPushButton* aRegenerateBtn = new QPushButton( tr( "REGENERATE_COLORS" ), this );
+  aLayout->addWidget( aRegenerateBtn, 3, 0 );
+
   aPage->setLayout( aLayout );
 
   connect( myBrowser, SIGNAL( dataChanged() ), SLOT( onDataChanged() ) );
@@ -487,7 +490,7 @@ QWizardPage* HYDROGUI_CalculationDlg::createZonesPage() {
       SIGNAL( dropped( const QList<SUIT_DataObject*>&, SUIT_DataObject*, int, Qt::DropAction ) ),
       SLOT( onZonesDropped( const QList<SUIT_DataObject*>&, SUIT_DataObject*, int, Qt::DropAction ) ) );
   connect( myBrowser, SIGNAL( newRegion() ), this, SLOT( OnNewRegion() ) );
-
+  connect( aRegenerateBtn, SIGNAL( clicked() ), this, SIGNAL( regenerateColors() ) );
   return aPage;
 }
 
index c0e972c190c70d0c083174fa6b3e7c5ff8b87d04..41f010ba7681d84ba11e687d28fcf256e4d9c5b3 100644 (file)
@@ -169,6 +169,8 @@ signals:
   void                       StricklerTableSelected( const QString & theObjName );
   void                       setMergeStricklerType( int theMergeType, QString& theStricklerTypeName );
 
+  void                       regenerateColors();
+
 protected:
 
   virtual bool               acceptCurrent() const;
index 2951e5838d5dd4003cb4ab77bac4bb40f461a312..edce573b2294e7e2bd3bc4afe9f68df1566c1e42 100644 (file)
@@ -248,6 +248,9 @@ HYDROGUI_InputPanel* HYDROGUI_CalculationOp::createInputPanel() const
   connect( aPanel, SIGNAL( StricklerTableSelected( const QString & ) ), 
     SLOT( onStricklerTableSelected( const QString & ) ) );
 
+  connect( aPanel, SIGNAL( regenerateColors() ), this, 
+    SLOT( onRegenerateColors() ) );
+
   return aPanel;
 }
 
@@ -1329,29 +1332,13 @@ QColor HYDROGUI_CalculationOp::GenerateDefaultZonesColor( int theIndex,
                                                           float theSaturation/* = 0.5*/,
                                                           float theValue/* = 0.95*/ ) const
 {
-  float aGoldenRatioConjugate = (float)(360./582.);
-  float aHue = (float)(rand()%100);
-  aHue += aGoldenRatioConjugate*theIndex;
-  aHue -= floor(aHue);
-
-  float aR = 0., aG = 0., aB = 0.;
-  int aHueInt = (int)(aHue*6.);
-  float aF = aHue*6. - aHueInt;
-  float aP = theValue * (1. - theSaturation);
-  float aQ = theValue * (1. - aF*theSaturation);
-  float aT = theValue * (1. - (1. - aF) * theSaturation);
-  switch (aHueInt)
-  {
-  case 0: { aR = theValue; aG = aT; aB = aP; break; }
-  case 1: { aR = aQ; aG = theValue; aB = aP; break; }
-  case 2: { aR = aP; aG = theValue; aB = aT; break; }
-  case 3: { aR = aP; aG = aQ; aB = theValue; break; }
-  case 4: { aR = aT; aG = aP; aB = theValue; break; }
-  case 5: { aR = theValue; aG = aP; aB = aQ; break; }
-  default: break;
-  }
-
-  QColor aColor = QColor( (int)(aR*256.), (int)(aG*256.), (int)(aB*256.) );
+  float aHue = ( rand()%1000 ) * 0.001f;
+
+  QColor aColor;
+  aColor.setHsl( (int)(aHue*255.), 128, 128 );
+  int r = aColor.red();
+  int g = aColor.green();
+  int b = aColor.blue();
   return ( aColor.isValid() ? aColor : HYDROData_ImmersibleZone::DefaultFillingColor() );
 }
 
@@ -1798,3 +1785,11 @@ void HYDROGUI_CalculationOp::onRuleLandCoverChanged( bool& isConfirmed )
   if( isConfirmed )
     myEditedObject->SetToUpdate( true );
 }
+
+void HYDROGUI_CalculationOp::onRegenerateColors()
+{
+  // For geometry zones
+  AssignDefaultZonesColors( false );
+  setZonesVisible( false, false );
+  setZonesVisible( true, false );
+}
index cefe99bfddfafc1970be36fa22602abd74a1b61d..1a5998ad08298e7226992fd26f1e5c0b557be3c8 100644 (file)
@@ -153,6 +153,8 @@ protected slots:
   void onRuleChanged( bool& isConfirmed );
   void onRuleLandCoverChanged( bool& isConfirmed );
 
+  void onRegenerateColors();
+
 private:
   void                            createPreview( const bool theLandCover);
   void                            closePreview( bool theRemoveViewManager = true );
index 27f896bee81aa218065884df33756a44e778384f..b9ef26ae90abf71d0abb1f2b0f3829975fb30e0d 100644 (file)
@@ -377,6 +377,10 @@ All supported formats (*.brep *.iges *.igs *.step *.stp)</translation>
       <source>RESULTS_ON_LAND_COVERS</source>
       <translation>Results on land covers</translation>
     </message>
+    <message>
+      <source>REGENERATE_COLORS</source>
+      <translation>Regenerate colors</translation>
+    </message>
   </context>
 
   <context>