mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-25 08:50:35 +05:00
PAL9524 - unassign a hypothesis when Edit/Delete called for it
This commit is contained in:
parent
c92f2b483c
commit
8616118fe1
@ -793,7 +793,7 @@ namespace{
|
||||
if(obj){
|
||||
SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( obj ) );
|
||||
SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( obj ) );
|
||||
|
||||
QString objType = CheckTypeObject(IObject);
|
||||
if ( !aGroup->_is_nil() ) { // DELETE GROUP
|
||||
SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
|
||||
aMesh->RemoveGroup( aGroup );
|
||||
@ -802,6 +802,10 @@ namespace{
|
||||
SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
|
||||
aMesh->RemoveSubMesh( aSubMesh );
|
||||
}
|
||||
else if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS
|
||||
SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
|
||||
aStudyBuilder->RemoveObjectWithChildren( obj );
|
||||
}
|
||||
else {// default action: remove SObject from the study
|
||||
// san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
|
||||
//SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
|
||||
|
@ -422,10 +422,12 @@ namespace SMESH{
|
||||
int res = SMESH::HYP_UNKNOWN_FATAL;
|
||||
SUIT_OverrideCursor wc;
|
||||
|
||||
if (IObject->hasReference()) {
|
||||
try {
|
||||
_PTR(Study) aStudy = GetActiveStudyDocument();
|
||||
SMESH_Hypothesis_var anHyp = IObjectToInterface<SMESH_Hypothesis>(IObject);
|
||||
if (IObject->hasReference())
|
||||
{
|
||||
if(MYDEBUG) MESSAGE("HAS REFERENCE " << IObject->getEntry());
|
||||
_PTR(SObject) aHypSObj = aStudy->FindObjectID(IObject->getReference());
|
||||
if (aHypSObj) {
|
||||
_PTR(SObject) MorSM = SMESH::GetMeshOrSubmesh(aHypSObj);
|
||||
@ -457,15 +459,32 @@ namespace SMESH{
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (IObject->hasEntry())
|
||||
{
|
||||
if(MYDEBUG) MESSAGE("IObject entry HAS ENTRY " << IObject->getEntry());
|
||||
SObjectList meshList = GetMeshesUsingAlgoOrHypothesis(anHyp);
|
||||
for ( int i = 0; i < meshList.size(); ++i ) {
|
||||
SMESH::SMESH_Mesh_var aMesh =
|
||||
SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( meshList[ i ]);
|
||||
GEOM::GEOM_Object_var aShape = SMESH::GetShapeOnMeshOrSubMesh( meshList[ i ]);
|
||||
if ( ! aMesh->_is_nil() && !aShape->_is_nil() ) {
|
||||
res = aMesh->RemoveHypothesis(aShape, anHyp);
|
||||
if ( res < SMESH::HYP_UNKNOWN_FATAL )
|
||||
SMESH::ModifiedMesh( meshList[ i ], false);
|
||||
if ( res > SMESH::HYP_OK ) {
|
||||
wc.suspend();
|
||||
processHypothesisStatus( res, anHyp, false );
|
||||
wc.resume();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(const SALOME::SALOME_Exception& S_ex) {
|
||||
wc.suspend();
|
||||
SalomeApp_Tools::QtCatchCorbaException(S_ex);
|
||||
res = SMESH::HYP_UNKNOWN_FATAL;
|
||||
}
|
||||
}
|
||||
else if (IObject->hasEntry()) {
|
||||
if(MYDEBUG) MESSAGE("IObject entry " << IObject->getEntry());
|
||||
}
|
||||
return res < SMESH::HYP_UNKNOWN_FATAL;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user