Salome HOME
NPAL17269: Performance pb. when creating a group with GUI.
[modules/geom.git] / src / MeasureGUI / MeasureGUI_CheckShapeDlg.cxx
index 3ed0566df3e5bf7a5803d176e24758e933800696..795107a57f971dd3fea88594c66efbc455d6fcaa 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 //  $Header$
 
 #include "MeasureGUI_CheckShapeDlg.h"
-#include "MeasureGUI_1Sel1TextView_QTD.h"
-#include "SALOMEGUI_QtCatchCorbaException.hxx"
 
 #include "utilities.h"
-#include "QAD_Desktop.h"
+#include "SUIT_Session.h"
+#include "SalomeApp_Tools.h"
 
 #include <qtextedit.h>
 #include <qlineedit.h>
+#include <qlabel.h>
 #include <qlayout.h>
 #include <qpushbutton.h>
 #include <qradiobutton.h>
 #include <qbuttongroup.h>
+#include <qcheckbox.h>
 
 #define TEXTEDIT_FONT_FAMILY "Courier"
 #define TEXTEDIT_FONT_SIZE 11
 
+MeasureGUI_1Sel1TextView1Check_QTD::MeasureGUI_1Sel1TextView1Check_QTD(QWidget* parent,
+                                                                       const char* name, WFlags fl)
+  : MeasureGUI_1Sel1TextView_QTD(parent, name, fl)
+{
+  CheckBoxGeom = new QCheckBox(GroupBox1, "CheckBoxGeom");
+  CheckBoxGeom->setText(tr("CHECK_SHAPE_GEOMETRY"));
+  Layout1->addMultiCellWidget(CheckBoxGeom, 2, 2, 0, 2);
+
+  CheckBoxGeom->setChecked(false);
+}
+
+MeasureGUI_1Sel1TextView1Check_QTD::~MeasureGUI_1Sel1TextView1Check_QTD()
+{
+  // no need to delete child widgets, Qt does it all for us
+}
+
 //=================================================================================
 // class    : MeasureGUI_CheckShapeDlg()
 // purpose  : Constructs a MeasureGUI_CheckShapeDlg which is a child of 'parent', with the
 //            The dialog will by default be modeless, unless you set 'modal' to
 //            TRUE to construct a modal dialog.
 //=================================================================================
-MeasureGUI_CheckShapeDlg::MeasureGUI_CheckShapeDlg( QWidget* parent, SALOME_Selection* Sel )
-: MeasureGUI_Skeleton( parent, "MeasureGUI_CheckShapeDlg", Sel )
+MeasureGUI_CheckShapeDlg::MeasureGUI_CheckShapeDlg( GeometryGUI* GUI, QWidget* parent )
+: MeasureGUI_Skeleton( GUI, parent, "MeasureGUI_CheckShapeDlg" )
 {
-  QPixmap image0( QAD_Desktop::getResourceManager()->loadPixmap(
+  QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap(
     "GEOM",tr( "ICON_DLG_CHECKSHAPE" ) ) );
-  QPixmap image1( QAD_Desktop::getResourceManager()->loadPixmap(
+  QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap(
     "GEOM",tr( "ICON_SELECT" ) ) );
 
   setCaption( tr( "GEOM_CHECK_TITLE" ) );
@@ -65,11 +82,11 @@ MeasureGUI_CheckShapeDlg::MeasureGUI_CheckShapeDlg( QWidget* parent, SALOME_Sele
   GroupConstructors->setTitle( tr( "GEOM_CHECK_SHAPE" ) );
   RadioButton1->setPixmap( image0 );
 
-  myGrp = new MeasureGUI_1Sel1TextView_QTD( this, "myGrp" );
+  myGrp = new MeasureGUI_1Sel1TextView1Check_QTD( this, "myGrp" );
   myGrp->GroupBox1->setTitle( tr( "GEOM_CHECK_INFOS" ) );
   myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) );
   myGrp->TextEdit1->setReadOnly( TRUE );
-  
+
   QFont aFont( TEXTEDIT_FONT_FAMILY, TEXTEDIT_FONT_SIZE );
   aFont.setStyleHint( QFont::TypeWriter, QFont::PreferAntialias );
   myGrp->TextEdit1->setFont( aFont );
@@ -80,11 +97,12 @@ MeasureGUI_CheckShapeDlg::MeasureGUI_CheckShapeDlg( QWidget* parent, SALOME_Sele
 
   /***************************************************************/
 
+  myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#check";
+
   /* Initialisation */
-  Init( Sel );
+  Init();
 }
 
-
 //=================================================================================
 // function : ~MeasureGUI_CheckShapeDlg()
 // purpose  : Destroys the object and frees any allocated resources
@@ -98,11 +116,14 @@ MeasureGUI_CheckShapeDlg::~MeasureGUI_CheckShapeDlg()
 // function : Init()
 // purpose  :
 //=================================================================================
-void MeasureGUI_CheckShapeDlg::Init( SALOME_Selection* Sel )
+void MeasureGUI_CheckShapeDlg::Init()
 {
   mySelBtn = myGrp->PushButton1;
   mySelEdit = myGrp->LineEdit1;
-  MeasureGUI_Skeleton::Init( Sel );
+  MeasureGUI_Skeleton::Init();
+
+  connect(myGrp->CheckBoxGeom, SIGNAL(toggled(bool)), 
+          this, SLOT(SelectionIntoArgument()));
 }
 
 //=================================================================================
@@ -118,12 +139,18 @@ bool MeasureGUI_CheckShapeDlg::getParameters ( bool& theIsValid, QString& theMsg
     try
     {
       char* aMsg;
-      theIsValid = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->CheckShape( myObj, aMsg );
+      bool isCheckGeometry = myGrp->CheckBoxGeom->isChecked();
+      GEOM::GEOM_IMeasureOperations_ptr aMeasureOp =
+        GEOM::GEOM_IMeasureOperations::_narrow( getOperation() );
+      if (isCheckGeometry)
+        theIsValid = aMeasureOp->CheckShapeWithGeometry(myObj, aMsg);
+      else
+        theIsValid = aMeasureOp->CheckShape(myObj, aMsg);
       theMsg = aMsg;
     }
     catch( const SALOME::SALOME_Exception& e )
     {
-      QtCatchCorbaException( e );
+      SalomeApp_Tools::QtCatchCorbaException( e );
       return false;
     }