52943: "Apply and Close" button does not active on symmetry dialog box

Fix same pb in all similar dlg
This commit is contained in:
eap 2015-11-11 16:13:01 +03:00
parent abd8d64dea
commit 7b33b10e89
8 changed files with 83 additions and 21 deletions

View File

@ -494,6 +494,9 @@ void SMESHGUI_CopyMeshDlg::onTextChange (const QString& theNewText)
void SMESHGUI_CopyMeshDlg::SelectionIntoArgument() void SMESHGUI_CopyMeshDlg::SelectionIntoArgument()
{ {
if (myBusy) return; if (myBusy) return;
if (myFilterDlg && myFilterDlg->isVisible()) return; // filter dlg active
if (!GroupButtons->isEnabled()) return; // inactive
BusyLocker lock( myBusy ); BusyLocker lock( myBusy );
// clear // clear
@ -677,6 +680,15 @@ void SMESHGUI_CopyMeshDlg::setFilters()
if ( !myFilterDlg ) if ( !myFilterDlg )
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL ); myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
QList<int> types;
if ( myMesh->NbEdges() ) types << SMESH::EDGE;
if ( myMesh->NbFaces() ) types << SMESH::FACE;
if ( myMesh->NbVolumes() ) types << SMESH::VOLUME;
if ( myMesh->NbBalls() ) types << SMESH::BALL;
if ( myMesh->Nb0DElements()) types << SMESH::ELEM0D;
if ( types.count() > 1 ) types << SMESH::ALL;
myFilterDlg->Init( types );
myFilterDlg->SetSelection(); myFilterDlg->SetSelection();
myFilterDlg->SetMesh( myMesh ); myFilterDlg->SetMesh( myMesh );
myFilterDlg->SetSourceWg( myLineEditElements ); myFilterDlg->SetSourceWg( myLineEditElements );

View File

@ -299,14 +299,14 @@ void SMESHGUI_Make2DFrom3DOp::selectionDone()
myDlg->selectObject( names, types, ids ); myDlg->selectObject( names, types, ids );
// enable/desable "new mesh" button // enable/desable "new mesh" button
bool isMesh = true; // EAP - it's sometimes necessary to copy to a new mesh bool isMesh = true;
// for ( int i = 0; i < ids.count() && isMesh; ++i ) for ( int i = 0; i < ids.count() && isMesh; ++i )
// { {
// _PTR(SObject) sobj = _PTR(SObject) sobj =
// SMESHGUI::activeStudy()->studyDS()->FindObjectID( ids[i].toLatin1().constData() ); SMESHGUI::activeStudy()->studyDS()->FindObjectID( ids[i].toLatin1().constData() );
// mySrcMesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( sobj ); mySrcMesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( sobj );
// isMesh = !mySrcMesh->_is_nil(); //isMesh = !mySrcMesh->_is_nil(); // EAP - it's sometimes necessary to copy to a new mesh
// } }
myDlg->setNewMeshEnabled( isMesh ); myDlg->setNewMeshEnabled( isMesh );
} }
catch ( const SALOME::SALOME_Exception& S_ex ) { catch ( const SALOME::SALOME_Exception& S_ex ) {

View File

@ -377,7 +377,7 @@ void SMESHGUI_RemoveElementsDlg::onTextChange(const QString& theNewText)
void SMESHGUI_RemoveElementsDlg::SelectionIntoArgument() void SMESHGUI_RemoveElementsDlg::SelectionIntoArgument()
{ {
if (myBusy) return; // busy if (myBusy) return; // busy
if (myFilterDlg && myFilterDlg->isVisible()) return; // filter digl active if (myFilterDlg && myFilterDlg->isVisible()) return; // filter dlg active
if (!GroupButtons->isEnabled()) return; // inactive if (!GroupButtons->isEnabled()) return; // inactive
// clear // clear

View File

@ -677,6 +677,7 @@ void SMESHGUI_RotationDlg::onTextChange (const QString& theNewText)
void SMESHGUI_RotationDlg::SelectionIntoArgument() void SMESHGUI_RotationDlg::SelectionIntoArgument()
{ {
if (myBusy) return; if (myBusy) return;
if (myFilterDlg && myFilterDlg->isVisible()) return; // filter dlg active
// clear // clear
myActor = 0; myActor = 0;
@ -1064,6 +1065,15 @@ void SMESHGUI_RotationDlg::setFilters()
if ( !myFilterDlg ) if ( !myFilterDlg )
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL ); myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
QList<int> types;
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
if ( myMeshes[0]->NbFaces() ) types << SMESH::FACE;
if ( myMeshes[0]->NbVolumes() ) types << SMESH::VOLUME;
if ( myMeshes[0]->NbBalls() ) types << SMESH::BALL;
if ( myMeshes[0]->Nb0DElements()) types << SMESH::ELEM0D;
if ( types.count() > 1 ) types << SMESH::ALL;
myFilterDlg->Init( types );
myFilterDlg->SetSelection(); myFilterDlg->SetSelection();
myFilterDlg->SetMesh( myMeshes[0] ); myFilterDlg->SetMesh( myMeshes[0] );
myFilterDlg->SetSourceWg( LineEditElements ); myFilterDlg->SetSourceWg( LineEditElements );

View File

@ -715,6 +715,8 @@ void SMESHGUI_ScaleDlg::onTextChange (const QString& theNewText)
void SMESHGUI_ScaleDlg::SelectionIntoArgument() void SMESHGUI_ScaleDlg::SelectionIntoArgument()
{ {
if (myBusy) return; if (myBusy) return;
if (myFilterDlg && myFilterDlg->isVisible()) return; // filter dlg active
BusyLocker lock( myBusy ); BusyLocker lock( myBusy );
// clear // clear
myActor = 0; myActor = 0;
@ -1112,6 +1114,15 @@ void SMESHGUI_ScaleDlg::setFilters()
if ( !myFilterDlg ) if ( !myFilterDlg )
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL ); myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
QList<int> types;
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
if ( myMeshes[0]->NbFaces() ) types << SMESH::FACE;
if ( myMeshes[0]->NbVolumes() ) types << SMESH::VOLUME;
if ( myMeshes[0]->NbBalls() ) types << SMESH::BALL;
if ( myMeshes[0]->Nb0DElements()) types << SMESH::ELEM0D;
if ( types.count() > 1 ) types << SMESH::ALL;
myFilterDlg->Init( types );
myFilterDlg->SetSelection(); myFilterDlg->SetSelection();
myFilterDlg->SetMesh( myMeshes[0] ); myFilterDlg->SetMesh( myMeshes[0] );
myFilterDlg->SetSourceWg( LineEditElements ); myFilterDlg->SetSourceWg( LineEditElements );

View File

@ -566,6 +566,7 @@ void SMESHGUI_SmoothingDlg::onTextChange (const QString& theNewText)
void SMESHGUI_SmoothingDlg::SelectionIntoArgument() void SMESHGUI_SmoothingDlg::SelectionIntoArgument()
{ {
if (myBusy) return; if (myBusy) return;
if (myFilterDlg && myFilterDlg->isVisible()) return; // filter dlg active
// clear // clear
QString aString = ""; QString aString = "";
@ -574,7 +575,8 @@ void SMESHGUI_SmoothingDlg::SelectionIntoArgument()
BusyLocker lock( myBusy ); BusyLocker lock( myBusy );
if (myEditCurrentArgument == LineEditElements || if (myEditCurrentArgument == LineEditElements ||
myEditCurrentArgument == LineEditNodes) { myEditCurrentArgument == LineEditNodes)
{
myEditCurrentArgument->setText(aString); myEditCurrentArgument->setText(aString);
if (myEditCurrentArgument == LineEditElements) { if (myEditCurrentArgument == LineEditElements) {
myNbOkElements = 0; myNbOkElements = 0;

View File

@ -736,6 +736,7 @@ void SMESHGUI_SymmetryDlg::onTextChange (const QString& theNewText)
void SMESHGUI_SymmetryDlg::SelectionIntoArgument() void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
{ {
if (myBusy) return; if (myBusy) return;
if (myFilterDlg && myFilterDlg->isVisible()) return; // filter dlg active
// clear // clear
myActor = 0; myActor = 0;
@ -1134,6 +1135,15 @@ void SMESHGUI_SymmetryDlg::setFilters()
if ( !myFilterDlg ) if ( !myFilterDlg )
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL ); myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
QList<int> types;
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
if ( myMeshes[0]->NbFaces() ) types << SMESH::FACE;
if ( myMeshes[0]->NbVolumes() ) types << SMESH::VOLUME;
if ( myMeshes[0]->NbBalls() ) types << SMESH::BALL;
if ( myMeshes[0]->Nb0DElements()) types << SMESH::ELEM0D;
if ( types.count() > 1 ) types << SMESH::ALL;
myFilterDlg->Init( types );
myFilterDlg->SetSelection(); myFilterDlg->SetSelection();
myFilterDlg->SetMesh( myMeshes[0] ); myFilterDlg->SetMesh( myMeshes[0] );
myFilterDlg->SetSourceWg( LineEditElements ); myFilterDlg->SetSourceWg( LineEditElements );
@ -1173,9 +1183,12 @@ bool SMESHGUI_SymmetryDlg::isValid()
// function : onDisplaySimulation // function : onDisplaySimulation
// purpose : Show/Hide preview // purpose : Show/Hide preview
//================================================================================= //=================================================================================
void SMESHGUI_SymmetryDlg::onDisplaySimulation( bool toDisplayPreview ) { void SMESHGUI_SymmetryDlg::onDisplaySimulation( bool toDisplayPreview )
if (myPreviewCheckBox->isChecked() && toDisplayPreview) { {
if ( myNbOkElements && isValid() && IsMirrorOk() ) { if (myPreviewCheckBox->isChecked() && toDisplayPreview)
{
if ( myNbOkElements && isValid() && IsMirrorOk() )
{
QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts); QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts);
SMESH::long_array_var anElementsId = new SMESH::long_array; SMESH::long_array_var anElementsId = new SMESH::long_array;
@ -1220,7 +1233,9 @@ void SMESHGUI_SymmetryDlg::onDisplaySimulation( bool toDisplayPreview ) {
// function : getMirror // function : getMirror
// purpose : return mirror parameters // purpose : return mirror parameters
//================================================================================= //=================================================================================
void SMESHGUI_SymmetryDlg::getMirror(SMESH::AxisStruct& theMirror, SMESH::SMESH_MeshEditor::MirrorType& theMirrorType) { void SMESHGUI_SymmetryDlg::getMirror(SMESH::AxisStruct& theMirror,
SMESH::SMESH_MeshEditor::MirrorType& theMirrorType)
{
theMirror.x = SpinBox_X->GetValue(); theMirror.x = SpinBox_X->GetValue();
theMirror.y = SpinBox_Y->GetValue(); theMirror.y = SpinBox_Y->GetValue();
theMirror.z = SpinBox_Z->GetValue(); theMirror.z = SpinBox_Z->GetValue();

View File

@ -745,6 +745,8 @@ void SMESHGUI_TranslationDlg::onTextChange (const QString& theNewText)
void SMESHGUI_TranslationDlg::SelectionIntoArgument() void SMESHGUI_TranslationDlg::SelectionIntoArgument()
{ {
if (myBusy) return; if (myBusy) return;
if (myFilterDlg && myFilterDlg->isVisible()) return; // filter dlg active
BusyLocker lock( myBusy ); BusyLocker lock( myBusy );
// clear // clear
myActor = 0; myActor = 0;
@ -1106,6 +1108,15 @@ void SMESHGUI_TranslationDlg::setFilters()
if ( !myFilterDlg ) if ( !myFilterDlg )
myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL ); myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
QList<int> types;
if ( myMeshes[0]->NbEdges() ) types << SMESH::EDGE;
if ( myMeshes[0]->NbFaces() ) types << SMESH::FACE;
if ( myMeshes[0]->NbVolumes() ) types << SMESH::VOLUME;
if ( myMeshes[0]->NbBalls() ) types << SMESH::BALL;
if ( myMeshes[0]->Nb0DElements()) types << SMESH::ELEM0D;
if ( types.count() > 1 ) types << SMESH::ALL;
myFilterDlg->Init( types );
myFilterDlg->SetSelection(); myFilterDlg->SetSelection();
myFilterDlg->SetMesh( myMeshes[0] ); myFilterDlg->SetMesh( myMeshes[0] );
myFilterDlg->SetSourceWg( LineEditElements ); myFilterDlg->SetSourceWg( LineEditElements );
@ -1147,9 +1158,10 @@ bool SMESHGUI_TranslationDlg::isValid()
//================================================================================= //=================================================================================
void SMESHGUI_TranslationDlg::onDisplaySimulation( bool toDisplayPreview ) void SMESHGUI_TranslationDlg::onDisplaySimulation( bool toDisplayPreview )
{ {
if (myPreviewCheckBox->isChecked() && toDisplayPreview) { if (myPreviewCheckBox->isChecked() && toDisplayPreview)
{
if (isValid() && myNbOkElements) { if (isValid() && myNbOkElements)
{
QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts); QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts);
SMESH::long_array_var anElementsId = new SMESH::long_array; SMESH::long_array_var anElementsId = new SMESH::long_array;