PAL18352, PAL19290: Conflict in objects selections when switching modules

+  virtual bool                        isSelectionCompatible();
This commit is contained in:
eap 2008-04-16 08:22:32 +00:00
parent 46000eb32e
commit 0958758e5e
2 changed files with 26 additions and 0 deletions

View File

@ -3039,6 +3039,30 @@ void SMESHGUI::initialize( CAM_Application* app )
this, SLOT( onViewManagerActivated( SUIT_ViewManager* ) ) );
}
//================================================================================
/*!
* \brief Return true if SMESH or GEOM objects are selected.
* Is called form LightApp_Module::activateModule() which clear selection if
* not isSelectionCompatible()
*/
//================================================================================
bool SMESHGUI::isSelectionCompatible()
{
bool isCompatible = true;
SALOME_ListIO selected;
if ( LightApp_SelectionMgr *Sel = selectionMgr() )
Sel->selectedObjects( selected );
SALOME_ListIteratorOfListIO It( selected );
for ( ; isCompatible && It.More(); It.Next())
isCompatible =
( strcmp("GEOM", It.Value()->getComponentDataType()) == 0 ) ||
( strcmp("SMESH", It.Value()->getComponentDataType()) == 0 );
return isCompatible;
}
bool SMESHGUI::activateModule( SUIT_Study* study )
{
bool res = SalomeApp_Module::activateModule( study );

View File

@ -136,6 +136,8 @@ protected:
virtual LightApp_Operation* createOperation( const int ) const;
virtual bool isSelectionCompatible();
private:
void OnEditDelete();