mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-25 08:50:35 +05:00
bos #19219 [CEA] SIGSEGV when right-click in the view in 3D layers dialog box
This commit is contained in:
parent
1a39b08ad9
commit
9beb8d2764
@ -43,8 +43,6 @@
|
||||
#include <SalomeApp_Application.h>
|
||||
#include <LightApp_VTKSelector.h>
|
||||
#include <SVTK_ViewWindow.h>
|
||||
#include <LightApp_SelectionMgr.h>
|
||||
#include <LightApp_DataOwner.h>
|
||||
|
||||
// IDL includes
|
||||
#include <SALOMEconfig.h>
|
||||
@ -79,8 +77,6 @@ void SMESHGUI_Selection::init( const QString& client, LightApp_SelectionMgr* mgr
|
||||
|
||||
if( mgr )
|
||||
{
|
||||
myOwners.clear();
|
||||
mgr->selected(myOwners, client);
|
||||
for( int i=0, n=count(); i<n; i++ ) {
|
||||
myTypes.append( typeName( type( entry( i ) ) ) );
|
||||
myControls.append( controlMode( i ) );
|
||||
@ -617,20 +613,22 @@ bool SMESHGUI_Selection::hasGeomReference( int ind ) const
|
||||
|
||||
bool SMESHGUI_Selection::canBreakLink( int ind ) const
|
||||
{
|
||||
if ( ind >= 0 && ind < myTypes.count()) {
|
||||
if (isReference(ind)) {
|
||||
SUIT_DataOwner* aOwn = myOwners.at(ind);
|
||||
LightApp_DataOwner* sowner = dynamic_cast<LightApp_DataOwner*>(aOwn);
|
||||
QString aEntry = sowner->entry();
|
||||
_PTR(SObject) aSObject = SMESH::getStudy()->FindObjectID(aEntry.toStdString());
|
||||
_PTR(SObject) aFatherObj = aSObject->GetFather();
|
||||
_PTR(SComponent) aComponent = aFatherObj->GetFatherComponent();
|
||||
if (aComponent->ComponentDataType() == "SMESH") {
|
||||
QString aObjEntry = entry(ind);
|
||||
_PTR(SObject) aGeomSObject = SMESH::getStudy()->FindObjectID(aObjEntry.toStdString());
|
||||
GEOM::GEOM_Object_var aObject = SMESH::SObjectToInterface<GEOM::GEOM_Object>(aGeomSObject);
|
||||
if (!aObject->_is_nil())
|
||||
return aObject->IsParametrical();
|
||||
if ( ind >= 0 && isReference(ind) ) {
|
||||
QString aEntry = objectInfo(ind, OI_RefEntry).toString();
|
||||
if (!aEntry.isEmpty()) {
|
||||
_PTR(SObject) aSObject = SMESH::getStudy()->FindObjectID( aEntry.toStdString());
|
||||
if (aSObject) {
|
||||
_PTR(SObject) aFatherObj = aSObject->GetFather();
|
||||
if (aFatherObj) {
|
||||
_PTR(SComponent) aComponent = aFatherObj->GetFatherComponent();
|
||||
if (aComponent && aComponent->ComponentDataType() == "SMESH") {
|
||||
QString aObjEntry = entry(ind);
|
||||
_PTR(SObject) aGeomSObject = SMESH::getStudy()->FindObjectID(aObjEntry.toStdString());
|
||||
GEOM::GEOM_Object_var aObject = SMESH::SObjectToInterface<GEOM::GEOM_Object>(aGeomSObject);
|
||||
if (!aObject->_is_nil())
|
||||
return aObject->IsParametrical();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,6 @@
|
||||
|
||||
// SALOME GUI includes
|
||||
#include <LightApp_Selection.h>
|
||||
#include <SUIT_DataOwner.h>
|
||||
|
||||
// SALOME KERNEL includes
|
||||
#include <SALOMEDSClient_definitions.hxx>
|
||||
@ -97,7 +96,6 @@ private:
|
||||
QStringList myTypes;
|
||||
QStringList myControls;
|
||||
QList<SMESH_Actor*> myActors;
|
||||
SUIT_DataOwnerPtrList myOwners;
|
||||
};
|
||||
|
||||
#endif // SMESHGUI_SELECTION_H
|
||||
|
Loading…
Reference in New Issue
Block a user