mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-27 20:30:32 +05:00
IPAL52943: "Apply and Close" button does not active on symmetry dialog box
Enable work with not shown meshes
This commit is contained in:
parent
7b33b10e89
commit
7a7d7e6e48
@ -706,13 +706,15 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
|
||||
|
||||
int aNbUnits = 0;
|
||||
|
||||
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
|
||||
if (myEditCurrentArgument == (QWidget*)LineEditElements)
|
||||
{
|
||||
myElementsId = "";
|
||||
myObjects.clear();
|
||||
myObjectsNames.clear();
|
||||
myMeshes.clear();
|
||||
|
||||
for ( SALOME_ListIteratorOfListIO it( aList ); it.More(); it.Next() ) {
|
||||
for ( SALOME_ListIteratorOfListIO it( aList ); it.More(); it.Next() )
|
||||
{
|
||||
Handle(SALOME_InteractiveObject) IO = it.Value();
|
||||
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
||||
if ( aMesh->_is_nil() )
|
||||
@ -721,19 +723,18 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
|
||||
myActor = SMESH::FindActorByObject( aMesh );
|
||||
if ( !myActor )
|
||||
myActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||
if ( !myActor && !CheckBoxMesh->isChecked() )
|
||||
return;
|
||||
// if ( !myActor && !CheckBoxMesh->isChecked() ) -- elems can be selected by Filter
|
||||
// return;
|
||||
|
||||
if ( !SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO )->_is_nil() ) {
|
||||
if ( _PTR(Study) aStudy = SMESH::GetActiveStudyDocument() ) {
|
||||
_PTR(SObject) obj = aStudy->FindObjectID( qPrintable( QString( IO->getEntry() ) ) );
|
||||
_PTR(GenericAttribute) anAttr;
|
||||
if ( obj && obj->FindAttribute( anAttr, "AttributeName" ) ) {
|
||||
_PTR(AttributeName) aNameAttr( anAttr );
|
||||
myObjects << SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||
myObjectsNames << aNameAttr->Value().c_str();
|
||||
myMeshes << aMesh;
|
||||
}
|
||||
SMESH::SMESH_IDSource_var idSrc = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||
if ( _PTR(SObject) obj = SMESH::FindSObject( idSrc ))
|
||||
{
|
||||
std::string name = obj->GetName();
|
||||
if ( !name.empty() )
|
||||
{
|
||||
myObjects << idSrc;
|
||||
myObjectsNames << name.c_str();
|
||||
myMeshes << aMesh;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -749,11 +750,11 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
|
||||
else if ( ActionGroup->checkedId() != MOVE_ELEMS_BUTTON ) {
|
||||
MakeGroupsCheck->setEnabled(true);
|
||||
}
|
||||
if (CheckBoxMesh->isChecked()) {
|
||||
SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
|
||||
|
||||
if (CheckBoxMesh->isChecked()) {
|
||||
if ( myMeshes.isEmpty() )
|
||||
return;
|
||||
SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
|
||||
}
|
||||
else {
|
||||
aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, aList.First(), aString);
|
||||
@ -764,15 +765,13 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
|
||||
|
||||
myNbOkElements = true;
|
||||
|
||||
} else {
|
||||
}
|
||||
else // set coordinates by picked nodes
|
||||
{
|
||||
Handle(SALOME_InteractiveObject) IO = aList.First();
|
||||
if ((SMESH::GetMeshByIO(IO))->_is_nil())
|
||||
return;
|
||||
|
||||
SMESH_Actor* anActor = SMESH::FindActorByObject(SMESH::GetMeshByIO(IO));
|
||||
SMESH_Actor* anActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||
if (!anActor)
|
||||
anActor = SMESH::FindActorByEntry(IO->getEntry());
|
||||
if (!anActor && !CheckBoxMesh->isChecked())
|
||||
return;
|
||||
|
||||
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
||||
@ -1062,8 +1061,10 @@ void SMESHGUI_RotationDlg::setFilters()
|
||||
tr("NO_MESH_SELECTED"));
|
||||
return;
|
||||
}
|
||||
if ( !myFilterDlg )
|
||||
if ( !myFilterDlg ) {
|
||||
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
||||
connect(myFilterDlg, SIGNAL(Accepted()), SLOT(onFilterAccepted()));
|
||||
}
|
||||
|
||||
QList<int> types;
|
||||
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
||||
@ -1081,6 +1082,23 @@ void SMESHGUI_RotationDlg::setFilters()
|
||||
myFilterDlg->show();
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// name : onFilterAccepted()
|
||||
// Purpose : SLOT. Called when Filter dlg closed with OK button.
|
||||
// Activate [Apply] if no Actor is available
|
||||
//=======================================================================
|
||||
void SMESHGUI_RotationDlg::onFilterAccepted()
|
||||
{
|
||||
if ( myMeshes.length() > 0 && !buttonOk->isEnabled() )
|
||||
{
|
||||
myElementsId = LineEditElements->text();
|
||||
QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts);
|
||||
myNbOkElements = aListElementsId.count();
|
||||
buttonOk->setEnabled( myNbOkElements );
|
||||
buttonApply->setEnabled( myNbOkElements );
|
||||
}
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
// function : isValid
|
||||
// purpose :
|
||||
|
@ -135,6 +135,7 @@ private:
|
||||
protected slots:
|
||||
virtual void onDisplaySimulation( bool );
|
||||
virtual void reject();
|
||||
void onFilterAccepted();
|
||||
|
||||
private slots:
|
||||
void ClickOnOk();
|
||||
|
@ -743,13 +743,15 @@ void SMESHGUI_ScaleDlg::SelectionIntoArgument()
|
||||
|
||||
int aNbUnits = 0;
|
||||
|
||||
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
|
||||
if (myEditCurrentArgument == (QWidget*)LineEditElements)
|
||||
{
|
||||
myElementsId = "";
|
||||
myObjects.clear();
|
||||
myObjectsNames.clear();
|
||||
myMeshes.clear();
|
||||
|
||||
for ( SALOME_ListIteratorOfListIO it( aList ); it.More(); it.Next() ) {
|
||||
for ( SALOME_ListIteratorOfListIO it( aList ); it.More(); it.Next() )
|
||||
{
|
||||
Handle(SALOME_InteractiveObject) IO = it.Value();
|
||||
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
||||
if ( aMesh->_is_nil() )
|
||||
@ -758,19 +760,18 @@ void SMESHGUI_ScaleDlg::SelectionIntoArgument()
|
||||
myActor = SMESH::FindActorByObject( aMesh );
|
||||
if ( !myActor )
|
||||
myActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||
if ( !myActor && !CheckBoxMesh->isChecked() )
|
||||
return;
|
||||
// if ( !myActor && !CheckBoxMesh->isChecked() ) -- elems can be selected by Filter
|
||||
// return;
|
||||
|
||||
if ( !SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO )->_is_nil() ) {
|
||||
if ( _PTR(Study) aStudy = SMESH::GetActiveStudyDocument() ) {
|
||||
_PTR(SObject) obj = aStudy->FindObjectID( qPrintable( QString( IO->getEntry() ) ) );
|
||||
_PTR(GenericAttribute) anAttr;
|
||||
if ( obj && obj->FindAttribute( anAttr, "AttributeName" ) ) {
|
||||
_PTR(AttributeName) aNameAttr( anAttr );
|
||||
myObjects << SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||
myObjectsNames << aNameAttr->Value().c_str();
|
||||
myMeshes << aMesh;
|
||||
}
|
||||
SMESH::SMESH_IDSource_var idSrc = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||
if ( _PTR(SObject) obj = SMESH::FindSObject( idSrc ))
|
||||
{
|
||||
std::string name = obj->GetName();
|
||||
if ( !name.empty() )
|
||||
{
|
||||
myObjects << idSrc;
|
||||
myObjectsNames << name.c_str();
|
||||
myMeshes << aMesh;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -789,50 +790,11 @@ void SMESHGUI_ScaleDlg::SelectionIntoArgument()
|
||||
}
|
||||
|
||||
if (CheckBoxMesh->isChecked()) {
|
||||
SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString );
|
||||
if (myMeshes.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<SMESH::SMESH_subMesh>(IO)->_is_nil()) { //SUBMESH
|
||||
// get submesh
|
||||
SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(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<SMESH::SMESH_GroupBase>(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();
|
||||
}
|
||||
*/
|
||||
} else {
|
||||
SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString );
|
||||
}
|
||||
else {
|
||||
aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, aList.First(), aString);
|
||||
myElementsId = aString;
|
||||
if (aNbUnits < 1)
|
||||
@ -840,15 +802,14 @@ void SMESHGUI_ScaleDlg::SelectionIntoArgument()
|
||||
}
|
||||
|
||||
myNbOkElements = true;
|
||||
} else {
|
||||
Handle(SALOME_InteractiveObject) IO = aList.First();
|
||||
if ((SMESH::GetMeshByIO(IO))->_is_nil())
|
||||
return;
|
||||
|
||||
SMESH_Actor* anActor = SMESH::FindActorByObject(SMESH::GetMeshByIO(IO));
|
||||
}
|
||||
else // set coordinates by a picked node
|
||||
{
|
||||
Handle(SALOME_InteractiveObject) IO = aList.First();
|
||||
|
||||
SMESH_Actor* anActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||
if (!anActor)
|
||||
anActor = SMESH::FindActorByEntry(IO->getEntry());
|
||||
if (!anActor && !CheckBoxMesh->isChecked())
|
||||
return;
|
||||
|
||||
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
||||
@ -1105,14 +1066,14 @@ void SMESHGUI_ScaleDlg::keyPressEvent( QKeyEvent* e )
|
||||
//=================================================================================
|
||||
void SMESHGUI_ScaleDlg::setFilters()
|
||||
{
|
||||
if(myMeshes.isEmpty()) {
|
||||
SUIT_MessageBox::critical(this,
|
||||
tr("SMESH_ERROR"),
|
||||
tr("NO_MESH_SELECTED"));
|
||||
return;
|
||||
if ( myMeshes.isEmpty() ) {
|
||||
SUIT_MessageBox::critical(this, tr("SMESH_ERROR"), tr("NO_MESH_SELECTED"));
|
||||
return;
|
||||
}
|
||||
if ( !myFilterDlg )
|
||||
if ( !myFilterDlg ) {
|
||||
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
||||
connect(myFilterDlg, SIGNAL(Accepted()), SLOT(onFilterAccepted()));
|
||||
}
|
||||
|
||||
QList<int> types;
|
||||
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
||||
@ -1130,6 +1091,23 @@ void SMESHGUI_ScaleDlg::setFilters()
|
||||
myFilterDlg->show();
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// name : onFilterAccepted()
|
||||
// Purpose : SLOT. Called when Filter dlg closed with OK button.
|
||||
// Activate [Apply] if no Actor is available
|
||||
//=======================================================================
|
||||
void SMESHGUI_ScaleDlg::onFilterAccepted()
|
||||
{
|
||||
if ( myMeshes.length() > 0 && !buttonOk->isEnabled() )
|
||||
{
|
||||
myElementsId = LineEditElements->text();
|
||||
QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts);
|
||||
myNbOkElements = aListElementsId.count();
|
||||
buttonOk->setEnabled ( myNbOkElements );
|
||||
buttonApply->setEnabled( myNbOkElements );
|
||||
}
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
// function : isValid
|
||||
// purpose :
|
||||
|
@ -131,6 +131,7 @@ private:
|
||||
protected slots:
|
||||
virtual void onDisplaySimulation( bool );
|
||||
virtual void reject();
|
||||
void onFilterAccepted();
|
||||
|
||||
private slots:
|
||||
void ConstructorsClicked( int );
|
||||
|
@ -765,43 +765,43 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
|
||||
|
||||
int aNbUnits = 0;
|
||||
|
||||
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
|
||||
if (myEditCurrentArgument == (QWidget*)LineEditElements)
|
||||
{
|
||||
myElementsId = "";
|
||||
myObjects.clear();
|
||||
myObjectsNames.clear();
|
||||
myMeshes.clear();
|
||||
|
||||
for ( SALOME_ListIteratorOfListIO it( aList ); it.More(); it.Next() ) {
|
||||
for ( SALOME_ListIteratorOfListIO it( aList ); it.More(); it.Next() )
|
||||
{
|
||||
Handle(SALOME_InteractiveObject) IO = it.Value();
|
||||
|
||||
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
||||
if( aMesh->_is_nil() )
|
||||
return;
|
||||
if ( aMesh->_is_nil() )
|
||||
continue;
|
||||
|
||||
myActor = SMESH::FindActorByObject( aMesh );
|
||||
if ( !myActor )
|
||||
myActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||
if ( !myActor && !CheckBoxMesh->isChecked() )
|
||||
return;
|
||||
// if ( !myActor && !CheckBoxMesh->isChecked() ) -- elems can be selected by Filter
|
||||
// return;
|
||||
|
||||
if ( !SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO )->_is_nil() ) {
|
||||
if ( _PTR(Study) aStudy = SMESH::GetActiveStudyDocument() ) {
|
||||
_PTR(SObject) obj = aStudy->FindObjectID( qPrintable( QString( IO->getEntry() ) ) );
|
||||
_PTR(GenericAttribute) anAttr;
|
||||
if ( obj && obj->FindAttribute( anAttr, "AttributeName" ) ) {
|
||||
_PTR(AttributeName) aNameAttr( anAttr );
|
||||
myObjects << SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||
myObjectsNames << aNameAttr->Value().c_str();
|
||||
myMeshes << aMesh;
|
||||
}
|
||||
SMESH::SMESH_IDSource_var idSrc = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||
if ( _PTR(SObject) obj = SMESH::FindSObject( idSrc ))
|
||||
{
|
||||
std::string name = obj->GetName();
|
||||
if ( !name.empty() )
|
||||
{
|
||||
myObjects << idSrc;
|
||||
myObjectsNames << name.c_str();
|
||||
myMeshes << aMesh;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MakeGroups is available if there are groups and "Copy"
|
||||
int aNbGroups = 0;
|
||||
for ( int i = 0; i < myMeshes.count(); i++ )
|
||||
aNbGroups += myMeshes[i]->NbGroups();
|
||||
int aNbGroups = 0;
|
||||
for ( int i = 0; i < myMeshes.count(); i++ )
|
||||
aNbGroups += myMeshes[i]->NbGroups();
|
||||
|
||||
if ( aNbGroups == 0 ) {
|
||||
MakeGroupsCheck->setChecked(false);
|
||||
@ -810,31 +810,26 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
|
||||
else if ( ActionGroup->checkedId() != MOVE_ELEMS_BUTTON ) {
|
||||
MakeGroupsCheck->setEnabled(true);
|
||||
}
|
||||
if (CheckBoxMesh->isChecked()) {
|
||||
SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
|
||||
|
||||
if (CheckBoxMesh->isChecked()) {
|
||||
if ( myObjects.isEmpty() )
|
||||
return;
|
||||
// get IDs from mesh
|
||||
// get IDs from submesh
|
||||
// get IDs from smesh group
|
||||
} else {
|
||||
SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
|
||||
}
|
||||
else {
|
||||
aNbUnits = SMESH::GetNameOfSelectedElements( mySelector, aList.First(), aString);
|
||||
myElementsId = aString;
|
||||
if (aNbUnits < 1)
|
||||
return;
|
||||
}
|
||||
|
||||
myNbOkElements = true;
|
||||
} else {
|
||||
}
|
||||
else // set coordinates by a picked node
|
||||
{
|
||||
Handle(SALOME_InteractiveObject) IO = aList.First();
|
||||
if ((SMESH::GetMeshByIO(IO))->_is_nil())
|
||||
return;
|
||||
|
||||
SMESH_Actor* anActor = SMESH::FindActorByObject(SMESH::GetMeshByIO(IO));
|
||||
SMESH_Actor* anActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||
if (!anActor)
|
||||
anActor = SMESH::FindActorByEntry(IO->getEntry());
|
||||
if (!anActor && !CheckBoxMesh->isChecked())
|
||||
return;
|
||||
|
||||
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
||||
@ -1126,14 +1121,14 @@ void SMESHGUI_SymmetryDlg::keyPressEvent( QKeyEvent* e )
|
||||
//=================================================================================
|
||||
void SMESHGUI_SymmetryDlg::setFilters()
|
||||
{
|
||||
if(myMeshes.isEmpty()) {
|
||||
SUIT_MessageBox::critical(this,
|
||||
tr("SMESH_ERROR"),
|
||||
tr("NO_MESH_SELECTED"));
|
||||
return;
|
||||
if ( myMeshes.isEmpty() ) {
|
||||
SUIT_MessageBox::critical(this, tr("SMESH_ERROR"), tr("NO_MESH_SELECTED"));
|
||||
return;
|
||||
}
|
||||
if ( !myFilterDlg )
|
||||
if ( !myFilterDlg ) {
|
||||
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
||||
connect(myFilterDlg, SIGNAL(Accepted()), SLOT(onFilterAccepted()));
|
||||
}
|
||||
|
||||
QList<int> types;
|
||||
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
||||
@ -1151,6 +1146,23 @@ void SMESHGUI_SymmetryDlg::setFilters()
|
||||
myFilterDlg->show();
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// name : onFilterAccepted()
|
||||
// Purpose : SLOT. Called when Filter dlg closed with OK button.
|
||||
// Activate [Apply] if no Actor is available
|
||||
//=======================================================================
|
||||
void SMESHGUI_SymmetryDlg::onFilterAccepted()
|
||||
{
|
||||
if ( myMeshes.length() > 0 && !buttonOk->isEnabled() )
|
||||
{
|
||||
myElementsId = LineEditElements->text();
|
||||
QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts);
|
||||
myNbOkElements = aListElementsId.count();
|
||||
buttonOk->setEnabled( myNbOkElements );
|
||||
buttonApply->setEnabled( myNbOkElements );
|
||||
}
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
// function : isValid
|
||||
// purpose :
|
||||
|
@ -139,6 +139,7 @@ private:
|
||||
protected slots:
|
||||
virtual void onDisplaySimulation( bool );
|
||||
virtual void reject();
|
||||
void onFilterAccepted();
|
||||
|
||||
private slots:
|
||||
void ConstructorsClicked( int );
|
||||
|
@ -772,13 +772,15 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
|
||||
return;
|
||||
|
||||
int aNbUnits = 0;
|
||||
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
|
||||
if (myEditCurrentArgument == (QWidget*)LineEditElements)
|
||||
{
|
||||
myElementsId = "";
|
||||
myObjects.clear();
|
||||
myObjectsNames.clear();
|
||||
myMeshes.clear();
|
||||
|
||||
for ( SALOME_ListIteratorOfListIO it( aList ); it.More(); it.Next() ) {
|
||||
for ( SALOME_ListIteratorOfListIO it( aList ); it.More(); it.Next() )
|
||||
{
|
||||
Handle(SALOME_InteractiveObject) IO = it.Value();
|
||||
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
||||
if ( aMesh->_is_nil() )
|
||||
@ -788,23 +790,22 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
|
||||
if ( !anActor )
|
||||
anActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||
|
||||
if ( !anActor && !CheckBoxMesh->isChecked() )
|
||||
return;
|
||||
// if ( !anActor && !CheckBoxMesh->isChecked() ) -- elems can be selected by Filter
|
||||
// return;
|
||||
|
||||
if ( !SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO )->_is_nil() ) {
|
||||
if ( _PTR(Study) aStudy = SMESH::GetActiveStudyDocument() ) {
|
||||
_PTR(SObject) obj = aStudy->FindObjectID( qPrintable( QString( IO->getEntry() ) ) );
|
||||
_PTR(GenericAttribute) anAttr;
|
||||
if ( obj && obj->FindAttribute( anAttr, "AttributeName" ) ) {
|
||||
_PTR(AttributeName) aNameAttr( anAttr );
|
||||
myObjects << SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||
myObjectsNames << aNameAttr->Value().c_str();
|
||||
myMeshes << aMesh;
|
||||
}
|
||||
SMESH::SMESH_IDSource_var idSrc = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||
if ( _PTR(SObject) obj = SMESH::FindSObject( idSrc ))
|
||||
{
|
||||
std::string name = obj->GetName();
|
||||
if ( !name.empty() )
|
||||
{
|
||||
myObjects << idSrc;
|
||||
myObjectsNames << name.c_str();
|
||||
myMeshes << aMesh;
|
||||
}
|
||||
}
|
||||
|
||||
myActor = anActor;
|
||||
if ( anActor )
|
||||
myActor = anActor;
|
||||
}
|
||||
|
||||
// MakeGroups is available if there are groups and "Copy"
|
||||
@ -821,10 +822,11 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
|
||||
}
|
||||
|
||||
if (CheckBoxMesh->isChecked()) {
|
||||
SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString );
|
||||
if (myMeshes.isEmpty())
|
||||
return;
|
||||
} else {
|
||||
SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString );
|
||||
}
|
||||
else {
|
||||
aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, aList.First(), aString);
|
||||
myElementsId = aString;
|
||||
if (aNbUnits < 1)
|
||||
@ -832,16 +834,15 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
|
||||
}
|
||||
|
||||
myNbOkElements = true;
|
||||
} else {
|
||||
}
|
||||
else // set coordinates by a picked node
|
||||
{
|
||||
Handle(SALOME_InteractiveObject) IO = aList.First();
|
||||
if ((SMESH::GetMeshByIO(IO))->_is_nil())
|
||||
|
||||
SMESH_Actor* anActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||
if (!anActor)
|
||||
return;
|
||||
|
||||
SMESH_Actor* anActor = SMESH::FindActorByObject(SMESH::GetMeshByIO(IO));
|
||||
if (!anActor)
|
||||
anActor = SMESH::FindActorByEntry(IO->getEntry());
|
||||
if (!anActor && !CheckBoxMesh->isChecked())
|
||||
return;
|
||||
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
||||
if (aNbUnits != 1)
|
||||
return;
|
||||
@ -1099,14 +1100,14 @@ void SMESHGUI_TranslationDlg::keyPressEvent( QKeyEvent* e )
|
||||
//=================================================================================
|
||||
void SMESHGUI_TranslationDlg::setFilters()
|
||||
{
|
||||
if(myMeshes.isEmpty()) {
|
||||
SUIT_MessageBox::critical(this,
|
||||
tr("SMESH_ERROR"),
|
||||
tr("NO_MESH_SELECTED"));
|
||||
return;
|
||||
if ( myMeshes.isEmpty() ) {
|
||||
SUIT_MessageBox::critical(this, tr("SMESH_ERROR"), tr("NO_MESH_SELECTED"));
|
||||
return;
|
||||
}
|
||||
if ( !myFilterDlg )
|
||||
if ( !myFilterDlg ) {
|
||||
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
||||
connect(myFilterDlg, SIGNAL(Accepted()), SLOT(onFilterAccepted()));
|
||||
}
|
||||
|
||||
QList<int> types;
|
||||
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
||||
@ -1124,6 +1125,23 @@ void SMESHGUI_TranslationDlg::setFilters()
|
||||
myFilterDlg->show();
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// name : onFilterAccepted()
|
||||
// Purpose : SLOT. Called when Filter dlg closed with OK button.
|
||||
// Activate [Apply] if no Actor is available
|
||||
//=======================================================================
|
||||
void SMESHGUI_TranslationDlg::onFilterAccepted()
|
||||
{
|
||||
if ( myMeshes.length() > 0 && !buttonOk->isEnabled() )
|
||||
{
|
||||
myElementsId = LineEditElements->text();
|
||||
QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts);
|
||||
myNbOkElements = aListElementsId.count();
|
||||
buttonOk->setEnabled( myNbOkElements );
|
||||
buttonApply->setEnabled( myNbOkElements );
|
||||
}
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
// function : isValid
|
||||
// purpose :
|
||||
|
@ -133,6 +133,7 @@ private:
|
||||
protected slots:
|
||||
virtual void onDisplaySimulation( bool );
|
||||
virtual void reject();
|
||||
void onFilterAccepted();
|
||||
|
||||
private slots:
|
||||
void ConstructorsClicked( int );
|
||||
|
Loading…
Reference in New Issue
Block a user