]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
DCQ: New Architecture
authordcq <dcq@opencascade.com>
Mon, 17 Nov 2003 16:30:37 +0000 (16:30 +0000)
committerdcq <dcq@opencascade.com>
Mon, 17 Nov 2003 16:30:37 +0000 (16:30 +0000)
src/RepairGUI/RepairGUI_SuppressHoleDlg.cxx
src/RepairGUI/RepairGUI_SuppressHoleDlg.h

index f19590be24310b3d8f34e2ee25256628af3e8540..8a7a36b1eaf2561e47abde53038670e058d42655 100644 (file)
@@ -30,27 +30,11 @@ using namespace std;
 #include "RepairGUI_SuppressHoleDlg.h"
 
 #include "DisplayGUI.h"
-#include "TopExp_Explorer.hxx"
-
 
 #include "QAD_RightFrame.h"
 #include "OCCViewer_Viewer3d.h"
 
-#include <qapplication.h>
-#include <qbuttongroup.h>
-#include <qcheckbox.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qlayout.h>
-#include <qvariant.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-#include <qimage.h>
-#include <qpixmap.h>
-
+#include <TopExp_Explorer.hxx>
 
 //=================================================================================
 // class    : RepairGUI_SuppressHoleDlg()
@@ -59,199 +43,43 @@ using namespace std;
 //            The dialog will by default be modeless, unless you set 'modal' to
 //            TRUE to construct a modal dialog.
 //=================================================================================
-RepairGUI_SuppressHoleDlg::RepairGUI_SuppressHoleDlg( QWidget* parent, 
-                                                         const char* name,
-                                                         RepairGUI* theRepairGUI,
-                                                         SALOME_Selection* Sel,
-                                                         Handle (AIS_InteractiveContext) ic,
-                                                         bool modal,
-                                                         WFlags fl )
-  : QDialog( parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
+RepairGUI_SuppressHoleDlg::RepairGUI_SuppressHoleDlg(QWidget* parent, const char* name, RepairGUI* theRepairGUI, SALOME_Selection* Sel, Handle(AIS_InteractiveContext) ic, bool modal, WFlags fl)
+  :GEOMBase_Skeleton(parent, name, Sel, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
 {
   
-  QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_DLG_SUPRESS_HOLE")));
-  QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_SELECT")));
-  QPixmap image2(QAD_Desktop::getResourceManager()->loadPixmap( "GEOM",tr("ICON_DLG_SUPRESS_HOLE_FACE_SHELL")));
-
-  if ( !name )
-    setName( "RepairGUI_SuppressHoleDlg" );
-  resize( 303, 204 ); 
-  setCaption( tr( "GEOM_SUPPRESSHOLE_TITLE"  ) );
-  setSizeGripEnabled( TRUE );
-  RepairGUI_SuppressHoleLayout = new QGridLayout( this ); 
-  RepairGUI_SuppressHoleLayout->setSpacing( 6 );
-  RepairGUI_SuppressHoleLayout->setMargin( 11 );
-  
+  QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_DLG_SUPRESS_HOLE")));
+  QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_DLG_SUPRESS_HOLE_FACE_SHELL")));
+  QPixmap image2(QAD_Desktop::getResourceManager()->loadPixmap("GEOM",tr("ICON_SELECT")));
 
-  /***************************************************************/
-  GroupConstructors = new QButtonGroup( this, "GroupConstructors" );
-  GroupConstructors->setTitle( tr( ""  ) );
-  GroupConstructors->setExclusive( TRUE );
-  GroupConstructors->setColumnLayout(0, Qt::Vertical );
-  GroupConstructors->layout()->setSpacing( 0 );
-  GroupConstructors->layout()->setMargin( 0 );
-  GroupConstructorsLayout = new QGridLayout( GroupConstructors->layout() );
-  GroupConstructorsLayout->setAlignment( Qt::AlignTop );
-  GroupConstructorsLayout->setSpacing( 6 );
-  GroupConstructorsLayout->setMargin( 11 );
-  
-  Constructor1 = new QRadioButton( GroupConstructors, "Constructor1" );
-  Constructor1->setText( tr( ""  ) );
-  Constructor1->setPixmap( image0 );
-  Constructor1->setChecked( TRUE );
-  Constructor1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, Constructor1->sizePolicy().hasHeightForWidth() ) );
-  Constructor1->setMinimumSize( QSize( 50, 0 ) );
-  GroupConstructorsLayout->addWidget( Constructor1, 0, 0 );
-  QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
-  GroupConstructorsLayout->addItem( spacer, 0, 1 );
-
-  Constructor2 = new QRadioButton( GroupConstructors, "Constructor2" );
-  Constructor2->setText( tr( ""  ) );
-  Constructor2->setPixmap( image2 );
-  Constructor2->setChecked( TRUE );
-  Constructor2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, Constructor2->sizePolicy().hasHeightForWidth() ) );
-  Constructor2->setMinimumSize( QSize( 50, 0 ) );
-  GroupConstructorsLayout->addWidget( Constructor2, 0, 2 );  
-  QSpacerItem* spacer_4 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
-  GroupConstructorsLayout->addItem( spacer_4, 0, 3 );  
-  RepairGUI_SuppressHoleLayout->addWidget( GroupConstructors, 0, 0 );
-  
+  setCaption(tr("GEOM_SUPPRESSHOLE_TITLE"));
 
   /***************************************************************/
-  GroupButtons = new QGroupBox( this, "GroupButtons" );
-  GroupButtons->setTitle( tr( ""  ) );
-  GroupButtons->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, GroupButtons->sizePolicy().hasHeightForWidth() ) );
-  GroupButtons->setColumnLayout(0, Qt::Vertical );
-  GroupButtons->layout()->setSpacing( 0 );
-  GroupButtons->layout()->setMargin( 0 );
-  GroupButtonsLayout = new QHBoxLayout( GroupButtons->layout() );
-  GroupButtonsLayout->setAlignment( Qt::AlignTop );
-  GroupButtonsLayout->setSpacing( 6 );
-  GroupButtonsLayout->setMargin( 11 );
-  
-  buttonOk = new QPushButton( GroupButtons, "buttonOk" );
-  buttonOk->setText( tr( "GEOM_BUT_OK"  ) );
-  buttonOk->setAutoDefault( TRUE );
-  buttonOk->setDefault( TRUE );
-  buttonOk->setAccel( 276824143 );
-  GroupButtonsLayout->addWidget( buttonOk );
-  QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
-  GroupButtonsLayout->addItem( spacer_2 );  
-  buttonApply = new QPushButton( GroupButtons, "buttonApply" );
-  buttonApply->setText( tr( "GEOM_BUT_APPLY"  ) );
-  buttonApply->setAutoDefault( TRUE );
-  buttonApply->setDefault( TRUE );
-  GroupButtonsLayout->addWidget( buttonApply );  
-  buttonClose = new QPushButton( GroupButtons, "buttonClose" );
-  buttonClose->setText( tr( "GEOM_BUT_CLOSE"  ) );
-  buttonClose->setAutoDefault( TRUE );
-  GroupButtonsLayout->addWidget( buttonClose );  
-  RepairGUI_SuppressHoleLayout->addWidget( GroupButtons, 2, 0 );
-  
-  /* First constructor */
-  GroupC1 = new QGroupBox( this, "GroupC1" );
-  GroupC1->setTitle( tr( ""  ) );
-  GroupC1->setMinimumSize( QSize( 0, 0 ) );
-  GroupC1->setFrameShape( QGroupBox::Box );
-  GroupC1->setFrameShadow( QGroupBox::Sunken );
-  GroupC1->setColumnLayout(0, Qt::Vertical );
-  GroupC1->layout()->setSpacing( 0 );
-  GroupC1->layout()->setMargin( 0 );
-  GroupC1Layout = new QGridLayout( GroupC1->layout() );
-  GroupC1Layout->setAlignment( Qt::AlignTop );
-  GroupC1Layout->setSpacing( 6 );
-  GroupC1Layout->setMargin( 11 );
-  
-  Layout2 = new QHBoxLayout; 
-  Layout2->setSpacing( 6 );
-  Layout2->setMargin( 0 );
-
-  TextLabelC1A1 = new QLabel( GroupC1, "TextLabelC1A1" );
-  TextLabelC1A1->setText( tr( "GEOM_MAIN_OBJECT"  ) );
-  TextLabelC1A1->setMinimumSize( QSize( 50, 0 ) );
-  TextLabelC1A1->setFrameShape( QLabel::NoFrame );
-  TextLabelC1A1->setFrameShadow( QLabel::Plain );
-  Layout2->addWidget( TextLabelC1A1 );
-  
-  SelectButtonC1A1 = new QPushButton( GroupC1, "SelectButtonC1A1" );
-  SelectButtonC1A1->setText( tr( ""  ) );
-  SelectButtonC1A1->setPixmap( image1 );
-  SelectButtonC1A1->setToggleButton( FALSE );
-  SelectButtonC1A1->setMaximumSize( QSize( 28, 32767 ) );
-  Layout2->addWidget( SelectButtonC1A1 );
-  
-  LineEditC1A1 = new QLineEdit( GroupC1, "LineEditC1A1" );
-  LineEditC1A1->setAlignment( int( QLineEdit::AlignLeft ) );
-  Layout2->addWidget( LineEditC1A1 );
-  
-  GroupC1Layout->addLayout( Layout2, 0, 0 );
-  
-  CheckBox1 = new QCheckBox( GroupC1, "CheckBox1" );
-  CheckBox1->setText( tr( "GEOM_SUPPRESSHOLE_SELECTFACE" ) );
-  CheckBox1->setChecked( FALSE );
-  GroupC1Layout->addWidget( CheckBox1, 1, 0 );
-
-  CheckBox2 = new QCheckBox( GroupC1, "CheckBox2" );
-  CheckBox2->setText( tr( "GEOM_SUPPRESSHOLE_SELECTWIRE" ) );
-  CheckBox2->setChecked( FALSE );
-  GroupC1Layout->addWidget( CheckBox2, 2, 0 );
-  
-  CheckBox3 = new QCheckBox( GroupC1, "CheckBox3" );
-  CheckBox3->setText( tr( "GEOM_SUPPRESSHOLE_SELECTFACE_END" ) );
-  CheckBox3->setChecked( FALSE );
-  GroupC1Layout->addWidget( CheckBox3, 3, 0 );
-  RepairGUI_SuppressHoleLayout->addWidget( GroupC1, 1, 0 );
-
-  /* Second constructor */
-  GroupC2 = new QGroupBox( this, "GroupC2" );
-  GroupC2->setTitle( tr( ""  ) );
-  GroupC2->setMinimumSize( QSize( 0, 0 ) );
-  GroupC2->setFrameShape( QGroupBox::Box );
-  GroupC2->setFrameShadow( QGroupBox::Sunken );
-  GroupC2->setColumnLayout(0, Qt::Vertical );
-  GroupC2->layout()->setSpacing( 0 );
-  GroupC2->layout()->setMargin( 0 );
-  GroupC2Layout = new QGridLayout( GroupC2->layout() );
-  GroupC2Layout->setAlignment( Qt::AlignTop );
-  GroupC2Layout->setSpacing( 6 );
-  GroupC2Layout->setMargin( 11 );
-  
-  Layout3 = new QHBoxLayout; 
-  Layout3->setSpacing( 6 );
-  Layout3->setMargin( 0 );
-  
-  TextLabelC2A1 = new QLabel( GroupC2, "TextLabelC2A1" );
-  TextLabelC2A1->setText( tr( "GEOM_SUPPRESSHOLE_FACE_SHELL"  ) );
-  TextLabelC2A1->setMinimumSize( QSize( 50, 0 ) );
-  TextLabelC2A1->setFrameShape( QLabel::NoFrame );
-  TextLabelC2A1->setFrameShadow( QLabel::Plain );
-  Layout3->addWidget( TextLabelC2A1 );
-  
-  SelectButtonC2A1 = new QPushButton( GroupC2, "SelectButtonC2A1" );
-  SelectButtonC2A1->setText( tr( ""  ) );
-  SelectButtonC2A1->setPixmap( image1 );
-  SelectButtonC2A1->setToggleButton( FALSE );
-  SelectButtonC2A1->setMaximumSize( QSize( 28, 32767 ) );
-  Layout3->addWidget( SelectButtonC2A1 );
-  
-  LineEditC2A1 = new QLineEdit( GroupC2, "LineEditC2A1" );
-  LineEditC2A1->setAlignment( int( QLineEdit::AlignLeft ) );
-  Layout3->addWidget( LineEditC2A1 );
-  
-  GroupC2Layout->addLayout( Layout3, 0, 0 );
-  QSpacerItem* spacer_3 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
-  GroupC2Layout->addItem( spacer_3, 2, 0 );
-  
-  CheckBoxC2_1 = new QCheckBox( GroupC2, "CheckBoxC2_1" );
-  CheckBoxC2_1->setText( tr( "GEOM_SUPPRESSHOLE_SELECT_HOLES_ON_FACE"  ) );
-  CheckBoxC2_1->setChecked( FALSE );
-  
-  GroupC2Layout->addWidget( CheckBoxC2_1, 1, 0 );
-  RepairGUI_SuppressHoleLayout->addWidget( GroupC2, 1, 0 );
+  GroupConstructors->setTitle(tr(""));
+  RadioButton1->setPixmap(image0);
+  RadioButton2->setPixmap(image1);
+  RadioButton3->close(TRUE);
+
+  Group1 = new DlgRef_1Sel3Check_QTD(this, "Group1");
+  Group1->GroupBox1->setTitle(tr(""));
+  Group1->TextLabel1->setText(tr("GEOM_MAIN_OBJECT"));
+  Group1->CheckButton1->setText(tr("GEOM_SUPPRESSHOLE_SELECTFACE"));
+  Group1->CheckButton2->setText(tr("GEOM_SUPPRESSHOLE_SELECTWIRE"));
+  Group1->CheckButton3->setText(tr("GEOM_SUPPRESSHOLE_SELECTFACE_END"));
+  Group1->PushButton1->setPixmap(image2);
+
+  Group2 = new DlgRef_1Sel1Check_QTD(this, "Group2");
+  Group2->GroupBox1->setTitle(tr(""));
+  Group2->TextLabel1->setText(tr("GEOM_SUPPRESSHOLE_FACE_SHELL"));
+  Group2->CheckButton1->setText(tr("GEOM_SUPPRESSHOLE_SELECT_HOLES_ON_FACE"));
+  Group2->PushButton1->setPixmap(image2);
+
+  Layout1->addWidget(Group1, 1, 0);
+  Layout1->addWidget(Group2, 1, 0);
+  /***************************************************************/
 
-  myRepairGUI = theRepairGUI;
   /* Initialisations */
-  Init(Sel, ic) ;
+  myRepairGUI = theRepairGUI;
+  Init(ic);
 }
 
 
@@ -261,84 +89,59 @@ RepairGUI_SuppressHoleDlg::RepairGUI_SuppressHoleDlg( QWidget* parent,
 //=================================================================================
 RepairGUI_SuppressHoleDlg::~RepairGUI_SuppressHoleDlg()
 {
-    // no need to delete child widgets, Qt does it all for us
+  // no need to delete child widgets, Qt does it all for us
 }
 
 
-
 //=================================================================================
 // function : Init()
 // purpose  :
 //=================================================================================
-void RepairGUI_SuppressHoleDlg::Init( SALOME_Selection* Sel, Handle (AIS_InteractiveContext) ic )
+void RepairGUI_SuppressHoleDlg::Init(Handle (AIS_InteractiveContext) ic)
 {
-  GroupC1->show();
-  GroupC2->hide();
-  
-  myConstructorId = 0 ;
-  Constructor1->setChecked( TRUE );
-  myEditCurrentArgument = LineEditC1A1 ;
-  mySelection = Sel;
-  myShape.Nullify() ;
-  
-  myIC = ic ;
-  myUseLocalContext = false ;
-  myOkShape         = false ;
-  myOkSelectFace    = false ;
+  /* init variables */
+  myConstructorId = 0;
+  myEditCurrentArgument = Group1->LineEdit1;
 
-  myListOfIdFace    = new GEOM::GEOM_Shape::ListOfSubShapeID;
-  myListOfIdWire    = new GEOM::GEOM_Shape::ListOfSubShapeID;
+  myIC = ic;
+  myUseLocalContext = myOkShape = myOkSelectFace = false;
+  myLocalContextId = -1;
+
+  myListOfIdFace = new GEOM::GEOM_Shape::ListOfSubShapeID;
+  myListOfIdWire = new GEOM::GEOM_Shape::ListOfSubShapeID;
   myListOfIdEndFace = new GEOM::GEOM_Shape::ListOfSubShapeID;
   
-  myListOfIdFace->length(0) ;
-  myListOfIdWire->length(0) ;
-  myListOfIdEndFace->length(0) ; 
-  
-  myGeomBase = new GEOMBase() ;
-  myGeomGUI = GEOMContext::GetGeomGUI() ;
-  
-  /* Select sub modes not checked */
-  CheckBox1->setChecked( FALSE );    /* sub mode GEOM::FACE     */
-  CheckBox2->setChecked( FALSE );    /* sub mode GEOM::WIRE     */
-  CheckBox3->setChecked( FALSE );    /* sub mode END GEOM::FACE */
-
-  CheckBoxC2_1->setChecked( FALSE ); /* sub mode GEOM::WIRE(S)  */
+  myListOfIdFace->length(0);
+  myListOfIdWire->length(0);
+  myListOfIdEndFace->length(0); 
 
-  // TODO : previous selection into argument ?
+  /* signals and slots connections */
+  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
+  connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
+  connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
 
-  /* Filter definitions */
-  Engines::Component_var comp = QAD_Application::getDesktop()->getEngine("FactoryServer", "GEOM");
-  myGeom = GEOM::GEOM_Gen::_narrow(comp);
+  connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
+  connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+  connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
 
-  /* signals and slots connections */
-  connect( buttonOk,          SIGNAL( clicked() ),    this, SLOT( ClickOnOk() ) );
-  connect( buttonApply,       SIGNAL( clicked() ),    this, SLOT( ClickOnApply() ) );
-  connect( buttonClose,       SIGNAL( clicked() ),    this, SLOT( ClickOnClose() ) );
-  connect( GroupConstructors, SIGNAL( clicked(int) ), this, SLOT( ConstructorsClicked(int) ));
+  connect(Group1->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
+  connect(Group2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
+  connect(Group1->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
+  connect(Group2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
 
-  connect( SelectButtonC1A1,  SIGNAL( clicked() ),         this, SLOT( SetEditCurrentArgument() ));
-  connect( SelectButtonC2A1,  SIGNAL( clicked() ),         this, SLOT( SetEditCurrentArgument() ));
+  connect(Group1->CheckButton1, SIGNAL(stateChanged(int)), this, SLOT(ActivateUserFaceSelection()));
+  connect(Group1->CheckButton2, SIGNAL(stateChanged(int)), this, SLOT(ActivateUserWireSelection()));
+  connect(Group1->CheckButton3, SIGNAL(stateChanged(int)), this, SLOT(ActivateUserEndFaceSelection()));
+  connect(Group2->CheckButton1, SIGNAL(stateChanged(int)), this, SLOT(ActivateUserWiresOnFaceShellSelection()));
   
-  connect( CheckBox1,         SIGNAL( stateChanged(int) ), this, SLOT( ActivateUserFaceSelection() ));
-  connect( CheckBox2,         SIGNAL( stateChanged(int) ), this, SLOT( ActivateUserWireSelection() ));
-  connect( CheckBox3,         SIGNAL( stateChanged(int) ), this, SLOT( ActivateUserEndFaceSelection() ));
-
-  connect( LineEditC1A1, SIGNAL ( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ) ;
-  connect( LineEditC2A1, SIGNAL ( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ) ;
-
-  /* for the second constructor */
-  connect( CheckBoxC2_1,      SIGNAL( stateChanged(int) ), this, SLOT( ActivateUserWiresOnFaceShellSelection() ));
-
-  connect( mySelection,       SIGNAL( currentSelectionChanged() ),      this, SLOT( SelectionIntoArgument() ));
-  connect( myGeomGUI,         SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ) ;  
-  connect( myGeomGUI,         SIGNAL( SignalCloseAllDialogs() ),        this, SLOT( ClickOnClose() ));
-  /* Move widget on the botton right corner of main widget */
-  int x, y ;
-  myGeomBase->DefineDlgPosition( this, x, y ) ;
-  this->move( x, y ) ;
-  this->show() ; /* display Dialog */
-  return ;
+  connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+
+  /* displays Dialog */
+  Group2->hide();
+  Group1->show();
+  this->show();
+
+  return;
 }
 
 
@@ -348,36 +151,49 @@ void RepairGUI_SuppressHoleDlg::Init( SALOME_Selection* Sel, Handle (AIS_Interac
 //=================================================================================
 void RepairGUI_SuppressHoleDlg::ConstructorsClicked(int constructorId)
 {
+  myConstructorId = constructorId;
+  disconnect(mySelection, 0, this, 0);
+  myOkShape = false;
+
+  if(QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC && myUseLocalContext) {
+    myIC->CloseLocalContext(myLocalContextId);
+    DisplayGUI* myDisplayGUI = new DisplayGUI();
+    myDisplayGUI->OnDisplayAll(true);
+    myUseLocalContext = false;
+  }
+
   switch (constructorId)
     {
     case 0:
       {
-       GroupC1->show();
-       GroupC2->hide();
-       myConstructorId = constructorId ;
-       myEditCurrentArgument = LineEditC1A1 ;  
-       LineEditC1A1->setText(tr("")) ;
-       myOkShape         = false ;
-       myOkSelectFace    = false ;
-       this->ResetPartial() ;
-       connect ( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+       Group2->hide();
+       resize(0, 0);
+       Group1->show();
+
+       myEditCurrentArgument = Group1->LineEdit1;
+       Group1->LineEdit1->setText("");
+       connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+
+       myOkSelectFace = false;
+       this->ResetPartial();
        break;
       }
     case 1:
       {
-       GroupC1->hide();
-       GroupC2->show();
-       myConstructorId = constructorId ;
-       myEditCurrentArgument = LineEditC2A1 ;
-       LineEditC2A1->setText(tr("")) ;
-       myOkShape = false ;
-       this->ResetPartial() ;
+       Group1->hide();
+       resize(0, 0);
+       Group2->show();
+
+       myEditCurrentArgument = Group2->LineEdit1;
+       Group2->LineEdit1->setText("");
+
+       this->ResetPartial();
        connect ( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
-       this->ResetPartial() ;
+       this->ResetPartial();
        break;
       }
     }
- return ;
+ return;
 }
 
 
@@ -387,132 +203,118 @@ void RepairGUI_SuppressHoleDlg::ConstructorsClicked(int constructorId)
 //=================================================================================
 void RepairGUI_SuppressHoleDlg::ClickOnOk()
 {
-  this->ClickOnApply() ;
-  accept();
-
-  return ;
+  this->ClickOnApply();
+  this->ClickOnCancel();
+  return;
 }
 
 
-
 //=================================================================================
 // function : ClickOnApply()
 // purpose  :
 //=================================================================================
 void RepairGUI_SuppressHoleDlg::ClickOnApply()
 {
-  QAD_Application::getDesktop()->putInfo( tr("") ) ; 
-  bool testResult = false ;
+  QAD_Application::getDesktop()->putInfo(tr(""));
+  bool testResult = false;
   
-  if( !myOkShape )
-    return ;
+  if(!myOkShape)
+    return;
+
   switch (myConstructorId)
     {
     case 0: /* default constructor */
       {
-       if(  !myOkSelectFace )
-         return ;
+       if(!myOkSelectFace)
+         return;
   
-       if( CheckBox2->isChecked() ) {
-         
-         if( !CheckBox3->isChecked() ) {
-           
+       if(Group1->CheckButton2->isChecked()) {
+         if(!Group1->CheckButton3->isChecked()) {
            /* Call method to get sub shape selection of GEOM::WIRE */
-           bool aTest = this->GetIndexSubShapeSelected(myFace, int(TopAbs_WIRE), myListOfIdWire, myLocalContextId, myUseLocalContext) ;
+           bool aTest = this->GetIndexSubShapeSelected(myFace, int(TopAbs_WIRE), myListOfIdWire, myLocalContextId, myUseLocalContext);
            
+           /* Display all objects so that next method using ic can memorize them */
            DisplayGUI* myDisplayGUI = new DisplayGUI();
-           myDisplayGUI->OnDisplayAll(true) ;/* Display all objects so that next method using ic can memorize them */
-           if( !aTest || myListOfIdWire->length() != 1 ) {
-             CheckBox2->setChecked(FALSE) ;
-             QAD_Application::getDesktop()->putInfo( tr("GEOM_PRP_ABORT") ) ; 
+           myDisplayGUI->OnDisplayAll(true);
+
+           if(!aTest || myListOfIdWire->length() != 1) {
+             Group1->CheckButton2->setChecked(FALSE);
+             QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_ABORT")); 
            }
            else {
-             myListOfIdEndFace->length(0) ; /* no end face */  
-             QApplication::setOverrideCursor( Qt::waitCursor );
-             testResult = myRepairGUI->OnSuppressHole( myShapeIOR, myListOfIdFace, myListOfIdWire, myListOfIdEndFace ) ;
+             myListOfIdEndFace->length(0); /* no end face */   
+             QApplication::setOverrideCursor(Qt::waitCursor);
+             testResult = myRepairGUI->OnSuppressHole(myShapeIOR, myListOfIdFace, myListOfIdWire, myListOfIdEndFace);
              QApplication::restoreOverrideCursor();
            }
          }
-         else { /* CheckBox3->isChecked() */
+         else { /* Group1->CheckButton3->isChecked() */
            
            /* Call method to get sub shape selection of END GEOM::FACE */
-           bool aTest = this->GetIndexSubShapeSelected(myShape, int(TopAbs_FACE), myListOfIdEndFace, myLocalContextId, myUseLocalContext) ;
-           
+           bool aTest = this->GetIndexSubShapeSelected(myShape, int(TopAbs_FACE), myListOfIdEndFace, myLocalContextId, myUseLocalContext);
+
+           /* Display all objects so that next method using ic can memorize them */
            DisplayGUI* myDisplayGUI = new DisplayGUI();
-           myDisplayGUI->OnDisplayAll(true) ; /* Display all objects so that next method using ic can memorize them */
-           if( !aTest || myListOfIdEndFace->length() != 1 ) {
-             CheckBox3->setChecked(FALSE) ;
-             QAD_Application::getDesktop()->putInfo( tr("GEOM_PRP_ABORT") ) ; 
+           myDisplayGUI->OnDisplayAll(true);
+
+           if(!aTest || myListOfIdEndFace->length() != 1) {
+             Group1->CheckButton3->setChecked(FALSE);
+             QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_ABORT")); 
            }
            else {      
-             QApplication::setOverrideCursor( Qt::waitCursor );
-             testResult = myRepairGUI->OnSuppressHole( myShapeIOR, myListOfIdFace, myListOfIdWire, myListOfIdEndFace ) 
+             QApplication::setOverrideCursor(Qt::waitCursor);
+             testResult = myRepairGUI->OnSuppressHole(myShapeIOR, myListOfIdFace, myListOfIdWire, myListOfIdEndFace)
              QApplication::restoreOverrideCursor();
            }     
          }
        }
-       break ;
+       break;
       }
-
     case 1:  /* second constructor */
       {
-       if( CheckBoxC2_1->isChecked() ) {
-         
+       if(Group2->CheckButton1->isChecked()) {
          /* Call method to get sub shape selection of one or more GEOM::WIRE(s) on a face or a shell */
-         bool aTest = this->GetIndexSubShapeSelected(myShape, int(TopAbs_WIRE), myListOfIdWire, myLocalContextId, myUseLocalContext) ;
+         bool aTest = this->GetIndexSubShapeSelected(myShape, int(TopAbs_WIRE), myListOfIdWire, myLocalContextId, myUseLocalContext);
          
+         /* Display all objects so that next method using ic can memorize them */
          DisplayGUI* myDisplayGUI = new DisplayGUI();
-         myDisplayGUI->OnDisplayAll(true) ; /* Display all objects so that next method using ic can memorize them */
+         myDisplayGUI->OnDisplayAll(true);
          
-         if( !aTest || myListOfIdWire->length() < 1 ) {
-           CheckBoxC2_1->setChecked(FALSE) ;
-           QAD_Application::getDesktop()->putInfo( tr("GEOM_PRP_ABORT") ) ;
+         if(!aTest || myListOfIdWire->length() < 1) {
+           Group2->CheckButton1->setChecked(FALSE);
+           QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_ABORT"));
          }
          else {
-           QApplication::setOverrideCursor( Qt::waitCursor );
-           testResult = myRepairGUI->OnSuppressHolesInFaceOrShell( myShapeIOR, myListOfIdWire ) ;
+           QApplication::setOverrideCursor(Qt::waitCursor);
+           testResult = myRepairGUI->OnSuppressHolesInFaceOrShell(myShapeIOR, myListOfIdWire);
            QApplication::restoreOverrideCursor();
          }
        }
-       break ;
+       break;
       }
     }
   
 
-  if( !testResult )
-    QAD_Application::getDesktop()->putInfo( tr("GEOM_PRP_ABORT") ) ;
+  if(!testResult)
+    QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_ABORT"));
   else
-    QAD_Application::getDesktop()->putInfo( tr("GEOM_PRP_DONE") ) ;
+    QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_DONE"));
   
   /* Reset arguments to allow a new selection */
-  this->ResetStateOfDialog() ;
-  return ;
+  this->ResetStateOfDialog();
+  return;
 }
 
 
-
 //=================================================================================
-// function : ClickOnClose()
+// function : ClickOnCancel()
 // purpose  :
 //=================================================================================
-void RepairGUI_SuppressHoleDlg::ClickOnClose()
+void RepairGUI_SuppressHoleDlg::ClickOnCancel()
 {
-  disconnect( mySelection, 0, this, 0 );
-  //myGeomGUI->ResetState() ;
-
-  if ( QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC ) {
-    OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
-    myIC = v3d->getAISContext(); //    myIC = QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getViewerOCC()->getAISContext();
-    if(myUseLocalContext) {
-      myIC->CloseLocalContext(myLocalContextId) ;
-      this->myUseLocalContext = false ;
-      DisplayGUI* myDisplayGUI = new DisplayGUI();
-      myDisplayGUI->OnDisplayAll(true) ;
-    }
-  }
-
-  reject() ;
-  return ;
+  this->ResetStateOfDialog();
+  GEOMBase_Skeleton::ClickOnCancel();
+  return;
 }
 
 
@@ -523,61 +325,57 @@ void RepairGUI_SuppressHoleDlg::ClickOnClose()
 //=================================================================================
 void RepairGUI_SuppressHoleDlg::SelectionIntoArgument()
 {
-  
-  /* Reset argument and local context when selection as changed */
-  this->ResetStateOfDialog() ;
-  
-  QString aString = ""; /* Name of selection */
-  
-  int nbSel = myGeomBase->GetNameOfSelectedIObjects(mySelection, aString) ;
-  if ( nbSel != 1 )
-    return ;
+  myEditCurrentArgument->setText("");
+  this->ResetStateOfDialog();
+  QString aString = ""; /* name of selection */
+
+  int nbSel = myGeomBase->GetNameOfSelectedIObjects(mySelection, aString);
+  if(nbSel != 1)
+    return;
   
   /* nbSel == 1 */
-  TopoDS_Shape S ;
-  Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject() ;
+  TopoDS_Shape S;
+  Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
 
-  if( !myGeomBase->GetTopoFromSelection(mySelection, S) )
-    return ;
+  if(!myGeomBase->GetTopoFromSelection(mySelection, S))
+    return;
   
-  if ( S.IsNull() || S.ShapeType() == TopAbs_VERTEX || S.ShapeType() == TopAbs_EDGE || S.ShapeType() == TopAbs_WIRE ) {
-    return ;
-  }
+  if(S.IsNull() || S.ShapeType() == TopAbs_VERTEX || S.ShapeType() == TopAbs_EDGE || S.ShapeType() == TopAbs_WIRE)
+    return;
   
   /* Test the exact type of topology to suppress faces into.         */
   /* For the second constructor a face or shell selection is needed  */
-  if (  myConstructorId == 0 || ( myConstructorId == 1 && ( S.ShapeType() == TopAbs_FACE || S.ShapeType() == TopAbs_SHELL ) ) ) {
-    
-    if ( IO->IsInstance(STANDARD_TYPE(GEOM_InteractiveObject)) ) {
-      Handle(GEOM_InteractiveObject) GIObject = Handle(GEOM_InteractiveObject)::DownCast( IO );
+  if(myConstructorId == 0 || (myConstructorId == 1 && (S.ShapeType() == TopAbs_FACE || S.ShapeType() == TopAbs_SHELL))) {
+    if(IO->IsInstance(STANDARD_TYPE(GEOM_InteractiveObject))) {
+      Handle(GEOM_InteractiveObject) GIObject = Handle(GEOM_InteractiveObject)::DownCast(IO);
 
       /* The Geom IOR string of selection */
       myShapeIOR = GIObject->getIOR();
-      myEditCurrentArgument->setText(aString) ;
-      myShape = S ;
-      myOkShape = true ;
+      myEditCurrentArgument->setText(aString);
+      myShape = S;
+      myOkShape = true;
       return;
     } 
     
-    if ( IO->hasEntry() ) {
+    if(IO->hasEntry()) {
       SALOMEDS::Study_var aStudy = QAD_Application::getDesktop()->getActiveStudy()->getStudyDocument();
-      SALOMEDS::SObject_var obj = aStudy->FindObjectID( IO->getEntry() );
+      SALOMEDS::SObject_var obj = aStudy->FindObjectID(IO->getEntry());
       SALOMEDS::GenericAttribute_var anAttr;
-      SALOMEDS::AttributeIOR_var     anIOR;
-      if ( !obj->_is_nil() ) {
-       if (obj->FindAttribute(anAttr, "AttributeIOR")) {
+      SALOMEDS::AttributeIOR_var anIOR;
+      if(!obj->_is_nil()) {
+       if(obj->FindAttribute(anAttr, "AttributeIOR")) {
           anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
          myShapeIOR = anIOR->Value();
-         myOkShape = true ;
-         myShape = S ;
-         myEditCurrentArgument->setText(aString) ;
+         myOkShape = true;
+         myShape = S;
+         myEditCurrentArgument->setText(aString);
          return;
        }
       }
     }
     
   }
-  return ;
+  return;
 }
 
 
@@ -587,29 +385,18 @@ void RepairGUI_SuppressHoleDlg::SelectionIntoArgument()
 //=================================================================================
 void RepairGUI_SuppressHoleDlg::SetEditCurrentArgument()
 {
-  QPushButton* send = (QPushButton*)sender();
-  switch (myConstructorId)
-    {
-    case 0: /* default constructor */
-      {
-       if(send == SelectButtonC1A1) {
-         LineEditC1A1->setFocus() ;
-         myEditCurrentArgument = LineEditC1A1;   
-         SelectionIntoArgument() ;
-       }
-       break;
-      }
-   case 1:
-      {
-       if(send == SelectButtonC2A1) {
-         LineEditC2A1->setFocus() ;
-         myEditCurrentArgument = LineEditC2A1;   
-         SelectionIntoArgument() ;
-       }
-       break;
-      }
-    }
-  return ;
+  QPushButton* send = (QPushButton*)sender();  
+
+  if(send == Group1->PushButton1) {
+    Group1->LineEdit1->setFocus();
+    myEditCurrentArgument = Group1->LineEdit1;
+  }
+  else if(send == Group2->PushButton1) {
+    Group2->LineEdit1->setFocus();
+    myEditCurrentArgument = Group2->LineEdit1;
+  }
+  this->SelectionIntoArgument();
+  return;
 }
 
 
@@ -620,23 +407,15 @@ void RepairGUI_SuppressHoleDlg::SetEditCurrentArgument()
 void RepairGUI_SuppressHoleDlg::LineEditReturnPressed()
 {
   QLineEdit* send = (QLineEdit*)sender();
-  if( send == LineEditC1A1 )
-    myEditCurrentArgument = LineEditC1A1 ;
-  else if ( send == LineEditC2A1)
-    myEditCurrentArgument = LineEditC2A1; 
+  if(send == Group1->LineEdit1)
+    myEditCurrentArgument = Group1->LineEdit1;
+  else if (send == Group2->LineEdit1)
+    myEditCurrentArgument = Group2->LineEdit1;
   else
-    return ;
-  
-  /* User name of object input management                          */
-  /* If successfull the selection is changed and signal emitted... */
-  /* so SelectionIntoArgument() is automatically called.           */
-  const QString objectUserName = myEditCurrentArgument->text() ;
-  QWidget* thisWidget = (QWidget*)this ;
-  if( myGeomBase->SelectionByNameInDialogs( thisWidget, objectUserName, mySelection ) ) {
-    myEditCurrentArgument->setText( objectUserName ) ;
-  }
-  
-  return ;
+    return;
+
+  GEOMBase_Skeleton::LineEditReturnPressed();
+  return;
 }
 
 
@@ -646,22 +425,9 @@ void RepairGUI_SuppressHoleDlg::LineEditReturnPressed()
 //=================================================================================
 void RepairGUI_SuppressHoleDlg::DeactivateActiveDialog()
 {
-  if ( GroupConstructors->isEnabled() ) {
-    
-    this->ResetStateOfDialog() ;
-    
-    disconnect( mySelection, 0, this, 0 );
-    GroupConstructors->setEnabled(false) ;    
-    GroupC1->setEnabled(false) ;
-    GroupC2->setEnabled(false) ;
-    GroupButtons->setEnabled(false) ;
-
-    //myGeomGUI->ResetState() ;    
-    myGeomGUI->SetActiveDialogBox(0) ;
-    DisplayGUI* myDisplayGUI = new DisplayGUI();
-    myDisplayGUI->OnDisplayAll(true) ;
-  }
-  return ;
+  this->ResetStateOfDialog();
+  GEOMBase_Skeleton::DeactivateActiveDialog();
+  return;
 }
 
 
@@ -671,17 +437,9 @@ void RepairGUI_SuppressHoleDlg::DeactivateActiveDialog()
 //=================================================================================
 void RepairGUI_SuppressHoleDlg::ActivateThisDialog()
 {
-  /* Emit a signal to deactivate other active dialog */
-  myGeomGUI->EmitSignalDeactivateDialog() ;
-
-  GroupConstructors->setEnabled(true) ;
-  GroupC1->setEnabled(true) ;
-  GroupC2->setEnabled(true) ;
-  GroupButtons->setEnabled(true) ;
-
-  connect ( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
-  myGeomGUI->SetActiveDialogBox( (QDialog*)this ) ;
-  return ;
+  GEOMBase_Skeleton::ActivateThisDialog();
+  connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+  return;
 }
 
 
@@ -691,10 +449,10 @@ void RepairGUI_SuppressHoleDlg::ActivateThisDialog()
 //=================================================================================
 void RepairGUI_SuppressHoleDlg::enterEvent(QEvent* e)
 {
-  if ( GroupConstructors->isEnabled() )
-    return ;  
-  ActivateThisDialog() ;
-  return ;
+  if(GroupConstructors->isEnabled())
+    return;
+  this->ActivateThisDialog();
+  return;
 }
 
 
@@ -702,11 +460,11 @@ void RepairGUI_SuppressHoleDlg::enterEvent(QEvent* e)
 // function : closeEvent()
 // purpose  :
 //=================================================================================
-void RepairGUI_SuppressHoleDlg::closeEvent( QCloseEvent* e )
+void RepairGUI_SuppressHoleDlg::closeEvent(QCloseEvent* e)
 {
   /* same than click on cancel button */
-  this->ClickOnClose() ;
-  return ;
+  this->ClickOnCancel();
+  return;
 }
 
 
@@ -717,32 +475,23 @@ void RepairGUI_SuppressHoleDlg::closeEvent( QCloseEvent* e )
 //=================================================================================
 void RepairGUI_SuppressHoleDlg::ActivateUserFaceSelection()
 {
-  if( !this->myOkShape ) {
-    this->ResetStateOfDialog() ;
-    QAD_Application::getDesktop()->putInfo( tr("GEOM_MAIN_OBJECT") ) ;
-    return ;
-  }
-  
-  /* Test the viewer type VTK */
-  if ( QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC ) {
-    QAD_Application::getDesktop()->putInfo( tr("GEOM_PRP_NOT_FOR_VTK_VIEWER") ) ;
-    this->ResetStateOfDialog() ;  
+  if(!this->myOkShape) {
+    this->ResetStateOfDialog();
+    QAD_Application::getDesktop()->putInfo(tr("GEOM_MAIN_OBJECT"));
     return;
   }
   
-  if( CheckBox1->isChecked() ) {
-    
+  if(Group1->CheckButton1->isChecked()) {
     /* local context is opened into the method : Prepare GEOM::FACE sub selection */
     DisplayGUI* myDisplayGUI = new DisplayGUI();
-    myDisplayGUI->PrepareSubShapeSelection( int(TopAbs_FACE), this->myLocalContextId ) ;    
-    myUseLocalContext = true ;
-    QAD_Application::getDesktop()->putInfo( tr("GEOM_SUPPRESSHOLE_SELECTFACE") ) ;
+    myDisplayGUI->PrepareSubShapeSelection(int(TopAbs_FACE), myLocalContextId);    
+    myUseLocalContext = true;
+    QAD_Application::getDesktop()->putInfo(tr("GEOM_SUPPRESSHOLE_SELECTFACE"));
   } 
-  else {
-    this->ResetPartial() ;
-  }
+  else
+    this->ResetPartial();
 
-  return ;
+  return;
 }
 
 
@@ -754,60 +503,49 @@ void RepairGUI_SuppressHoleDlg::ActivateUserFaceSelection()
 void RepairGUI_SuppressHoleDlg::ActivateUserWireSelection()
 {
   
-  if( !this->myOkShape ) {
-    this->ResetStateOfDialog() ;
-    QAD_Application::getDesktop()->putInfo(tr("GEOM_MAIN_OBJECT") ) ;
-    return ;
-  } 
-  
-  /* Test the type of viewer VTK */
-  if ( QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC ) {
-    QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_NOT_FOR_VTK_VIEWER") ) ;
-    this->ResetStateOfDialog() ;
+  if(!myOkShape) {
+    this->ResetStateOfDialog();
+    QAD_Application::getDesktop()->putInfo(tr("GEOM_MAIN_OBJECT"));
     return;
-  }
+  } 
 
-  if( CheckBox1->isChecked() ) {
-    
+  if(Group1->CheckButton1->isChecked()) {
     /* Get sub shape selection GEOM::FACE : local context is closed */    
-    bool aTest = this->GetIndexSubShapeSelected(myShape, int(TopAbs_FACE), myListOfIdFace, myLocalContextId, myUseLocalContext) ;
+    bool aTest = this->GetIndexSubShapeSelected(myShape, int(TopAbs_FACE), myListOfIdFace, myLocalContextId, myUseLocalContext);
     
+    /* Display all objects so that next method using ic can memorize them */
     DisplayGUI* myDisplayGUI = new DisplayGUI();
-    myDisplayGUI->OnDisplayAll(true) ; /* Display all objects so that next method using ic can memorize them */
-    if( !aTest || myListOfIdFace->length() != 1 ) {
-      CheckBox1->setChecked(FALSE) ;
-      myOkSelectFace = false ;
-      QAD_Application::getDesktop()->putInfo( tr("GEOM_PRP_ABORT") ) ; 
-    }
-    else {
-      myOkSelectFace = true ;
+    myDisplayGUI->OnDisplayAll(true);
+    if(!aTest || myListOfIdFace->length() != 1) {
+      Group1->CheckButton1->setChecked(FALSE);
+      myOkSelectFace = false;
+      QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_ABORT")); 
     }
+    else
+      myOkSelectFace = true;
   }
   else {
-    this->ResetPartial() ;
-    return ;
+    this->ResetPartial();
+    return;
   }
   
 
-  if( CheckBox2->isChecked() ) {
-    
+  if(Group1->CheckButton2->isChecked()) {
     /* Get the face selection */
-    this->myFace = FaceFromList(myShape, myListOfIdFace) ;    
+    myFace = FaceFromList(myShape, myListOfIdFace);    
     /* Local context is opened into the method : Prepare GEOM::WIRE sub selection into a face */
     DisplayGUI* myDisplayGUI = new DisplayGUI();
-    myDisplayGUI->PrepareSubShapeSelectionArgumentShape( this->myFace, int(TopAbs_WIRE), this->myLocalContextId ) ;    
-    myUseLocalContext = true ;
-    QAD_Application::getDesktop()->putInfo( tr("GEOM_SUPPRESSHOLE_SELECTWIRE") ) ;
+    myDisplayGUI->PrepareSubShapeSelectionArgumentShape(myFace, int(TopAbs_WIRE), myLocalContextId);    
+    myUseLocalContext = true;
+    QAD_Application::getDesktop()->putInfo(tr("GEOM_SUPPRESSHOLE_SELECTWIRE"));
   }
   else {
-    this->ResetPartial() ;
+    this->ResetPartial();
   }
-  
-  return ;
+  return;
 }
 
 
-
 //=================================================================================
 // function : ActivateUserlEndFaceSelection()
 // purpose  : Called when CheckBox3 state has changed. ( Optional End Face selection )
@@ -816,56 +554,46 @@ void RepairGUI_SuppressHoleDlg::ActivateUserWireSelection()
 void RepairGUI_SuppressHoleDlg::ActivateUserEndFaceSelection()
 {
   
-  if( !this->myOkShape ) {
-    this->ResetStateOfDialog() ;
-    QAD_Application::getDesktop()->putInfo(tr("GEOM_MAIN_OBJECT") ) ;
-    return ;
-  }
-  
-  /* Test the type of viewer VTK */
-  if ( QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC ) {
-    QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_NOT_FOR_VTK_VIEWER") ) ;
-    this->ResetStateOfDialog() ;
+  if(!myOkShape) {
+    this->ResetStateOfDialog();
+    QAD_Application::getDesktop()->putInfo(tr("GEOM_MAIN_OBJECT"));
     return;
   }
-   
-  if( CheckBox2->isChecked() ) {
+  
+  if(Group1->CheckButton2->isChecked()) {
     /* Call method to get sub shape selection for the GEOM::WIRE into myFace : local context is closed */
-    bool aTest = this->GetIndexSubShapeSelected(this->myFace, int(TopAbs_WIRE), myListOfIdWire, myLocalContextId, myUseLocalContext) ;
+    bool aTest = this->GetIndexSubShapeSelected(myFace, int(TopAbs_WIRE), myListOfIdWire, myLocalContextId, myUseLocalContext);
     
+    /* Display all objects so that next method using ic can memorize them */
     DisplayGUI* myDisplayGUI = new DisplayGUI();
-    myDisplayGUI->OnDisplayAll(true) ; /* Display all objects so that next method using ic can memorize them */
+    myDisplayGUI->OnDisplayAll(true);
     
-    if( !aTest || myListOfIdWire->length() != 1 ) {
-      CheckBox2->setChecked(FALSE) ;
-      CheckBox3->setChecked(FALSE) ;
-      QAD_Application::getDesktop()->putInfo( tr("GEOM_PRP_ABORT") ) ;     
-      return ;
+    if(!aTest || myListOfIdWire->length() != 1) {
+      Group1->CheckButton2->setChecked(FALSE);
+      Group1->CheckButton3->setChecked(FALSE);
+      QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_ABORT"));     
+      return;
     }
   }
   else {
-    this->ResetPartial() ;
-    return ;
+    this->ResetPartial();
+    return;
   }
   
   
-  if( CheckBox3->isChecked() ) {    
+  if(Group1->CheckButton3->isChecked()) {    
     /* Local context is opened into the method : prepare GEOM::FACE(end) into myShape sub selection */
     DisplayGUI* myDisplayGUI = new DisplayGUI();
-    myDisplayGUI->PrepareSubShapeSelectionArgumentShape( this->myShape, int(TopAbs_FACE), this->myLocalContextId ) ;    
-    myUseLocalContext = true ;
-    QAD_Application::getDesktop()->putInfo( tr("GEOM_SUPPRESSHOLE_SELECTFACE_END") ) ;
-  }
-  else {
-    this->ResetPartial() ;
+    myDisplayGUI->PrepareSubShapeSelectionArgumentShape(myShape, int(TopAbs_FACE), myLocalContextId);    
+    myUseLocalContext = true;
+    QAD_Application::getDesktop()->putInfo(tr("GEOM_SUPPRESSHOLE_SELECTFACE_END"));
   }
-
-  return ;
+  else
+    this->ResetPartial();
+  return;
 }
 
 
-
 //=================================================================================
 // function : ActivateUserWiresOnFaceShellSelection()
 // purpose  : Called when CheckBoxC2_1 state has changed.
@@ -875,34 +603,25 @@ void RepairGUI_SuppressHoleDlg::ActivateUserEndFaceSelection()
 void RepairGUI_SuppressHoleDlg::ActivateUserWiresOnFaceShellSelection()
 {
   
-  if( !this->myOkShape ) {
-    this->ResetStateOfDialog() ;
-    QAD_Application::getDesktop()->putInfo(tr("GEOM_MAIN_OBJECT") ) ;
-    return ;
-  }
-  
-  /* Test the type of viewer VTK */
-  if ( QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC ) {
-    QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_NOT_FOR_VTK_VIEWER") ) ;
-    this->ResetStateOfDialog() ;
+  if(!myOkShape) {
+    this->ResetStateOfDialog();
+    QAD_Application::getDesktop()->putInfo(tr("GEOM_MAIN_OBJECT"));
     return;
   }
   
-  if( CheckBoxC2_1->isChecked() ) {    
+  if(Group2->CheckButton1->isChecked()) {    
     /* Local context is opened to prepare GEOM::WIRE(S) selection into 'myShape' that is a (main) face */
     DisplayGUI* myDisplayGUI = new DisplayGUI();
-    myDisplayGUI->PrepareSubShapeSelectionArgumentShape( this->myShape, int(TopAbs_WIRE), this->myLocalContextId ) ;    
-    myUseLocalContext = true ;
-    QAD_Application::getDesktop()->putInfo( tr("GEOM_SUPPRESSHOLE_SELECT_HOLES_ON_FACE") ) ;
+    myDisplayGUI->PrepareSubShapeSelectionArgumentShape(myShape, int(TopAbs_WIRE), myLocalContextId);    
+    myUseLocalContext = true;
+    QAD_Application::getDesktop()->putInfo(tr("GEOM_SUPPRESSHOLE_SELECT_HOLES_ON_FACE"));
   }
-  else {
-    this->ResetPartial() ;
-  }
-  return ;
+  else
+    this->ResetPartial();
+  return;
 }
 
 
-
 //=================================================================================
 // function : FaceFromList()
 // purpose  : Return the face (selected by user) that is a sub shape of 'aShape'
@@ -910,41 +629,40 @@ void RepairGUI_SuppressHoleDlg::ActivateUserWiresOnFaceShellSelection()
 //          : This allows opening a local context with this face loaded.
 //          : See : myGeomBase->PrepareSubShapeSelectionArgumentShape(...)
 //=================================================================================
-TopoDS_Shape RepairGUI_SuppressHoleDlg::FaceFromList( const TopoDS_Shape& aShape,
-                                                       const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfSub )
+TopoDS_Shape RepairGUI_SuppressHoleDlg::FaceFromList(const TopoDS_Shape& aShape,
+                                                    const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfSub)
 {
-  TopoDS_Shape tds ;
-  tds.Nullify() ;
-  if( ListOfSub.length() != 1 || aShape.IsNull() )
-    return tds ;
-  
-  int i = ListOfSub[0] ;
-  TopExp_Explorer exp ;
-  int j = 1 
-  for( exp.Init(aShape, TopAbs_FACE); exp.More(); exp.Next() ) {
+  TopoDS_Shape tds;
+  tds.Nullify();
+  if(ListOfSub.length() != 1 || aShape.IsNull())
+    return tds;
+  
+  int i = ListOfSub[0];
+  TopExp_Explorer exp;
+  int j = 1; 
+  for(exp.Init(aShape, TopAbs_FACE); exp.More(); exp.Next()) {
     if(j == i)
-      return exp.Current() ;    
-    j++ ;
+      return exp.Current();    
+    j++;
   }
-  return tds ;
+  return tds;
 }
 
 
-
-
 //=================================================================================
 // function : ResetStateOfDialog()
 // purpose  : Completely reset the state of method including local context
 //=================================================================================
 void RepairGUI_SuppressHoleDlg::ResetStateOfDialog()
 {
-  this->myOkShape = false ;
-  this->myEditCurrentArgument->setText("") ;
+  myOkShape = false;
+  myEditCurrentArgument->setText("");
+  QApplication::restoreOverrideCursor();
   
   /* Partial reset and more ...*/
-  this->ResetPartial() ;
+  this->ResetPartial();
 
-  return ;
+  return;
 }
 
 
@@ -955,29 +673,24 @@ void RepairGUI_SuppressHoleDlg::ResetStateOfDialog()
 void RepairGUI_SuppressHoleDlg::ResetPartial()
 {
   /* Select sub shape modes not checked */
-  this->myOkSelectFace = false ;
-  this->CheckBox1->setChecked( FALSE );
-  this->CheckBox2->setChecked( FALSE );
-  this->CheckBox3->setChecked( FALSE );
-  this->CheckBoxC2_1->setChecked( FALSE );
-  
-  myListOfIdFace->length(0) ;
-  myListOfIdWire->length(0) ;
-  myListOfIdEndFace->length(0) ;
+  myOkSelectFace = false ;
+  Group1->CheckButton1->setChecked(FALSE);
+  Group1->CheckButton2->setChecked(FALSE);
+  Group1->CheckButton3->setChecked(FALSE);
+  Group2->CheckButton1->setChecked(FALSE);
   
+  myListOfIdFace->length(0);
+  myListOfIdWire->length(0);
+  myListOfIdEndFace->length(0);
+
   /* Close its local contact if opened */
-  if ( QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC ) {
-    OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
-    myIC = v3d->getAISContext(); //    myIC = QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getViewerOCC()->getAISContext();
-    if( this->myUseLocalContext ) {
-      myIC->CloseLocalContext(this->myLocalContextId) ;
-      this->myUseLocalContext = false ;
-      DisplayGUI* myDisplayGUI = new DisplayGUI();
-      myDisplayGUI->OnDisplayAll(true) ;
-    }
+  if(QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC && myUseLocalContext) {
+    myIC->CloseLocalContext(myLocalContextId);
+    myUseLocalContext = false;
+    DisplayGUI* myDisplayGUI = new DisplayGUI();
+    myDisplayGUI->OnDisplayAll(true);
   }
-
-  return ;
+  return;
 }
 
 
@@ -993,7 +706,7 @@ bool RepairGUI_SuppressHoleDlg::GetIndexSubShapeSelected(const TopoDS_Shape& Sha
     return false;
   
   OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)QAD_Application::getDesktop()->getActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
-  Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
+  Handle(AIS_InteractiveContext) ic = v3d->getAISContext();
 
   ic->InitSelected();
   int nbSelected = ic->NbSelected();
index a348369e804c5e8a0af996ae9070fe0c289887ec..ddc476099a86ec8a3a8e5c44de08aa7bf0af77d0 100644 (file)
 #ifndef GEOMETRYGUI_SUPPRESSHOLE_H
 #define GEOMETRYGUI_SUPPRESSHOLE_H
 
-#include "RepairGUI.h"
-
-#include <qvariant.h>
-#include <qdialog.h>
+#include "GEOMBase_Skeleton.h"
+#include "DlgRef_1Sel1Check_QTD.h"
+#include "DlgRef_1Sel3Check_QTD.h"
 
-#include <AIS_InteractiveContext.hxx>
-
-class QVBoxLayout; 
-class QHBoxLayout; 
-class QGridLayout; 
-class QButtonGroup;
-class QCheckBox;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QRadioButton;
-class RepairGUI;
+#include "RepairGUI.h"
 
 //=================================================================================
 // class    : RepairGUI_SuppressHoleDlg
 // purpose  :
 //=================================================================================
-class RepairGUI_SuppressHoleDlg : public QDialog
+class RepairGUI_SuppressHoleDlg : public GEOMBase_Skeleton
 { 
     Q_OBJECT
       
 public:
-    RepairGUI_SuppressHoleDlg( QWidget* parent = 0,
-                                const char* name = 0,
-                                RepairGUI* theRepairGUI = 0, 
-                                SALOME_Selection* Sel = 0,             
-                                Handle (AIS_InteractiveContext) ic = 0,  
-                                bool modal = FALSE,
-                                WFlags fl = 0 );
-
+    RepairGUI_SuppressHoleDlg(QWidget* parent = 0, const char* name = 0, RepairGUI* theRepairGUI = 0, SALOME_Selection* Sel = 0, Handle(AIS_InteractiveContext) ic = 0, bool modal = FALSE, WFlags fl = 0);
     ~RepairGUI_SuppressHoleDlg();
 
 private :
-      RepairGUI* myRepairGUI;
-    void Init( SALOME_Selection* Sel, Handle (AIS_InteractiveContext) ic ) ;
-    void closeEvent( QCloseEvent* e ) ;
-    void enterEvent ( QEvent * ) ;                            /* Mouse enter the QWidget (to reactivate it) */
+    void Init(Handle(AIS_InteractiveContext) ic);
+    void enterEvent(QEvent* e);
+    void closeEvent(QCloseEvent* e);
+
+    void ResetStateOfDialog();
+    void ResetPartial();
 
-    void ResetStateOfDialog() ;
-    void ResetPartial() ;
+    RepairGUI* myRepairGUI;
+
+    int myConstructorId;   /* Current constructor id = radio button id */
     
     /* Define a list of indices of sub shapes selected in a local context */
     bool GetIndexSubShapeSelected(const TopoDS_Shape& ShapeTopo, const int SubShapeType,
@@ -82,87 +65,48 @@ private :
                                  Standard_Integer& aLocalContextId, bool& myUseLocalContext);
 
     /* Return the face selected by user from the main shape and index in a ListOfSub */
-    TopoDS_Shape FaceFromList( const TopoDS_Shape& aShape,
-                              const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfSub ) ;
+    TopoDS_Shape FaceFromList(const TopoDS_Shape& aShape,
+                             const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfSub);
 
-    Handle (AIS_InteractiveContext)   myIC ;                  /* Interactive context  */ 
-    Standard_Integer                  myLocalContextId ;      /* identify a local context used by this method    */
-    bool                              myUseLocalContext ;     /* true when this method as opened a local context */
-    
-    GEOM::GEOM_Gen_var             myGeom ;                /* Current Geom object */
-    GEOMBase*                      myGeomBase ;             /* Current GeomGUI object */
-    GEOMContext*                      myGeomGUI ;             /* Current GeomGUI object */
-    SALOME_Selection*                 mySelection ;           /* User shape selection */
+    /* Interactive and local context management see also : bool myUseLocalContext() */
+    Handle(AIS_InteractiveContext) myIC;   /* Interactive context */ 
+    Standard_Integer myLocalContextId;   /* identify a local context used by this method */
+    bool myUseLocalContext;   /* true when this method as opened a local context */
 
-    TopoDS_Shape                      myShape ;               /* Main shape selected  */
-    TopoDS_Shape                      myFace ;                /* Face selected        */
+    TopoDS_Shape myShape;   /* Main shape selected */
+    TopoDS_Shape myFace;    /* Face selected */
 
-    char*                             myShapeIOR ;
-    bool                              myOkShape ;
+    char* myShapeIOR;
+    bool myOkShape;
 
-    bool                              myOkSelectFace ;        /* true = sub mode GEOM::FACE selection done               */
-    bool                              myOkSelectWire ;        /* true = sub mode GEOM::WIRE selection done (first wire)  */  
+    bool myOkSelectFace;   /* true = sub mode GEOM::FACE selection done */
+    bool myOkSelectWire;   /* true = sub mode GEOM::WIRE selection done (first wire)  */  
 
-    GEOM::GEOM_Shape::ListOfSubShapeID_var  myListOfIdFace ;        /* After selection contains index of face into myShape      */
-    GEOM::GEOM_Shape::ListOfSubShapeID_var  myListOfIdWire ;        /* After selection contains index of wire into myFace       */
-    GEOM::GEOM_Shape::ListOfSubShapeID_var  myListOfIdEndFace ;     /* After selection contains index of end face into myShape  */
+    /* After selection contains index of face into myShape, wire into myFace, end face into myShape*/
+    GEOM::GEOM_Shape::ListOfSubShapeID_var myListOfIdFace;
+    GEOM::GEOM_Shape::ListOfSubShapeID_var myListOfIdWire;
+    GEOM::GEOM_Shape::ListOfSubShapeID_var myListOfIdEndFace;
   
-    QLineEdit*                        myEditCurrentArgument;  /* Current LineEdit */   
-    int                               myConstructorId ;       /* Current constructor id = radio button id */
-
-    QButtonGroup* GroupConstructors;
-    QRadioButton* Constructor1;
-    QGroupBox* GroupButtons;
-    QPushButton* buttonOk;
-    QPushButton* buttonApply;
-    QPushButton* buttonClose;
-    QGroupBox* GroupC1;
-    QLabel* TextLabelC1A1;
-    QPushButton* SelectButtonC1A1;
-    QLineEdit* LineEditC1A1;
-    QCheckBox* CheckBox1;
-    QCheckBox* CheckBox2;
-    QCheckBox* CheckBox3;
-
-    /* Second constructor */
-    QRadioButton* Constructor2;
-    QGroupBox* GroupC2;
-    QLabel* TextLabelC2A1;
-    QPushButton* SelectButtonC2A1;
-    QLineEdit* LineEditC2A1;
-    QCheckBox* CheckBoxC2_1;
-
+    DlgRef_1Sel3Check_QTD* Group1;
+    DlgRef_1Sel1Check_QTD* Group2;
 
 private slots:
-
-    void ConstructorsClicked(int constructorId);
     void ClickOnOk();
-    void ClickOnApply() ;
-    void ClickOnClose();
-
-    void LineEditReturnPressed() ;
-    void SetEditCurrentArgument() ;
-    void SelectionIntoArgument() ;
-    void DeactivateActiveDialog() ;
-    void ActivateThisDialog() ;
-    void ActivateUserFaceSelection() ;
-    void ActivateUserWireSelection() ;
-    void ActivateUserEndFaceSelection() ;
+    void ClickOnApply();
+    void ClickOnCancel();
+    void ActivateThisDialog();
+    void DeactivateActiveDialog();
+    void LineEditReturnPressed();
+    void SelectionIntoArgument();
+    void SetEditCurrentArgument();
+    void ConstructorsClicked(int constructorId);
+    void ActivateUserFaceSelection();
+    void ActivateUserWireSelection();
+    void ActivateUserEndFaceSelection();
     
     /* For the second constructor */
     void ActivateUserWiresOnFaceShellSelection() ;
 
-  
-protected:
-
-    QGridLayout* RepairGUI_SuppressHoleLayout;
-    QGridLayout* GroupConstructorsLayout;
-    QHBoxLayout* GroupButtonsLayout;
-    QGridLayout* GroupC1Layout;
-    QHBoxLayout* Layout2;
-
-    QGridLayout* GroupC2Layout;
-    QHBoxLayout* Layout3;
 };
 
 #endif // GEOMETRYGUI_SUPPRESSHOLE_H