]> SALOME platform Git repositories - modules/visu.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:31 +0000 (06:22 +0000)
committerasv <asv@opencascade.com>
Wed, 10 Aug 2005 06:22:31 +0000 (06:22 +0000)
src/VISUGUI/VisuGUI.cxx

index 01bcb137ed7e15f7da701813631456903f5eae30..0f7c14a64c28007537aa8be294e526a72a407160 100644 (file)
@@ -596,6 +596,9 @@ OnCreateMesh()
   if (anIO.IsNull() || !anIO->hasEntry())
     return;
 
+  // create a VTK view window if it does not exist
+  GetViewWindow( this, /*create=*/true );
+
   CreateMesh(this, anIO);
 }
 
@@ -607,6 +610,9 @@ OnCreateManyMesh()
   if (CheckLock(aStudy))
     return;
 
+  // create a VTK view window if it does not exist
+  GetViewWindow( this, /*create=*/true );
+
   // Get selected SObject
   SalomeApp_SelectionMgr* aSelectionMgr = GetSelectionMgr(this);
   SALOME_ListIO aListIO;
@@ -693,6 +699,8 @@ OnDisplayPrs()
 {
   if(MYDEBUG) MESSAGE("VisuGUI::OnDisplayPrs");
 
+  SVTK_ViewWindow* vw = GetViewWindow( this, /*create=*/true );
+  
   QApplication::setOverrideCursor(Qt::waitCursor);
   SALOME_ListIO aList;
   SalomeApp_SelectionMgr* mgr = GetSelectionMgr(this);
@@ -708,7 +716,7 @@ OnDisplayPrs()
       if(aPrsObject){
         if(MYDEBUG) MESSAGE("VisuGUI::OnDisplayPrs : Prs3d object");
         UpdateViewer( this, aPrsObject );
-        if (SVTK_ViewWindow* vw = GetViewWindow( this )) {
+        if ( vw ) {
           vw->highlight(anIO, 1);
         }
         continue;
@@ -736,7 +744,7 @@ OnDisplayPrs()
       }
     }
   }
-  if (SVTK_ViewWindow* vw = GetViewWindow( this )) {
+  if ( vw ) {
     vw->getRenderer()->ResetCameraClippingRange();
     vw->Repaint();
   }
@@ -759,8 +767,9 @@ OnErasePrs()
 
   QApplication::setOverrideCursor(Qt::waitCursor);
 
-  SVTK_ViewWindow* vw = GetViewWindow(this);
-  if (vw) vw->unHighlightAll();
+  SVTK_ViewWindow* vw = GetViewWindow( this );
+  if (vw) 
+    vw->unHighlightAll();
 
   SALOME_ListIO aList;
   SalomeApp_SelectionMgr* mgr = GetSelectionMgr(this);
@@ -770,10 +779,11 @@ OnErasePrs()
   for ( SALOME_ListIteratorOfListIO it( aList ); it.More(); it.Next() ) {
     anIO = it.Value();
     CORBA::Object_var anObject = GetSelectedObj( GetAppStudy(this), anIO->getEntry() );
-    ErasePrs(this, anObject, false);
+    ErasePrs( this, anObject, false );
   }
 
-  if (vw) vw->Repaint();
+  if (vw) 
+    vw->Repaint();
 
   QApplication::restoreOverrideCursor();
 }
@@ -2469,7 +2479,7 @@ createPopupMenus()
           ") or (selcount>0 and $type in {'VISU::TMESH' " + aPrsAll + "})";
 
   mgr->setRule( action( VISU_ERASE ), aRule + "and (isVisible=true)", true );// TODO: aRule.arg(" and isVisible=1"), true );
-  mgr->setRule( action( VISU_DISPLAY ), aRule + "and (isVisible=false)", true );// TODO: aRule.arg(" and isVisible=0"), true );
+  mgr->setRule( action( VISU_DISPLAY ), aRule + "and ((isVisible=false and isActiveView=true) or (isActiveView=false))", true );// TODO: aRule.arg(" and isVisible=0"), true );
   mgr->setRule( action( VISU_DISPLAY_ONLY ), aRule, true );
 
   aRule = "selcount>0 and $type in {'VISU::TMESH' " + aPrsAll + "}";