mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-27 20:40: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,34 +706,35 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
|
|||||||
|
|
||||||
int aNbUnits = 0;
|
int aNbUnits = 0;
|
||||||
|
|
||||||
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
|
if (myEditCurrentArgument == (QWidget*)LineEditElements)
|
||||||
|
{
|
||||||
myElementsId = "";
|
myElementsId = "";
|
||||||
myObjects.clear();
|
myObjects.clear();
|
||||||
myObjectsNames.clear();
|
myObjectsNames.clear();
|
||||||
myMeshes.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();
|
Handle(SALOME_InteractiveObject) IO = it.Value();
|
||||||
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
||||||
if ( aMesh->_is_nil() )
|
if ( aMesh->_is_nil() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
myActor = SMESH::FindActorByObject( aMesh );
|
myActor = SMESH::FindActorByObject( aMesh );
|
||||||
if ( !myActor )
|
if ( !myActor )
|
||||||
myActor = SMESH::FindActorByEntry( IO->getEntry() );
|
myActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||||
if ( !myActor && !CheckBoxMesh->isChecked() )
|
// if ( !myActor && !CheckBoxMesh->isChecked() ) -- elems can be selected by Filter
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
if ( !SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO )->_is_nil() ) {
|
SMESH::SMESH_IDSource_var idSrc = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||||
if ( _PTR(Study) aStudy = SMESH::GetActiveStudyDocument() ) {
|
if ( _PTR(SObject) obj = SMESH::FindSObject( idSrc ))
|
||||||
_PTR(SObject) obj = aStudy->FindObjectID( qPrintable( QString( IO->getEntry() ) ) );
|
{
|
||||||
_PTR(GenericAttribute) anAttr;
|
std::string name = obj->GetName();
|
||||||
if ( obj && obj->FindAttribute( anAttr, "AttributeName" ) ) {
|
if ( !name.empty() )
|
||||||
_PTR(AttributeName) aNameAttr( anAttr );
|
{
|
||||||
myObjects << SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
myObjects << idSrc;
|
||||||
myObjectsNames << aNameAttr->Value().c_str();
|
myObjectsNames << name.c_str();
|
||||||
myMeshes << aMesh;
|
myMeshes << aMesh;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -749,11 +750,11 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
|
|||||||
else if ( ActionGroup->checkedId() != MOVE_ELEMS_BUTTON ) {
|
else if ( ActionGroup->checkedId() != MOVE_ELEMS_BUTTON ) {
|
||||||
MakeGroupsCheck->setEnabled(true);
|
MakeGroupsCheck->setEnabled(true);
|
||||||
}
|
}
|
||||||
if (CheckBoxMesh->isChecked()) {
|
|
||||||
SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
|
|
||||||
|
|
||||||
|
if (CheckBoxMesh->isChecked()) {
|
||||||
if ( myMeshes.isEmpty() )
|
if ( myMeshes.isEmpty() )
|
||||||
return;
|
return;
|
||||||
|
SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, aList.First(), aString);
|
aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, aList.First(), aString);
|
||||||
@ -764,15 +765,13 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
|
|||||||
|
|
||||||
myNbOkElements = true;
|
myNbOkElements = true;
|
||||||
|
|
||||||
} else {
|
}
|
||||||
|
else // set coordinates by picked nodes
|
||||||
|
{
|
||||||
Handle(SALOME_InteractiveObject) IO = aList.First();
|
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)
|
if (!anActor)
|
||||||
anActor = SMESH::FindActorByEntry(IO->getEntry());
|
|
||||||
if (!anActor && !CheckBoxMesh->isChecked())
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
||||||
@ -1062,8 +1061,10 @@ void SMESHGUI_RotationDlg::setFilters()
|
|||||||
tr("NO_MESH_SELECTED"));
|
tr("NO_MESH_SELECTED"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( !myFilterDlg )
|
if ( !myFilterDlg ) {
|
||||||
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
||||||
|
connect(myFilterDlg, SIGNAL(Accepted()), SLOT(onFilterAccepted()));
|
||||||
|
}
|
||||||
|
|
||||||
QList<int> types;
|
QList<int> types;
|
||||||
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
||||||
@ -1081,6 +1082,23 @@ void SMESHGUI_RotationDlg::setFilters()
|
|||||||
myFilterDlg->show();
|
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
|
// function : isValid
|
||||||
// purpose :
|
// purpose :
|
||||||
|
@ -135,6 +135,7 @@ private:
|
|||||||
protected slots:
|
protected slots:
|
||||||
virtual void onDisplaySimulation( bool );
|
virtual void onDisplaySimulation( bool );
|
||||||
virtual void reject();
|
virtual void reject();
|
||||||
|
void onFilterAccepted();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void ClickOnOk();
|
void ClickOnOk();
|
||||||
|
@ -743,38 +743,39 @@ void SMESHGUI_ScaleDlg::SelectionIntoArgument()
|
|||||||
|
|
||||||
int aNbUnits = 0;
|
int aNbUnits = 0;
|
||||||
|
|
||||||
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
|
if (myEditCurrentArgument == (QWidget*)LineEditElements)
|
||||||
|
{
|
||||||
myElementsId = "";
|
myElementsId = "";
|
||||||
myObjects.clear();
|
myObjects.clear();
|
||||||
myObjectsNames.clear();
|
myObjectsNames.clear();
|
||||||
myMeshes.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();
|
Handle(SALOME_InteractiveObject) IO = it.Value();
|
||||||
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
||||||
if ( aMesh->_is_nil() )
|
if ( aMesh->_is_nil() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
myActor = SMESH::FindActorByObject( aMesh );
|
myActor = SMESH::FindActorByObject( aMesh );
|
||||||
if ( !myActor )
|
if ( !myActor )
|
||||||
myActor = SMESH::FindActorByEntry( IO->getEntry() );
|
myActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||||
if ( !myActor && !CheckBoxMesh->isChecked() )
|
// if ( !myActor && !CheckBoxMesh->isChecked() ) -- elems can be selected by Filter
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
if ( !SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO )->_is_nil() ) {
|
SMESH::SMESH_IDSource_var idSrc = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||||
if ( _PTR(Study) aStudy = SMESH::GetActiveStudyDocument() ) {
|
if ( _PTR(SObject) obj = SMESH::FindSObject( idSrc ))
|
||||||
_PTR(SObject) obj = aStudy->FindObjectID( qPrintable( QString( IO->getEntry() ) ) );
|
{
|
||||||
_PTR(GenericAttribute) anAttr;
|
std::string name = obj->GetName();
|
||||||
if ( obj && obj->FindAttribute( anAttr, "AttributeName" ) ) {
|
if ( !name.empty() )
|
||||||
_PTR(AttributeName) aNameAttr( anAttr );
|
{
|
||||||
myObjects << SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
myObjects << idSrc;
|
||||||
myObjectsNames << aNameAttr->Value().c_str();
|
myObjectsNames << name.c_str();
|
||||||
myMeshes << aMesh;
|
myMeshes << aMesh;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MakeGroups is available if there are groups and "Copy"
|
// MakeGroups is available if there are groups and "Copy"
|
||||||
int aNbGroups = 0;
|
int aNbGroups = 0;
|
||||||
for ( int i = 0; i < myMeshes.count(); i++ )
|
for ( int i = 0; i < myMeshes.count(); i++ )
|
||||||
@ -789,50 +790,11 @@ void SMESHGUI_ScaleDlg::SelectionIntoArgument()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (CheckBoxMesh->isChecked()) {
|
if (CheckBoxMesh->isChecked()) {
|
||||||
SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString );
|
|
||||||
if (myMeshes.isEmpty())
|
if (myMeshes.isEmpty())
|
||||||
return;
|
return;
|
||||||
// get IDs from mesh
|
SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString );
|
||||||
/*
|
}
|
||||||
SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
|
else {
|
||||||
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 {
|
|
||||||
aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, aList.First(), aString);
|
aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, aList.First(), aString);
|
||||||
myElementsId = aString;
|
myElementsId = aString;
|
||||||
if (aNbUnits < 1)
|
if (aNbUnits < 1)
|
||||||
@ -840,15 +802,14 @@ void SMESHGUI_ScaleDlg::SelectionIntoArgument()
|
|||||||
}
|
}
|
||||||
|
|
||||||
myNbOkElements = true;
|
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)
|
if (!anActor)
|
||||||
anActor = SMESH::FindActorByEntry(IO->getEntry());
|
|
||||||
if (!anActor && !CheckBoxMesh->isChecked())
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
||||||
@ -1105,14 +1066,14 @@ void SMESHGUI_ScaleDlg::keyPressEvent( QKeyEvent* e )
|
|||||||
//=================================================================================
|
//=================================================================================
|
||||||
void SMESHGUI_ScaleDlg::setFilters()
|
void SMESHGUI_ScaleDlg::setFilters()
|
||||||
{
|
{
|
||||||
if(myMeshes.isEmpty()) {
|
if ( myMeshes.isEmpty() ) {
|
||||||
SUIT_MessageBox::critical(this,
|
SUIT_MessageBox::critical(this, tr("SMESH_ERROR"), tr("NO_MESH_SELECTED"));
|
||||||
tr("SMESH_ERROR"),
|
return;
|
||||||
tr("NO_MESH_SELECTED"));
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if ( !myFilterDlg )
|
if ( !myFilterDlg ) {
|
||||||
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
||||||
|
connect(myFilterDlg, SIGNAL(Accepted()), SLOT(onFilterAccepted()));
|
||||||
|
}
|
||||||
|
|
||||||
QList<int> types;
|
QList<int> types;
|
||||||
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
||||||
@ -1130,6 +1091,23 @@ void SMESHGUI_ScaleDlg::setFilters()
|
|||||||
myFilterDlg->show();
|
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
|
// function : isValid
|
||||||
// purpose :
|
// purpose :
|
||||||
|
@ -131,6 +131,7 @@ private:
|
|||||||
protected slots:
|
protected slots:
|
||||||
virtual void onDisplaySimulation( bool );
|
virtual void onDisplaySimulation( bool );
|
||||||
virtual void reject();
|
virtual void reject();
|
||||||
|
void onFilterAccepted();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void ConstructorsClicked( int );
|
void ConstructorsClicked( int );
|
||||||
|
@ -765,44 +765,44 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
|
|||||||
|
|
||||||
int aNbUnits = 0;
|
int aNbUnits = 0;
|
||||||
|
|
||||||
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
|
if (myEditCurrentArgument == (QWidget*)LineEditElements)
|
||||||
|
{
|
||||||
myElementsId = "";
|
myElementsId = "";
|
||||||
myObjects.clear();
|
myObjects.clear();
|
||||||
myObjectsNames.clear();
|
myObjectsNames.clear();
|
||||||
myMeshes.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();
|
Handle(SALOME_InteractiveObject) IO = it.Value();
|
||||||
|
|
||||||
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
||||||
if( aMesh->_is_nil() )
|
if ( aMesh->_is_nil() )
|
||||||
return;
|
continue;
|
||||||
|
|
||||||
myActor = SMESH::FindActorByObject( aMesh );
|
myActor = SMESH::FindActorByObject( aMesh );
|
||||||
if ( !myActor )
|
if ( !myActor )
|
||||||
myActor = SMESH::FindActorByEntry( IO->getEntry() );
|
myActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||||
if ( !myActor && !CheckBoxMesh->isChecked() )
|
// if ( !myActor && !CheckBoxMesh->isChecked() ) -- elems can be selected by Filter
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
if ( !SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO )->_is_nil() ) {
|
SMESH::SMESH_IDSource_var idSrc = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||||
if ( _PTR(Study) aStudy = SMESH::GetActiveStudyDocument() ) {
|
if ( _PTR(SObject) obj = SMESH::FindSObject( idSrc ))
|
||||||
_PTR(SObject) obj = aStudy->FindObjectID( qPrintable( QString( IO->getEntry() ) ) );
|
{
|
||||||
_PTR(GenericAttribute) anAttr;
|
std::string name = obj->GetName();
|
||||||
if ( obj && obj->FindAttribute( anAttr, "AttributeName" ) ) {
|
if ( !name.empty() )
|
||||||
_PTR(AttributeName) aNameAttr( anAttr );
|
{
|
||||||
myObjects << SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
myObjects << idSrc;
|
||||||
myObjectsNames << aNameAttr->Value().c_str();
|
myObjectsNames << name.c_str();
|
||||||
myMeshes << aMesh;
|
myMeshes << aMesh;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MakeGroups is available if there are groups and "Copy"
|
// MakeGroups is available if there are groups and "Copy"
|
||||||
int aNbGroups = 0;
|
int aNbGroups = 0;
|
||||||
for ( int i = 0; i < myMeshes.count(); i++ )
|
for ( int i = 0; i < myMeshes.count(); i++ )
|
||||||
aNbGroups += myMeshes[i]->NbGroups();
|
aNbGroups += myMeshes[i]->NbGroups();
|
||||||
|
|
||||||
if ( aNbGroups == 0 ) {
|
if ( aNbGroups == 0 ) {
|
||||||
MakeGroupsCheck->setChecked(false);
|
MakeGroupsCheck->setChecked(false);
|
||||||
MakeGroupsCheck->setEnabled(false);
|
MakeGroupsCheck->setEnabled(false);
|
||||||
@ -810,31 +810,26 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
|
|||||||
else if ( ActionGroup->checkedId() != MOVE_ELEMS_BUTTON ) {
|
else if ( ActionGroup->checkedId() != MOVE_ELEMS_BUTTON ) {
|
||||||
MakeGroupsCheck->setEnabled(true);
|
MakeGroupsCheck->setEnabled(true);
|
||||||
}
|
}
|
||||||
if (CheckBoxMesh->isChecked()) {
|
|
||||||
SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
|
|
||||||
|
|
||||||
|
if (CheckBoxMesh->isChecked()) {
|
||||||
if ( myObjects.isEmpty() )
|
if ( myObjects.isEmpty() )
|
||||||
return;
|
return;
|
||||||
// get IDs from mesh
|
SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
|
||||||
// get IDs from submesh
|
}
|
||||||
// get IDs from smesh group
|
else {
|
||||||
} else {
|
|
||||||
aNbUnits = SMESH::GetNameOfSelectedElements( mySelector, aList.First(), aString);
|
aNbUnits = SMESH::GetNameOfSelectedElements( mySelector, aList.First(), aString);
|
||||||
myElementsId = aString;
|
myElementsId = aString;
|
||||||
if (aNbUnits < 1)
|
if (aNbUnits < 1)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
myNbOkElements = true;
|
myNbOkElements = true;
|
||||||
} else {
|
}
|
||||||
|
else // set coordinates by a picked node
|
||||||
|
{
|
||||||
Handle(SALOME_InteractiveObject) IO = aList.First();
|
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)
|
if (!anActor)
|
||||||
anActor = SMESH::FindActorByEntry(IO->getEntry());
|
|
||||||
if (!anActor && !CheckBoxMesh->isChecked())
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
||||||
@ -1126,14 +1121,14 @@ void SMESHGUI_SymmetryDlg::keyPressEvent( QKeyEvent* e )
|
|||||||
//=================================================================================
|
//=================================================================================
|
||||||
void SMESHGUI_SymmetryDlg::setFilters()
|
void SMESHGUI_SymmetryDlg::setFilters()
|
||||||
{
|
{
|
||||||
if(myMeshes.isEmpty()) {
|
if ( myMeshes.isEmpty() ) {
|
||||||
SUIT_MessageBox::critical(this,
|
SUIT_MessageBox::critical(this, tr("SMESH_ERROR"), tr("NO_MESH_SELECTED"));
|
||||||
tr("SMESH_ERROR"),
|
return;
|
||||||
tr("NO_MESH_SELECTED"));
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if ( !myFilterDlg )
|
if ( !myFilterDlg ) {
|
||||||
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
||||||
|
connect(myFilterDlg, SIGNAL(Accepted()), SLOT(onFilterAccepted()));
|
||||||
|
}
|
||||||
|
|
||||||
QList<int> types;
|
QList<int> types;
|
||||||
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
||||||
@ -1151,6 +1146,23 @@ void SMESHGUI_SymmetryDlg::setFilters()
|
|||||||
myFilterDlg->show();
|
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
|
// function : isValid
|
||||||
// purpose :
|
// purpose :
|
||||||
|
@ -139,6 +139,7 @@ private:
|
|||||||
protected slots:
|
protected slots:
|
||||||
virtual void onDisplaySimulation( bool );
|
virtual void onDisplaySimulation( bool );
|
||||||
virtual void reject();
|
virtual void reject();
|
||||||
|
void onFilterAccepted();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void ConstructorsClicked( int );
|
void ConstructorsClicked( int );
|
||||||
|
@ -772,13 +772,15 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
int aNbUnits = 0;
|
int aNbUnits = 0;
|
||||||
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
|
if (myEditCurrentArgument == (QWidget*)LineEditElements)
|
||||||
|
{
|
||||||
myElementsId = "";
|
myElementsId = "";
|
||||||
myObjects.clear();
|
myObjects.clear();
|
||||||
myObjectsNames.clear();
|
myObjectsNames.clear();
|
||||||
myMeshes.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();
|
Handle(SALOME_InteractiveObject) IO = it.Value();
|
||||||
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
|
||||||
if ( aMesh->_is_nil() )
|
if ( aMesh->_is_nil() )
|
||||||
@ -788,25 +790,24 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
|
|||||||
if ( !anActor )
|
if ( !anActor )
|
||||||
anActor = SMESH::FindActorByEntry( IO->getEntry() );
|
anActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||||
|
|
||||||
if ( !anActor && !CheckBoxMesh->isChecked() )
|
// if ( !anActor && !CheckBoxMesh->isChecked() ) -- elems can be selected by Filter
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
if ( !SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO )->_is_nil() ) {
|
SMESH::SMESH_IDSource_var idSrc = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||||
if ( _PTR(Study) aStudy = SMESH::GetActiveStudyDocument() ) {
|
if ( _PTR(SObject) obj = SMESH::FindSObject( idSrc ))
|
||||||
_PTR(SObject) obj = aStudy->FindObjectID( qPrintable( QString( IO->getEntry() ) ) );
|
{
|
||||||
_PTR(GenericAttribute) anAttr;
|
std::string name = obj->GetName();
|
||||||
if ( obj && obj->FindAttribute( anAttr, "AttributeName" ) ) {
|
if ( !name.empty() )
|
||||||
_PTR(AttributeName) aNameAttr( anAttr );
|
{
|
||||||
myObjects << SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
myObjects << idSrc;
|
||||||
myObjectsNames << aNameAttr->Value().c_str();
|
myObjectsNames << name.c_str();
|
||||||
myMeshes << aMesh;
|
myMeshes << aMesh;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ( anActor )
|
||||||
myActor = anActor;
|
myActor = anActor;
|
||||||
}
|
}
|
||||||
|
|
||||||
// MakeGroups is available if there are groups and "Copy"
|
// MakeGroups is available if there are groups and "Copy"
|
||||||
int aNbGroups = 0;
|
int aNbGroups = 0;
|
||||||
for ( int i = 0; i < myMeshes.count(); i++ )
|
for ( int i = 0; i < myMeshes.count(); i++ )
|
||||||
@ -821,10 +822,11 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (CheckBoxMesh->isChecked()) {
|
if (CheckBoxMesh->isChecked()) {
|
||||||
SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString );
|
|
||||||
if (myMeshes.isEmpty())
|
if (myMeshes.isEmpty())
|
||||||
return;
|
return;
|
||||||
} else {
|
SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString );
|
||||||
|
}
|
||||||
|
else {
|
||||||
aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, aList.First(), aString);
|
aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, aList.First(), aString);
|
||||||
myElementsId = aString;
|
myElementsId = aString;
|
||||||
if (aNbUnits < 1)
|
if (aNbUnits < 1)
|
||||||
@ -832,16 +834,15 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
|
|||||||
}
|
}
|
||||||
|
|
||||||
myNbOkElements = true;
|
myNbOkElements = true;
|
||||||
} else {
|
}
|
||||||
|
else // set coordinates by a picked node
|
||||||
|
{
|
||||||
Handle(SALOME_InteractiveObject) IO = aList.First();
|
Handle(SALOME_InteractiveObject) IO = aList.First();
|
||||||
if ((SMESH::GetMeshByIO(IO))->_is_nil())
|
|
||||||
|
SMESH_Actor* anActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||||
|
if (!anActor)
|
||||||
return;
|
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);
|
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
|
||||||
if (aNbUnits != 1)
|
if (aNbUnits != 1)
|
||||||
return;
|
return;
|
||||||
@ -1099,14 +1100,14 @@ void SMESHGUI_TranslationDlg::keyPressEvent( QKeyEvent* e )
|
|||||||
//=================================================================================
|
//=================================================================================
|
||||||
void SMESHGUI_TranslationDlg::setFilters()
|
void SMESHGUI_TranslationDlg::setFilters()
|
||||||
{
|
{
|
||||||
if(myMeshes.isEmpty()) {
|
if ( myMeshes.isEmpty() ) {
|
||||||
SUIT_MessageBox::critical(this,
|
SUIT_MessageBox::critical(this, tr("SMESH_ERROR"), tr("NO_MESH_SELECTED"));
|
||||||
tr("SMESH_ERROR"),
|
return;
|
||||||
tr("NO_MESH_SELECTED"));
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if ( !myFilterDlg )
|
if ( !myFilterDlg ) {
|
||||||
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
|
||||||
|
connect(myFilterDlg, SIGNAL(Accepted()), SLOT(onFilterAccepted()));
|
||||||
|
}
|
||||||
|
|
||||||
QList<int> types;
|
QList<int> types;
|
||||||
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
|
||||||
@ -1124,6 +1125,23 @@ void SMESHGUI_TranslationDlg::setFilters()
|
|||||||
myFilterDlg->show();
|
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
|
// function : isValid
|
||||||
// purpose :
|
// purpose :
|
||||||
|
@ -133,6 +133,7 @@ private:
|
|||||||
protected slots:
|
protected slots:
|
||||||
virtual void onDisplaySimulation( bool );
|
virtual void onDisplaySimulation( bool );
|
||||||
virtual void reject();
|
virtual void reject();
|
||||||
|
void onFilterAccepted();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void ConstructorsClicked( int );
|
void ConstructorsClicked( int );
|
||||||
|
Loading…
Reference in New Issue
Block a user