]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
rules for display/erase popup commands changed. Also added code to create a default...
authorasv <asv@opencascade.com>
Wed, 10 Aug 2005 06:22:56 +0000 (06:22 +0000)
committerasv <asv@opencascade.com>
Wed, 10 Aug 2005 06:22:56 +0000 (06:22 +0000)
src/GEOMGUI/GEOM_Displayer.cxx
src/GEOMGUI/GeometryGUI.cxx

index 451dd9165af98043a0f8b02ae7ce42eda7ad7c20..5caaf1b392c26f5daf4c382e328851c44490b6ee 100644 (file)
@@ -260,25 +260,11 @@ GEOM_Displayer::~GEOM_Displayer()
 SALOME_View* GEOM_Displayer::GetActiveView()
 {
   SUIT_Session* session = SUIT_Session::session();
-  SUIT_Application* app = session->activeApplication();
-  if ( app )
-  {
-    SUIT_Desktop* desk = app->desktop();
-    if ( desk )
-    {
-      SUIT_ViewWindow* win = desk->activeWindow(); 
-      if ( win ) 
-      {
-       SUIT_ViewManager* vman = win->getViewManager();
-       if ( vman )
-       {
-         SUIT_ViewModel* vmodel = vman->getViewModel();
-         if ( vmodel )
-         {
-           SALOME_View* view = dynamic_cast<SALOME_View*>(vmodel);
-           return view;
-         }
-       }
+  if (  SUIT_Application* app = session->activeApplication() ) {
+    if ( SalomeApp_Application* sApp = dynamic_cast<SalomeApp_Application*>( app ) ) {
+      if( SUIT_ViewManager* vman = sApp->activeViewManager() ) {
+       if ( SUIT_ViewModel* vmod = vman->getViewModel() )
+         return dynamic_cast<SALOME_View*>( vmod );
       }
     }
   }
index ab136cb7dcceb7f8125814bdf523c7ff8e7e4699..9693f37547244ff31163ba6bf51f1f03599262b8 100644 (file)
@@ -295,7 +295,7 @@ void GeometryGUI::OnGUIEvent( int id )
   bool ViewVTK = ( window && window->getViewManager()->getType() == VTKViewer_Viewer::Type() );
   // if current viewframe is not of OCC and not of VTK type - return immediately
   // fix for IPAL8958 - allow some commands to execute even when NO viewer is active (rename for example)
-  bool NotViewerDependentCommand = ( id == 901 ); 
+  bool NotViewerDependentCommand = ( id == 901 || id == 216 || id == 213 ); 
   if ( !ViewOCC && !ViewVTK && !NotViewerDependentCommand )
       return;
 
@@ -875,14 +875,13 @@ void GeometryGUI::initialize( CAM_Application* app )
   createMenu( separator(), toolsId, -1 );
   createMenu( 5103, toolsId, -1 );  
   
-  int prefId = createMenu( tr( "MEN_PREFERENCES" ), -1, -1, 50 );
-  createMenu( separator(), prefId, -1 );
-
-  int geomId = createMenu( tr( "MEN_PREFERENCES_GEOM" ), prefId, -1 );
-  createMenu( 412, geomId, -1 );  
-  createMenu( 413, geomId, -1 );  
-  createMenu( 414, geomId, -1 );  
-  createMenu( separator(), prefId, -1 );
+  //int prefId = createMenu( tr( "MEN_PREFERENCES" ), -1, -1, 50 );
+  //createMenu( separator(), prefId, -1 );
+  //int geomId = createMenu( tr( "MEN_PREFERENCES_GEOM" ), prefId, -1 );
+  //createMenu( 412, geomId, -1 );  
+  //createMenu( 413, geomId, -1 );  
+  //createMenu( 414, geomId, -1 );  
+  //createMenu( separator(), prefId, -1 );
 
   int viewId = createMenu( tr( "MEN_VIEW" ), -1, -1 );
   createMenu( separator(), viewId, -1 );
@@ -966,13 +965,14 @@ void GeometryGUI::initialize( CAM_Application* app )
   mgr->setRule( action( 8034 ), "client='OCCViewer' and selcount>0", true );
   mgr->insert( separator(), -1, -1 );        // -----------
   mgr->insert( action(  216 ), -1, -1 ); // display
-  mgr->setRule( action( 216 ), "isActiveView=true and selcount>0 and (($type in {'Shape' 'Group'} and isVisible=false) or type='Component')", true );
+  mgr->setRule( action( 216 ), "(selcount>0) and (((isActiveView=true) and (($type in {'Shape' 'Group'} and isVisible=false) or type='Component'))"
+                              "or ((isActiveView=false) and ($type in {'Shape' 'Group' 'Component'})))", true );
   mgr->insert( action(  215 ), -1, -1 ); // erase
-  mgr->setRule( action( 215 ), "isActiveView=true and selcount>0 and (($type in {'Shape' 'Group'} and isVisible=true) or (type='Component' and selcount=1))", true );
+  mgr->setRule( action( 215 ), "(isActiveView=true) and (($type in {'Shape' 'Group'} and isVisible=true and selcount>0) or (type='Component' and selcount=1))", true );
   mgr->insert( action(  214 ), -1, -1 ); // erase All
   mgr->setRule( action( 214 ), "client='OCCViewer' or client='VTKViewer'", true );
   mgr->insert( action(  213 ), -1, -1 ); // display only
-  mgr->setRule( action( 213 ), "isActiveView=true and selcount>0 and ($type in {'Shape' 'Group'} or (type='Component' and selcount=1))", true );
+  mgr->setRule( action( 213 ), "($type in {'Shape' 'Group'} and selcount>0) or (type='Component' and selcount=1)", true );
   mgr->insert( separator(), -1, -1 );
 }