X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_CopyMeshDlg.cxx;h=c3a536d4833f5e2d3cfb4faa9f757c77e342c0bb;hb=HEAD;hp=b7794c02d8d3a5b62bee922f6238e6e99cb88db7;hpb=6df8817c1a9827149025cc942249d7083f504d3d;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_CopyMeshDlg.cxx b/src/SMESHGUI/SMESHGUI_CopyMeshDlg.cxx index b7794c02d..5deaaee81 100644 --- a/src/SMESHGUI/SMESHGUI_CopyMeshDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_CopyMeshDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -351,12 +351,12 @@ QString SMESHGUI_CopyMeshDlg::getErrorMsg( SMESH::string_array_var theInvalidEnt QStringList & theEntriesToBrowse ) { if ( theInvalidEntries->length() == 0 ) - return tr("SMESH_OPERATION_FAILED"); + return tr("OPERATION_FAILED"); // theInvalidEntries - SObject's that hold geometry objects whose // counterparts are not found in the newGeometry, followed by SObject's // holding mesh sub-objects that are invalid because they depend on a not found - // preceeding sub-shape + // preceding sub-shape QString msg = tr("SUBSHAPES_NOT_FOUND_MSG") + "\n"; @@ -439,7 +439,7 @@ bool SMESHGUI_CopyMeshDlg::ClickOnApply() else { QStringList aListElementsId = myLineEditElements->text().split(" ", QString::SkipEmptyParts); - SMESH::long_array_var anElementsId = new SMESH::long_array; + SMESH::smIdType_array_var anElementsId = new SMESH::smIdType_array; anElementsId->length(aListElementsId.count()); for (int i = 0; i < aListElementsId.count(); i++) anElementsId[i] = aListElementsId[i].toInt(); @@ -508,7 +508,6 @@ bool SMESHGUI_CopyMeshDlg::ClickOnApply() anApp->browseObjects( anEntryList, toShowObjects ); Init(false); - mySelectedObject = SMESH::SMESH_IDSource::_nil(); SelectionIntoArgument(); return true; @@ -615,7 +614,7 @@ void SMESHGUI_CopyMeshDlg::onTextChange (const QString& theNewText) QStringList aListId = theNewText.split(" ", QString::SkipEmptyParts); if (myActor && aMesh) { - TColStd_MapOfInteger newIndices; + SVTK_TVtkIDsMap newIndices; if (send == myLineEditElements) { for (int i = 0; i < aListId.count(); i++) if ( const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt())) @@ -685,6 +684,16 @@ void SMESHGUI_CopyMeshDlg::SelectionIntoArgument() mySelectedObject = SMESH::IObjectToInterface( IO ); if ( mySelectedObject->_is_nil() ) return; + + if ( isWithGeomMode() ) // only mesh selection allowed + { + myMesh = SMESH::SMESH_Mesh::_narrow( mySelectedObject ); + if ( myMesh->_is_nil() ) + { + myLineEditElements->setText(""); + return; + } + } } else if ( !geom->_is_nil() ) { @@ -716,12 +725,10 @@ void SMESHGUI_CopyMeshDlg::SelectionIntoArgument() else if ( !geom->_is_nil() ) { myGeomNameEdit->setText( aString ); - ok = ok && !myLineEditElements->text().isEmpty(); } - if ( ok && isWithGeomMode() && !myMesh->_is_nil() ) - ok = myMesh->HasShapeToMesh(); - + if ( ok && isWithGeomMode() ) + ok = ( !myMesh->_is_nil() && myMesh->HasShapeToMesh() && !myNewGeometry->_is_nil() ); buttonOk->setEnabled(ok); buttonApply->setEnabled(ok);