Salome HOME
Updated for PAL14857.
[modules/geom.git] / src / TransformationGUI / TransformationGUI_OffsetDlg.cxx
index 805bc8a72821d631f148588e476e1c8b1eb80267..6a33e47e837a62d7d2064f5dc8e3ae38f88a5a9c 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
 //
 //
 //
@@ -47,8 +47,10 @@ using namespace std;
 //            The dialog will by default be modeless, unless you set 'modal' to
 //            TRUE to construct a modal dialog.
 //=================================================================================
-TransformationGUI_OffsetDlg::TransformationGUI_OffsetDlg(QWidget* parent,  const char* name, bool modal, WFlags fl)
-    :GEOMBase_Skeleton(parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
+TransformationGUI_OffsetDlg::TransformationGUI_OffsetDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
+                                                         const char* name, bool modal, WFlags fl)
+    :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize |
+                       WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
 {
   QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_OFFSET")));
   QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
@@ -75,6 +77,8 @@ TransformationGUI_OffsetDlg::TransformationGUI_OffsetDlg(QWidget* parent,  const
   Layout1->addWidget(GroupPoints, 2, 0);
   
   /***************************************************************/
+
+  setHelpFileName("offset_surface.htm");  
   
   Init();
 }
@@ -104,7 +108,7 @@ void TransformationGUI_OffsetDlg::Init()
   double step = 1;
    
   /* min, max, step and decimals for spin boxes & initial values */
-  GroupPoints->SpinBox_DX->RangeStepAndValidator(-999.999, 999.999, step, 3);
+  GroupPoints->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
   GroupPoints->SpinBox_DX->setPrecision(5);
   //@ GroupPoints->SpinBox_DX->setDblPrecision(1e-05);    
   GroupPoints->SpinBox_DX->SetValue(1e-05);
@@ -118,7 +122,7 @@ void TransformationGUI_OffsetDlg::Init()
   connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
   
   connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 
+  connect(myGeomGUI->getApp()->selectionMgr(), 
          SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
 
   connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox()));
@@ -156,16 +160,6 @@ bool TransformationGUI_OffsetDlg::ClickOnApply()
 }
 
 
-//=======================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=======================================================================
-void TransformationGUI_OffsetDlg::ClickOnCancel()
-{
-  GEOMBase_Skeleton::ClickOnCancel();
-}
-
-
 //=================================================================================
 // function : SelectionIntoArgument()
 // purpose  : Called when selection has changed
@@ -243,7 +237,7 @@ void TransformationGUI_OffsetDlg::enterEvent(QEvent * e)
 void TransformationGUI_OffsetDlg::ActivateThisDialog()
 {
   GEOMBase_Skeleton::ActivateThisDialog();
-  connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 
+  connect(myGeomGUI->getApp()->selectionMgr(), 
          SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
   globalSelection( GEOM_ALLSHAPES );
   myEditCurrentArgument = GroupPoints->LineEdit1;
@@ -251,16 +245,6 @@ void TransformationGUI_OffsetDlg::ActivateThisDialog()
 }
 
 
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  : public slot to deactivate if active
-//=================================================================================
-void TransformationGUI_OffsetDlg::DeactivateActiveDialog()
-{
- GEOMBase_Skeleton::DeactivateActiveDialog();
-}
-
-
 //=================================================================================
 // function : ValueChangedInSpinBox()
 // purpose  :
@@ -286,7 +270,18 @@ GEOM::GEOM_IOperations_ptr TransformationGUI_OffsetDlg::createOperation()
 //=================================================================================
 bool TransformationGUI_OffsetDlg::isValid( QString& msg )
 {
-  return !(myObjects.length() == 0);
+  //return !(myObjects.length() == 0);
+  if (myObjects.length() == 0) return false;
+
+  for (int i = 0; i < myObjects.length(); i++)
+  {
+    GEOM::shape_type aType = myObjects[i]->GetShapeType();
+    if( aType != GEOM::FACE && aType != GEOM::SHELL && aType != GEOM::SOLID ){
+       msg = tr("ERROR_SHAPE_TYPE");
+       return false;
+    }
+  }
+  return true;
 }
 
 
@@ -304,6 +299,7 @@ bool TransformationGUI_OffsetDlg::execute( ObjectList& objects )
   if (GroupPoints->CheckButton1->isChecked() || IsPreview())
     for (int i = 0; i < myObjects.length(); i++)
       {
+
        anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->OffsetShapeCopy( myObjects[i], GetOffset() );
        if ( !anObj->_is_nil() )
          objects.push_back( anObj._retn() );