Salome HOME
Suppression de l'option "Delete"
[modules/homard.git] / src / HOMARDGUI / MonCreateHypothesis.cxx
index fcbfc5183da5f5250a0b8f925da87d560d0cd07e..1e30fc359288bd0d7831d819b1d612174e6f47ac 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2020  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -41,7 +41,7 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
 // ---------------------------------------------------------------------------------
 /* Constructs a MonCreateHypothesis */
     :
-    QDialog(0), Ui_CreateHypothesis(),
+    QScrollArea(0), Ui_CreateHypothesis(),
     _parent(parent), _Name(Name),
     _aCaseName(caseName), _aFieldFile(aFieldFile),
     _aFieldName(""),
@@ -52,13 +52,15 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
     _NivMax(-1),
     _DiamMin(-1.),
     _AdapInit(0),
-    _LevelOutput(0)
+    _ExtraOutput(1)
 
 {
       MESSAGE("Constructeur") ;
       myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen0);
       setupUi(this);
-      setModal(modal);
+      if ( modal ) { setWindowModality(Qt::WindowModal); }
+      else         { setWindowModality(Qt::NonModal); }
+      setWindowFlags( Qt::WindowStaysOnTopHint ) ;
       InitConnect();
 
       SetNewName();
@@ -72,7 +74,14 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
       }
       SetFieldNo();
       GBAdvancedOptions->setVisible(0);
-      CBLevelOutput->setChecked(false);
+      CBOutputLevel->setChecked(false);
+      CBOutputQuality->setChecked(false);
+      CBOutputDiameter->setChecked(false);
+      CBOutputParent->setChecked(false);
+      CBOutputVoisins->setChecked(false);
+      _ExtraOutput = 1 ;
+//
+      adjustSize();
 }
 
 // ------------------------------------------------------------------------
@@ -107,7 +116,6 @@ void MonCreateHypothesis::InitConnect()
     connect( CBJump,       SIGNAL(stateChanged(int)), this, SLOT(SetUseField()));
     connect( PBZoneNew,    SIGNAL(pressed()), this, SLOT(PushZoneNew()));
     connect( PBZoneEdit,   SIGNAL(pressed()), this, SLOT(PushZoneEdit()) );
-    connect( PBZoneDelete, SIGNAL(pressed()), this, SLOT(PushZoneDelete()) );
     connect( CBGroupe,     SIGNAL(stateChanged(int)), this, SLOT(SetFiltrage()));
 
     connect( RBFieldNo,    SIGNAL(clicked()), this, SLOT(SetFieldNo()));
@@ -161,7 +169,13 @@ bool MonCreateHypothesis::PushOnApply()
   }
 
 // Mise en place des attributs
-  aHypothesis->SetAdapRefinUnRef(_aTypeAdap,_aTypeRaff,_aTypeDera);
+  if ( _aTypeAdap == -1 )
+  {
+    int TypeRaffDera ;
+    if ( _aTypeRaff == 1 ) { TypeRaffDera = 1 ; }
+    else                   { TypeRaffDera = -1 ; }
+    aHypothesis->SetUnifRefinUnRef(TypeRaffDera);
+  }
   aHypothesis->SetTypeFieldInterp(_TypeFieldInterp);
   aHypothesis->SetCaseCreation(_aCaseName.toStdString().c_str());
 
@@ -174,16 +188,21 @@ bool MonCreateHypothesis::PushOnApply()
   if (CBAdvanced->isChecked())
   {
 // Enregistrement du niveau maximal
-    _NivMax = spinBoxNivMax->value() ;
+    _NivMax = SpinBoxNivMax->value() ;
     aHypothesis->SetNivMax(_NivMax);
 // Enregistrement du diametre minimal
     _DiamMin = doubleSpinBoxDiamMin->value() ;
     aHypothesis->SetDiamMin(_DiamMin);
 // Enregistrement de l'intialisation de l'adaptation
     aHypothesis->SetAdapInit(_AdapInit);
-// Sortie des niveaux de raffinement
-    if (CBLevelOutput->isChecked()) { _LevelOutput = 1 ; }
-    aHypothesis->SetLevelOutput(_LevelOutput);
+// Sortie optionnelle des niveaux de raffinement, des diametres, des qualites
+    _ExtraOutput = 1 ;
+    if (CBOutputLevel->isChecked())    { _ExtraOutput =  2 ; }
+    if (CBOutputQuality->isChecked())  { _ExtraOutput =  3*_ExtraOutput ; }
+    if (CBOutputDiameter->isChecked()) { _ExtraOutput =  5*_ExtraOutput ; }
+    if (CBOutputParent->isChecked())   { _ExtraOutput =  7*_ExtraOutput ; }
+    if (CBOutputVoisins->isChecked())  { _ExtraOutput = 11*_ExtraOutput ; }
+    aHypothesis->SetExtraOutput(_ExtraOutput);
   }
 
   HOMARD_UTILS::updateObjBrowser() ;
@@ -203,8 +222,8 @@ void MonCreateHypothesis::PushOnOK()
 void MonCreateHypothesis::PushOnHelp()
 // ------------------------------------------------------------------------
 {
-  char* LanguageShort = myHomardGen->GetLanguageShort();
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_hypothese.html"), QString(""), QString(LanguageShort));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_hypothese.html"), QString(""), QString(LanguageShort.c_str()));
 }
 // -------------------------------------------------
 void MonCreateHypothesis::SetNewName()
@@ -222,9 +241,9 @@ void MonCreateHypothesis::SetNewName()
     {
       if ( aName ==  QString(MyObjects[i]))
       {
-          num=num+1;
-          aName="";
-          break;
+        num ++ ;
+        aName = "" ;
+        break ;
       }
     }
   }
@@ -241,8 +260,10 @@ void MonCreateHypothesis::SetUniforme()
   else                         { GBFieldFile->setVisible(1); }
   GBAreaManagement->setVisible(0);
   GBUniform->setVisible(1);
-  adjustSize();
+
   _aTypeAdap = -1 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetChamp()
@@ -268,9 +289,10 @@ void MonCreateHypothesis::SetChamp()
   GBAreaManagement->adjustSize();
   GBFieldManagement->adjustSize();
   GBFieldFile->adjustSize();
-  adjustSize();
 
   _aTypeAdap = 1 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetZone()
@@ -282,10 +304,12 @@ void MonCreateHypothesis::SetZone()
   if ( _TypeFieldInterp == 0 ) { GBFieldFile->setVisible(0); }
   else                         { GBFieldFile->setVisible(1); }
   GBAreaManagement->setVisible(1);
-  adjustSize();
+
   _aTypeRaff = 1 ;
   _aTypeDera = 0 ;
   _aTypeAdap = 0 ;
+//
+  adjustSize();
 }
 
 // ------------------------------------------------------------------------
@@ -293,7 +317,7 @@ void MonCreateHypothesis::PushZoneNew()
 // ------------------------------------------------------------------------
 {
   MESSAGE("Debut de MonCreateHypothesis::PushZoneNew")
-  MonCreateZone *aDlg = new MonCreateZone(this, TRUE, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), _aCaseName) ;
+  MonCreateZone *aDlg = new MonCreateZone(this, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), _aCaseName) ;
   aDlg->show();
 }
 
@@ -311,18 +335,9 @@ void MonCreateHypothesis::PushZoneEdit()
     return;
   }
   QString zoneName = monItem->text().trimmed();
-  MonEditZone *aDlg = new MonEditZone(this, TRUE, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), _aCaseName, zoneName) ;
+  MonEditZone *aDlg = new MonEditZone(this, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), _aCaseName, zoneName) ;
   aDlg->show();
 }
-// ------------------------------------------------------------------------
-void MonCreateHypothesis::PushZoneDelete()
-// ------------------------------------------------------------------------
-{
-  MESSAGE("Debut de MonCreateHypothesis::PushZoneDelete")
-  QMessageBox::warning( 0, QObject::tr("HOM_WARNING"),
-                          QObject::tr("HOM_INACTIVE_BUTTON") );
-  return;
-}
 
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::GetAllZones()
@@ -670,7 +685,8 @@ void MonCreateHypothesis::SetUCL2()
 void MonCreateHypothesis::SetUCInf()
 // ------------------------------------------------------------------------
 {
-  _UsCmpI = 1 ;
+  if ( TWCMP->rowCount() == 1 ) { _UsCmpI = 2 ; }
+  else                          { _UsCmpI = 1 ; }
   RBInf->setChecked(true);
 }
 // ------------------------------------------------------------------------
@@ -685,7 +701,7 @@ void MonCreateHypothesis::SetFiltrage()
 // ------------------------------------------------------------------------
 {
   if (!CBGroupe->isChecked()) return;
-  MonCreateListGroup *aDlg = new MonCreateListGroup(this, NULL, TRUE, HOMARD::HOMARD_Gen::_duplicate(myHomardGen),_aCaseName, _aListeGroupes) ;
+  MonCreateListGroup *aDlg = new MonCreateListGroup(this, NULL, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen),_aCaseName, _aListeGroupes) ;
   aDlg->show();
 }
 
@@ -767,8 +783,8 @@ void MonCreateHypothesis::AssocieComposants()
 
   _aFieldName=CBFieldName->currentText();
   aHypothesis->SetField(CORBA::string_dup(_aFieldName.toStdString().c_str()) ) ;
-  aHypothesis->SetRefinThr( _TypeThR, _ThreshR ) ;
-  aHypothesis->SetUnRefThr( _TypeThC, _ThreshC ) ;
+  if ( _TypeThR > 0 ) { aHypothesis->SetRefinThr( _TypeThR, _ThreshR ) ; }
+  if ( _TypeThC > 0 ) { aHypothesis->SetUnRefThr( _TypeThC, _ThreshC ) ; }
   aHypothesis->SetUseField( _UsField ) ;
   aHypothesis->SetUseComp( _UsCmpI ) ;
   _aListeComposant = GetListCompChecked() ;
@@ -797,8 +813,9 @@ void MonCreateHypothesis::SetFieldNo()
   else                   { GBFieldFile->setVisible(0); }
   TWField->setVisible(0);
 //
-   adjustSize();
   _TypeFieldInterp = 0 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetFieldAll()
@@ -819,7 +836,8 @@ void MonCreateHypothesis::SetFieldAll()
   TWField->setVisible(0);
 //
   _TypeFieldInterp = 1 ;
-   adjustSize();
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetFieldChosen()
@@ -866,7 +884,8 @@ void MonCreateHypothesis::SetFieldChosen()
   TWField->setVisible(1);
 
   _TypeFieldInterp = 2 ;
-   adjustSize();
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetAdvanced()
@@ -875,21 +894,22 @@ void MonCreateHypothesis::SetAdvanced()
   MESSAGE("Debut de SetAdvanced ");
   if (CBAdvanced->isChecked())
   { GBAdvancedOptions->setVisible(1);
-    if (_aFieldFile != QString(""))
-    { GBAdapInit->setVisible(1) ;
-    }
-    else
-    { GBAdapInit->setVisible(0) ;
-    }
+    if (_aFieldFile != QString("")) { GBAdapInit->setVisible(1) ; }
+    else                            { GBAdapInit->setVisible(0) ; }
   }
   else
   { GBAdvancedOptions->setVisible(0);
     _NivMax = -1 ;
     _DiamMin = -1. ;
     _AdapInit = 0 ;
-    CBLevelOutput->setChecked(false);
-    _LevelOutput = 0 ;
+    CBOutputLevel->setChecked(false);
+    CBOutputQuality->setChecked(false);
+    CBOutputDiameter->setChecked(false);
+    CBOutputParent->setChecked(false);
+    CBOutputVoisins->setChecked(false);
+    _ExtraOutput = 1 ;
   }
+//
   adjustSize();
 }
 // ------------------------------------------------------------------------