X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FSMESHGUI%2FSMESHGUI_SmoothingDlg.cxx;h=d752a128aa14b55783e5f57f20407b43f4966511;hb=193c49c87753b6ccabb2b5e6dc935aa480d2d43e;hp=c16c64379720e3696c73971c8d5db4e42a62aa08;hpb=6bac08c1a81f34d3f21c550bd92f83654b2546a5;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx b/src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx index c16c64379..d752a128a 100644 --- a/src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx @@ -284,7 +284,9 @@ SMESHGUI_SmoothingDlg::SMESHGUI_SmoothingDlg( 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(LineEditNodes, SIGNAL(textChanged(const QString&)), @@ -404,10 +406,11 @@ bool SMESHGUI_SmoothingDlg::ClickOnApply() if (aResult) { SMESH::Update(myIO, SMESH::eDisplay); + SMESH::RepaintCurrentView(); SMESHGUI::Modified(); - Init(); + //Init(); - mySelectedObject = SMESH::SMESH_IDSource::_nil(); + //mySelectedObject = SMESH::SMESH_IDSource::_nil(); } } @@ -444,6 +447,31 @@ void SMESHGUI_SmoothingDlg::reject() QDialog::reject(); } +//================================================================================= +// function : onOpenView() +// purpose : +//================================================================================= +void SMESHGUI_SmoothingDlg::onOpenView() +{ + if ( mySelector ) { + SMESH::SetPointRepresentation(false); + } + else { + mySelector = SMESH::GetViewWindow( mySMESHGUI )->GetSelector(); + ActivateThisDialog(); + } +} + +//================================================================================= +// function : onCloseView() +// purpose : +//================================================================================= +void SMESHGUI_SmoothingDlg::onCloseView() +{ + DeactivateActiveDialog(); + mySelector = 0; +} + //================================================================================= // function : ClickOnHelp() // purpose : @@ -533,7 +561,7 @@ void SMESHGUI_SmoothingDlg::onTextChange (const QString& theNewText) //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection has changed or other cases //================================================================================= void SMESHGUI_SmoothingDlg::SelectionIntoArgument() { @@ -567,44 +595,44 @@ void SMESHGUI_SmoothingDlg::SelectionIntoArgument() SALOME_ListIO aList; mySelectionMgr->selectedObjects(aList); int nbSel = aList.Extent(); - if (nbSel != 1) - return; - - Handle(SALOME_InteractiveObject) IO = aList.First(); - - if (myEditCurrentArgument == LineEditElements) { - myMesh = SMESH::GetMeshByIO(IO); - if (myMesh->_is_nil()) - return; - myIO = IO; - myActor = SMESH::FindActorByObject(myMesh); - - if (CheckBoxMesh->isChecked()) { - SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString); + if (nbSel == 1) + { + Handle(SALOME_InteractiveObject) IO = aList.First(); - SMESH::SMESH_IDSource_var obj = SMESH::IObjectToInterface( myIO ); - if ( !CORBA::is_nil( obj ) ) - mySelectedObject = obj; - else + if (myEditCurrentArgument == LineEditElements) { + myMesh = SMESH::GetMeshByIO(IO); + if (myMesh->_is_nil()) return; - myNbOkElements = true; - } else { - // get indices of selected elements - TColStd_IndexedMapOfInteger aMapIndex; - mySelector->GetIndex(IO,aMapIndex); - myNbOkElements = aMapIndex.Extent(); + myIO = IO; + myActor = SMESH::FindActorByObject(myMesh); - if (myNbOkElements < 1) - return; + if (CheckBoxMesh->isChecked()) { + SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString); - QStringList elements; - for ( int i = 0; i < myNbOkElements; ++i ) - elements << QString::number( aMapIndex( i+1 ) ); - aString = elements.join(" "); + SMESH::SMESH_IDSource_var obj = SMESH::IObjectToInterface( myIO ); + if ( !CORBA::is_nil( obj ) ) + mySelectedObject = obj; + else + return; + myNbOkElements = true; + } else { + // get indices of selected elements + TColStd_IndexedMapOfInteger aMapIndex; + mySelector->GetIndex(IO,aMapIndex); + myNbOkElements = aMapIndex.Extent(); + + if (myNbOkElements < 1) + return; + + QStringList elements; + for ( int i = 0; i < myNbOkElements; ++i ) + elements << QString::number( aMapIndex( i+1 ) ); + aString = elements.join(" "); + } + } else if (myEditCurrentArgument == LineEditNodes && !myMesh->_is_nil() && myIO->isSame(IO) ) + { + myNbOkNodes = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString); } - } else if (myEditCurrentArgument == LineEditNodes && !myMesh->_is_nil() && myIO->isSame(IO) ) - { - myNbOkNodes = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString); } myEditCurrentArgument->setText(aString); @@ -701,8 +729,13 @@ void SMESHGUI_SmoothingDlg::ActivateThisDialog() //================================================================================= void SMESHGUI_SmoothingDlg::enterEvent (QEvent*) { - if (!GroupConstructors->isEnabled()) + if (!GroupConstructors->isEnabled()) { + SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ); + if ( aViewWindow && !mySelector) { + mySelector = aViewWindow->GetSelector(); + } ActivateThisDialog(); + } } //=======================================================================