X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMeasureGUI%2FMeasureGUI_CenterMassDlg.cxx;h=451743a533419136e8e6142d12ccf247a1da3a0d;hb=004197ec827d52331f0d529202eb4e52a1c4388f;hp=9191ebd3429e668d35a4a1752d8932c232f4eff3;hpb=6fa64130e586f57e807bfb298c52f10bfb2c0b2d;p=modules%2Fgeom.git diff --git a/src/MeasureGUI/MeasureGUI_CenterMassDlg.cxx b/src/MeasureGUI/MeasureGUI_CenterMassDlg.cxx index 9191ebd34..451743a53 100644 --- a/src/MeasureGUI/MeasureGUI_CenterMassDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_CenterMassDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,69 +17,75 @@ // 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 // -// -// -// File : MeasureGUI_CenterMassDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_CenterMassDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// #include "MeasureGUI_CenterMassDlg.h" -#include "MeasureGUI_1Sel3LineEdit_QTD.h" +#include "MeasureGUI_Widgets.h" + +#include +#include -#include "utilities.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SalomeApp_Tools.h" +#include + +#include +#include +#include +#include +#include #include #include #include #include -#include - //================================================================================= // class : MeasureGUI_CenterMassDlg() // purpose : Constructs a MeasureGUI_CenterMassDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. +// true to construct a modal dialog. //================================================================================= -MeasureGUI_CenterMassDlg::MeasureGUI_CenterMassDlg( QWidget* parent ) -: GEOMBase_Skeleton( parent, "MeasureGUI_CenterMassDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +MeasureGUI_CenterMassDlg::MeasureGUI_CenterMassDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) + : GEOMBase_Skeleton( theGeometryGUI, parent, false ) { - QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM",tr( "ICON_DLG_CENTERMASS" ) ) ); - QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM",tr( "ICON_SELECT" ) ) ); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_CENTERMASS" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption( tr( "GEOM_CMASS_TITLE" ) ); + setWindowTitle( tr( "GEOM_CMASS_TITLE" ) ); /***************************************************************/ - - GroupConstructors->setTitle( tr( "GEOM_CMASS" ) ); - RadioButton1->setPixmap( image0 ); - RadioButton2->close( TRUE ); - RadioButton3->close( TRUE ); - - myGrp = new MeasureGUI_1Sel3LineEdit_QTD( this, "myGrp" ); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_CMASS" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); + + myGrp = new MeasureGUI_1Sel3LineEdit( centralWidget() ); myGrp->GroupBox1->setTitle( tr( "GEOM_CENTER" ) ); myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) ); myGrp->TextLabel2->setText( tr( "GEOM_X" ) ); myGrp->TextLabel3->setText( tr( "GEOM_Y" ) ); myGrp->TextLabel4->setText( tr( "GEOM_Z" ) ); - myGrp->LineEdit2->setReadOnly( TRUE ); - myGrp->LineEdit3->setReadOnly( TRUE ); - myGrp->LineEdit4->setReadOnly( TRUE ); - myGrp->PushButton1->setPixmap( image1 ); + myGrp->LineEdit2->setReadOnly( true ); + myGrp->LineEdit3->setReadOnly( true ); + myGrp->LineEdit4->setReadOnly( true ); + myGrp->PushButton1->setIcon( image1 ); myGrp->LineEdit1->setReadOnly( true ); - Layout1->addWidget( myGrp, 2, 0 ); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp ); + /***************************************************************/ + myHelpFileName = "using_measurement_tools_page.html#center_mass_anchor"; + /* Initialisation */ Init(); } @@ -104,22 +110,18 @@ void MeasureGUI_CenterMassDlg::Init() myEditCurrentArgument = myGrp->LineEdit1; /* signals and slots connections */ - connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); - connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect( myGrp->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect( myGrp->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( myGrp->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( myGrp->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_POINT") ); globalSelection(); SelectionIntoArgument(); - - /* displays Dialog */ - myGrp->show(); - this->show(); } @@ -159,18 +161,20 @@ void MeasureGUI_CenterMassDlg::SelectionIntoArgument() erasePreview(); myObj = GEOM::GEOM_Object::_nil(); - if ( IObjectCount() != 1 ) - { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { processObject(); return; } Standard_Boolean testResult = Standard_False; GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); - if ( !testResult || aSelectedObject->_is_nil() ) - { + if (!testResult || aSelectedObject->_is_nil()) { processObject(); return; } @@ -180,7 +184,6 @@ void MeasureGUI_CenterMassDlg::SelectionIntoArgument() displayPreview(); } - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -200,8 +203,7 @@ void MeasureGUI_CenterMassDlg::SetEditCurrentArgument() void MeasureGUI_CenterMassDlg::LineEditReturnPressed() { QLineEdit* send = ( QLineEdit* )sender(); - if ( send == myGrp->LineEdit1 ) - { + if ( send == myGrp->LineEdit1 ) { myEditCurrentArgument = myGrp->LineEdit1; GEOMBase_Skeleton::LineEditReturnPressed(); } @@ -216,8 +218,8 @@ void MeasureGUI_CenterMassDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL(currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); globalSelection(); displayPreview(); @@ -229,24 +231,22 @@ void MeasureGUI_CenterMassDlg::ActivateThisDialog() //================================================================================= void MeasureGUI_CenterMassDlg::processObject() { - if ( myObj->_is_nil() ) - { + if ( myObj->_is_nil() ) { myGrp->LineEdit1->setText( "" ); myGrp->LineEdit2->setText( "" ); myGrp->LineEdit3->setText( "" ); myGrp->LineEdit4->setText( "" ); erasePreview(); } - else - { + else { double x = 0, y = 0, z = 0; getParameters( x, y, z ); myGrp->LineEdit1->setText( GEOMBase::GetName( myObj ) ); - myGrp->LineEdit2->setText( QString( "%1" ).arg( x ) ); - myGrp->LineEdit3->setText( QString( "%1" ).arg( y ) ); - myGrp->LineEdit4->setText( QString( "%1" ).arg( z ) ); + myGrp->LineEdit2->setText( DlgRef::PrintDoubleValue( x ) ); + myGrp->LineEdit3->setText( DlgRef::PrintDoubleValue( y ) ); + myGrp->LineEdit4->setText( DlgRef::PrintDoubleValue( z ) ); displayPreview(); } @@ -257,9 +257,9 @@ void MeasureGUI_CenterMassDlg::processObject() // function : enterEvent() // purpose : //================================================================================= -void MeasureGUI_CenterMassDlg::enterEvent( QEvent* e ) +void MeasureGUI_CenterMassDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -289,13 +289,11 @@ bool MeasureGUI_CenterMassDlg::getParameters( double& theX, double& theY, double { if ( myObj->_is_nil() ) return false; - else - { - try - { - GEOM::GEOM_Object_var anObj; - anObj = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->GetCentreOfMass( myObj ); - if ( !getOperation()->IsDone() ) + else { + try { + GEOM::GEOM_IMeasureOperations_var anOper = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() ); + GEOM::GEOM_Object_var anObj = anOper->GetCentreOfMass( myObj ); + if ( !anOper->IsDone() ) return false; TopoDS_Shape aShape; @@ -314,8 +312,7 @@ bool MeasureGUI_CenterMassDlg::getParameters( double& theX, double& theY, double return true; } - catch( const SALOME::SALOME_Exception& e ) - { + catch( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); return false; } @@ -328,14 +325,11 @@ bool MeasureGUI_CenterMassDlg::getParameters( double& theX, double& theY, double //================================================================================= bool MeasureGUI_CenterMassDlg::execute( ObjectList& objects ) { - GEOM::GEOM_Object_var anObj; - - anObj = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->GetCentreOfMass( myObj ); + GEOM::GEOM_IMeasureOperations_var anOper = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() ); + GEOM::GEOM_Object_var anObj = anOper->GetCentreOfMass( myObj ); if ( !anObj->_is_nil() ) objects.push_back( anObj._retn() ); return true; } - -