X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FSMESHGUI%2FSMESHGUI_ScaleDlg.cxx;h=1e3cd9f9542c7f6720342feee0dd965690519897;hb=7a940415de0444f9f371f37c3845648678f063c9;hp=faf385d633d2648d59d833d0d72e4afab890d3a1;hpb=f27d39d23d1b336a4704476328382c17d5e3a0f6;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_ScaleDlg.cxx b/src/SMESHGUI/SMESHGUI_ScaleDlg.cxx index faf385d63..1e3cd9f95 100644 --- a/src/SMESHGUI/SMESHGUI_ScaleDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ScaleDlg.cxx @@ -1,22 +1,21 @@ -// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // -// 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. +// 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. // -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// You should have received a copy of the GNU Lesser General Public +// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMESHGUI : GUI for SMESH component // File : SMESHGUI_ScaleDlg.cxx // Author : Michael ZORIN, Open CASCADE S.A.S. // SMESH includes @@ -235,8 +234,8 @@ SMESHGUI_ScaleDlg::SMESHGUI_ScaleDlg( SMESHGUI* theModule ) : GroupArgumentsLayout->addWidget(TextLabel4, 5, 0); GroupArgumentsLayout->addWidget(SpinBox_FZ, 5, 3); GroupArgumentsLayout->addWidget(ActionBox, 7, 0, 3, 4); - GroupArgumentsLayout->addWidget(MakeGroupsCheck, 7, 5, 1, 4); - GroupArgumentsLayout->addWidget(LineEditNewMesh, 8, 5, 1, 4); + GroupArgumentsLayout->addWidget(MakeGroupsCheck, 8, 5, 1, 4); + GroupArgumentsLayout->addWidget(LineEditNewMesh, 9, 5, 1, 4); GroupArgumentsLayout->addWidget(myPreviewCheckBox, 10, 0); /***************************************************************/ @@ -472,9 +471,13 @@ bool SMESHGUI_ScaleDlg::ClickOnApply() int actionButton = ActionGroup->checkedId(); bool makeGroups = ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() ); + QStringList anEntryList; try { SUIT_OverrideCursor aWaitCursor; SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor(); + + myMesh->SetParameters( aParameters.join(":").toLatin1().constData() ); + SMESH::SMESH_IDSource_var obj; if ( CheckBoxMesh->isChecked() ) obj = mySelectedObject; @@ -485,8 +488,6 @@ bool SMESHGUI_ScaleDlg::ClickOnApply() case MOVE_ELEMS_BUTTON: aMeshEditor->Scale(obj, aPoint, aScaleFact, false); - if( !myMesh->_is_nil()) - myMesh->SetParameters( aParameters.join(":").toLatin1().constData() ); break; case COPY_ELEMS_BUTTON: @@ -495,8 +496,6 @@ bool SMESHGUI_ScaleDlg::ClickOnApply() aMeshEditor->ScaleMakeGroups(obj, aPoint, aScaleFact); else aMeshEditor->Scale(obj, aPoint, aScaleFact, true); - if( !myMesh->_is_nil()) - myMesh->SetParameters( aParameters.join(":").toLatin1().constData() ); break; case MAKE_MESH_BUTTON: { @@ -504,7 +503,8 @@ bool SMESHGUI_ScaleDlg::ClickOnApply() aMeshEditor->ScaleMakeMesh(obj, aPoint, aScaleFact, makeGroups, LineEditNewMesh->text().toLatin1().data()); if (!mesh->_is_nil()) { - mesh->SetParameters(aParameters.join(":").toLatin1().constData()); + if( _PTR(SObject) aSObject = SMESH::ObjectToSObject( mesh ) ) + anEntryList.append( aSObject->GetID().c_str() ); #ifdef WITHGENERICOBJ // obj has been published in study. Its refcount has been incremented. // It is safe to decrement its refcount @@ -519,9 +519,13 @@ bool SMESHGUI_ScaleDlg::ClickOnApply() } SMESH::UpdateView(); - if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() || - actionButton == MAKE_MESH_BUTTON ) + if ( ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() ) || + actionButton == MAKE_MESH_BUTTON ) { mySMESHGUI->updateObjBrowser(true); // new groups may appear + if( LightApp_Application* anApp = + dynamic_cast( SUIT_Session::session()->activeApplication() ) ) + anApp->browseObjects( anEntryList, isApplyAndClose() ); + } Init(false); ConstructorsClicked(GetConstructorId()); mySelectedObject = SMESH::SMESH_IDSource::_nil(); @@ -539,6 +543,7 @@ bool SMESHGUI_ScaleDlg::ClickOnApply() //================================================================================= void SMESHGUI_ScaleDlg::ClickOnOk() { + setIsApplyAndClose( true ); if( ClickOnApply() ) ClickOnCancel(); } @@ -1084,7 +1089,8 @@ void SMESHGUI_ScaleDlg::onDisplaySimulation( bool toDisplayPreview ) { getScale(aPoint, aScaleFact); try { - bool copy = ActionGroup->checkedId() == COPY_ELEMS_BUTTON; + bool copy = ( ActionGroup->checkedId() == COPY_ELEMS_BUTTON || + ActionGroup->checkedId() == MAKE_MESH_BUTTON ); SUIT_OverrideCursor aWaitCursor; SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditPreviewer(); SMESH::SMESH_IDSource_var obj;