Salome HOME
Merge branch 'BR_v14_rc' of ssh://git.salome-platform.org/modules/hydro into BR_v14_rc
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_CalculationDlg.cxx
index 7e1530197d4783f896faab2911b5cb548298be71..396e2c579c436b469beb17c07325d9b77c6551dc 100644 (file)
@@ -245,6 +245,8 @@ QWizardPage* HYDROGUI_CalculationDlg::createObjectsPage() {
 
   connect( myGeomObjects, SIGNAL( orderChanged() ), SLOT( onOrderChanged() ) );
 
+  connect( myPriorityWidget, SIGNAL( ruleChanged() ), SLOT( onRuleChanged() ) );
+
   return aPage;
 }
 
@@ -443,7 +445,9 @@ QWizardPage* HYDROGUI_CalculationDlg::createLandCoversPage() {
   connect( anAddBtn, SIGNAL( clicked() ), SIGNAL( addLandCovers() ) );
   connect( aRemoveBtn, SIGNAL( clicked() ), SIGNAL( removeLandCovers() ) );
 
-  connect( myLandCovers, SIGNAL( orderLandCoverChanged() ), SLOT( onOrderLandCoverChanged() ) );
+  connect( myLandCovers, SIGNAL( orderChanged() ), SLOT( onOrderLandCoverChanged() ) );
+
+  connect( myLandCoverPriorityWidget, SIGNAL( ruleChanged() ), SLOT( onLandCoverRuleChanged() ) );
 
   return aPage;
 }
@@ -453,13 +457,16 @@ QWizardPage* HYDROGUI_CalculationDlg::createZonesPage() {
   QFrame* aFrame = new QFrame( aPage );
 
   QGridLayout* aLayout = new QGridLayout( aPage );
+
+  QLabel* aResultsOnGeomObjectsLabel = new QLabel( tr( "RESULTS_ON_GEOMETRY_OBJECTS" ), aFrame );
   
   myBrowser = new HYDROGUI_DataBrowser( module(), NULL, aPage );
   myBrowser->setAutoOpenLevel( 3 );
   aLayout->setMargin( 5 );
   aLayout->setSpacing( 5 );
 
-  aLayout->addWidget( myBrowser, 0, 0, 1, 2 );
+  aLayout->addWidget( aResultsOnGeomObjectsLabel, 0, 0 );
+  aLayout->addWidget( myBrowser, 1, 0, 1, 2 );
 
   myBathymetryLabel = new QLabel( tr( "BATHYMETRY" ), aFrame );
   myBathymetryChoice = new QComboBox( aFrame );
@@ -467,8 +474,8 @@ QWizardPage* HYDROGUI_CalculationDlg::createZonesPage() {
   myBathymetryChoice->setVisible( false );
   myBathymetryLabel->setVisible( false );
 
-  aLayout->addWidget( myBathymetryLabel, 1, 0 );
-  aLayout->addWidget( myBathymetryChoice, 1, 1 );
+  aLayout->addWidget( myBathymetryLabel, 2, 0 );
+  aLayout->addWidget( myBathymetryChoice, 2, 1 );
 
   aPage->setLayout( aLayout );
 
@@ -490,12 +497,15 @@ QWizardPage* HYDROGUI_CalculationDlg::createLandCoverZonesPage() {
 
   QGridLayout* aLayout = new QGridLayout( aPage );
   
+  QLabel* aResultsOnLandCoversLabel = new QLabel( tr( "RESULTS_ON_LAND_COVERS" ), aFrame );
+
   myLandCoverBrowser = new HYDROGUI_DataBrowser( module(), NULL, aPage, true );
   myLandCoverBrowser->setAutoOpenLevel( 3 );
   aLayout->setMargin( 5 );
   aLayout->setSpacing( 5 );
 
-  aLayout->addWidget( myLandCoverBrowser, 0, 0, 1, 2 );
+  aLayout->addWidget( aResultsOnLandCoversLabel, 0, 0 );
+  aLayout->addWidget( myLandCoverBrowser, 1, 0, 1, 2 );
 
   myStricklerTypeLabel = new QLabel( tr( "STRICKLER_TYPE" ), aFrame );
   myStricklerTypeChoice = new QComboBox( aFrame );
@@ -503,8 +513,8 @@ QWizardPage* HYDROGUI_CalculationDlg::createLandCoverZonesPage() {
   myStricklerTypeLabel->setVisible( false );
   myStricklerTypeChoice->setVisible( false );  
 
-  aLayout->addWidget( myStricklerTypeLabel, 1, 0 );
-  aLayout->addWidget( myStricklerTypeChoice, 1, 1 );
+  aLayout->addWidget( myStricklerTypeLabel, 2, 0 );
+  aLayout->addWidget( myStricklerTypeChoice, 2, 1 );
 
   aPage->setLayout( aLayout );
 
@@ -1138,6 +1148,17 @@ void HYDROGUI_CalculationDlg::onOrderChanged()
     myGeomObjects->undoLastMove();
 }
 
+/**
+  Slot called when priority rule for geometry objects is changed.
+ */
+void HYDROGUI_CalculationDlg::onRuleChanged()
+{
+  bool isConfirmed = true;
+  emit ruleChanged( isConfirmed );
+  if( !isConfirmed )
+    myPriorityWidget->undoLastChange();
+}
+
 void HYDROGUI_CalculationDlg::setStricklerTable( const QString& theStricklerTableName, bool theBlockSignals )
 {
   bool isBlocked;
@@ -1224,3 +1245,14 @@ void HYDROGUI_CalculationDlg::onOrderLandCoverChanged()
   else
     myLandCovers->undoLastMove();  
 }
+
+/**
+  Slot called when priority rule for land covers is changed.
+ */
+void HYDROGUI_CalculationDlg::onLandCoverRuleChanged()
+{
+  bool isConfirmed = true;
+  emit ruleLandCoverChanged( isConfirmed );
+  if( !isConfirmed )
+    myLandCoverPriorityWidget->undoLastChange();
+}