X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_SymmetryDlg.cxx;h=1b484b5b3750a210cb8505e9930715adc034bddd;hb=abd8d64dea038a7accb9a2d166e942c26d634b2a;hp=2a014f21ed9a54df8ada71f00949157385da8f66;hpb=0631ddc21db91465a4fbf2b9b2e9f69b0d45f24f;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx b/src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx index 2a014f21e..1b484b5b3 100644 --- a/src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -32,7 +32,6 @@ #include "SMESHGUI_MeshUtils.h" #include "SMESHGUI_IdValidator.h" #include "SMESHGUI_FilterDlg.h" -#include "SMESHGUI_MeshEditPreview.h" #include #include @@ -312,7 +311,10 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule ) connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); /* to close dialog if study change */ - connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(reject())); + connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(reject())); + connect(mySMESHGUI, SIGNAL(SignalActivatedViewManager()), this, SLOT(onOpenView())); + connect(mySMESHGUI, SIGNAL(SignalCloseView()), this, SLOT(onCloseView())); + connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&))); connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool))); connect(ActionGroup, SIGNAL(buttonClicked(int)), SLOT(onActionClicked(int))); @@ -355,14 +357,25 @@ void SMESHGUI_SymmetryDlg::Init (bool ResetControls) myObjects.clear(); myObjectsNames.clear(); - myEditCurrentArgument = 0; - LineEditElements->clear(); + myEditCurrentArgument = LineEditElements; + LineEditElements->setFocus(); myElementsId = ""; myNbOkElements = 0; buttonOk->setEnabled(false); buttonApply->setEnabled(false); + if ( !ResetControls && !isApplyAndClose() && // make highlight move upon [Apply] (IPAL20729) + myActor && !myActor->getIO().IsNull() && + ActionGroup->button( MOVE_ELEMS_BUTTON )->isChecked() && + !CheckBoxMesh->isChecked() ) // move selected elements + { + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + { + aViewWindow->highlight( myActor->getIO(), false, false ); + aViewWindow->highlight( myActor->getIO(), true, true ); + } + } myActor = 0; if (ResetControls) { @@ -377,11 +390,8 @@ void SMESHGUI_SymmetryDlg::Init (bool ResetControls) CheckBoxMesh->setChecked(false); myPreviewCheckBox->setChecked(false); onDisplaySimulation(false); - -// MakeGroupsCheck->setChecked(false); -// MakeGroupsCheck->setEnabled(false); - onSelectMesh(false); } + onSelectMesh(CheckBoxMesh->isChecked()); } //================================================================================= @@ -581,8 +591,6 @@ bool SMESHGUI_SymmetryDlg::ClickOnApply() anApp->browseObjects( anEntryList, isApplyAndClose() ); } Init(false); - ConstructorsClicked(GetConstructorId()); - SelectionIntoArgument(); SMESHGUI::Modified(); } @@ -619,6 +627,31 @@ void SMESHGUI_SymmetryDlg::reject() QDialog::reject(); } +//================================================================================= +// function : onOpenView() +// purpose : +//================================================================================= +void SMESHGUI_SymmetryDlg::onOpenView() +{ + if ( mySelector ) { + SMESH::SetPointRepresentation(false); + } + else { + mySelector = SMESH::GetViewWindow( mySMESHGUI )->GetSelector(); + ActivateThisDialog(); + } +} + +//================================================================================= +// function : onCloseView() +// purpose : +//================================================================================= +void SMESHGUI_SymmetryDlg::onCloseView() +{ + DeactivateActiveDialog(); + mySelector = 0; +} + //================================================================================= // function : ClickOnHelp() // purpose : @@ -782,46 +815,8 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument() if ( myObjects.isEmpty() ) return; // get IDs from mesh - /* - SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh(); - if (!aSMDSMesh) - return; - - for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++) { - const SMDS_MeshElement * e = aSMDSMesh->FindElement(i); - if (e) { - myElementsId += QString(" %1").arg(i); - aNbUnits++; - } - } - } else if (!SMESH::IObjectToInterface(IO)->_is_nil()) { //SUBMESH - // get submesh - SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface(IO); - - // get IDs from submesh - /* - SMESH::long_array_var anElementsIds = new SMESH::long_array; - anElementsIds = aSubMesh->GetElementsId(); - for (int i = 0; i < anElementsIds->length(); i++) { - myElementsId += QString(" %1").arg(anElementsIds[i]); - } - aNbUnits = anElementsIds->length(); - } else { // GROUP - // get smesh group - SMESH::SMESH_GroupBase_var aGroup = - SMESH::IObjectToInterface(IO); - if (aGroup->_is_nil()) - return; - - // get IDs from smesh group - SMESH::long_array_var anElementsIds = new SMESH::long_array; - anElementsIds = aGroup->GetListOfID(); - for (int i = 0; i < anElementsIds->length(); i++) { - myElementsId += QString(" %1").arg(anElementsIds[i]); - } - aNbUnits = anElementsIds->length(); - } - */ + // get IDs from submesh + // get IDs from smesh group } else { aNbUnits = SMESH::GetNameOfSelectedElements( mySelector, aList.First(), aString); myElementsId = aString; @@ -968,8 +963,13 @@ void SMESHGUI_SymmetryDlg::ActivateThisDialog() //================================================================================= void SMESHGUI_SymmetryDlg::enterEvent (QEvent*) { - if (!ConstructorsBox->isEnabled()) + if (!ConstructorsBox->isEnabled()) { + SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ); + if ( aViewWindow && !mySelector) { + mySelector = aViewWindow->GetSelector(); + } ActivateThisDialog(); + } } //=======================================================================