Salome HOME
updated copyright message
[modules/gui.git] / src / SVTK / SVTK_ViewModel.cxx
index eb5c339a89db0eb93bccbfac324acb081ee3081a..998464b940c1e7f49f92341277d4613578c17379 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -23,6 +23,7 @@
 #include <QMenu>
 #include <QColorDialog>
 #include <QToolBar>
+#include <QTimer>
 
 #include <vtkCamera.h>
 #include <vtkRenderer.h>
@@ -186,7 +187,7 @@ SUIT_ViewWindow* SVTK_Viewer::createView( SUIT_Desktop* theDesktop )
           this,  SLOT(onActorAdded(VTKViewer_Actor*)));
   connect(aViewWindow, SIGNAL( actorRemoved(VTKViewer_Actor*) ), 
           this,  SLOT(onActorRemoved(VTKViewer_Actor*)));
-
+  
   return aViewWindow;
 }
 
@@ -218,7 +219,7 @@ void SVTK_Viewer::setTrihedronSize( const double theSize, const bool theRelative
 
   if (SUIT_ViewManager* aViewManager = getViewManager()) {
     QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-    for ( uint i = 0; i < aViews.count(); i++ )
+    for ( int i = 0; i < aViews.count(); i++ )
     {
       if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
               aView->SetTrihedronSize( theSize, theRelative );
@@ -244,7 +245,7 @@ void SVTK_Viewer::setStaticTrihedronVisible( const bool theIsVisible )
 
   if (SUIT_ViewManager* aViewManager = getViewManager()) {
     QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-    for ( uint i = 0; i < aViews.count(); i++ )
+    for ( int i = 0; i < aViews.count(); i++ )
     {
       if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
         aView->SetStaticTrihedronVisible( theIsVisible );
@@ -272,7 +273,7 @@ void SVTK_Viewer::setProjectionMode( const int theMode )
       myProjMode = theMode;
     if (SUIT_ViewManager* aViewManager = getViewManager()) {
       QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-      for ( uint i = 0; i < aViews.count(); i++ )
+      for ( int i = 0; i < aViews.count(); i++ )
       {
         if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
           aView->SetProjectionMode( theMode );
@@ -300,7 +301,7 @@ void SVTK_Viewer::setStereoType( const int theType )
 
     if (SUIT_ViewManager* aViewManager = getViewManager()) {
       QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-      for ( uint i = 0; i < aViews.count(); i++ )
+      for ( int i = 0; i < aViews.count(); i++ )
       {
         if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
           aView->SetStereoType( theType );
@@ -328,7 +329,7 @@ void SVTK_Viewer::setAnaglyphFilter( const int theFilter )
 
     if (SUIT_ViewManager* aViewManager = getViewManager()) {
       QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-      for ( uint i = 0; i < aViews.count(); i++ )
+      for ( int i = 0; i < aViews.count(); i++ )
       {
         if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
           aView->SetAnaglyphFilter( theFilter );
@@ -356,7 +357,7 @@ void SVTK_Viewer::setQuadBufferSupport( const bool theEnable )
 
     if (SUIT_ViewManager* aViewManager = getViewManager()) {
       QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-      for ( uint i = 0; i < aViews.count(); i++ )
+      for ( int i = 0; i < aViews.count(); i++ )
       {
         if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
           aView->SetQuadBufferSupport( theEnable );
@@ -382,7 +383,7 @@ void SVTK_Viewer::setInteractionStyle( const int theStyle )
   
   if (SUIT_ViewManager* aViewManager = getViewManager()) {
     QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-    for ( uint i = 0; i < aViews.count(); i++ )
+    for ( int i = 0; i < aViews.count(); i++ )
     {
       if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
         aView->SetInteractionStyle( theStyle );
@@ -408,7 +409,7 @@ void SVTK_Viewer::setZoomingStyle( const int theStyle )
   
   if (SUIT_ViewManager* aViewManager = getViewManager()) {
     QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-    for ( uint i = 0; i < aViews.count(); i++ )
+    for ( int i = 0; i < aViews.count(); i++ )
     {
       if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
         aView->SetZoomingStyle( theStyle );
@@ -434,7 +435,7 @@ void SVTK_Viewer::setPreSelectionMode( Preselection_Mode theMode )
   
   if (SUIT_ViewManager* aViewManager = getViewManager()) {
     QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-    for ( uint i = 0; i < aViews.count(); i++ )
+    for ( int i = 0; i < aViews.count(); i++ )
     {
       if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
         aView->SetPreSelectionMode( theMode );
@@ -470,7 +471,7 @@ void SVTK_Viewer::setIncrementalSpeed( const int theValue, const int theMode )
 
   if (SUIT_ViewManager* aViewManager = getViewManager()) {
     QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-    for ( uint i = 0; i < aViews.count(); i++ )
+    for ( int i = 0; i < aViews.count(); i++ )
     {
       if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
         aView->SetIncrementalSpeed( theValue, theMode );
@@ -501,7 +502,7 @@ void SVTK_Viewer::setSpacemouseButtons( const int theBtn1, const int theBtn2, co
 
   if (SUIT_ViewManager* aViewManager = getViewManager()) {
     QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-    for ( uint i = 0; i < aViews.count(); i++ )
+    for ( int i = 0; i < aViews.count(); i++ )
     {
       if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
         aView->SetSpacemouseButtons( theBtn1, theBtn2, theBtn3 );
@@ -528,6 +529,9 @@ void SVTK_Viewer::setViewManager(SUIT_ViewManager* theViewManager)
   
   connect(theViewManager, SIGNAL(mouseRelease(SUIT_ViewWindow*, QMouseEvent*)), 
           this, SLOT(onMouseRelease(SUIT_ViewWindow*, QMouseEvent*)));
+
+  connect(theViewManager, SIGNAL(viewCreated(SUIT_ViewWindow*)), 
+         this, SLOT(onViewCreated(SUIT_ViewWindow*)));
 }
 
 /*!
@@ -553,19 +557,19 @@ void SVTK_Viewer::contextMenuPopup( QMenu* thePopup )
 /*!
   SLOT: called on mouse button press, empty implementation
 */
-void SVTK_Viewer::onMousePress(SUIT_ViewWindow* vw, QMouseEvent* event)
+void SVTK_Viewer::onMousePress(SUIT_ViewWindow* /*vw*/, QMouseEvent* /*event*/)
 {}
 
 /*!
   SLOT: called on mouse move, empty implementation
 */
-void SVTK_Viewer::onMouseMove(SUIT_ViewWindow* vw, QMouseEvent* event)
+void SVTK_Viewer::onMouseMove(SUIT_ViewWindow* /*vw*/, QMouseEvent* /*event*/)
 {}
 
 /*!
   SLOT: called on mouse button release, empty implementation
 */
-void SVTK_Viewer::onMouseRelease(SUIT_ViewWindow* vw, QMouseEvent* event)
+void SVTK_Viewer::onMouseRelease(SUIT_ViewWindow* /*vw*/, QMouseEvent* /*event*/)
 {}
 
 /*!
@@ -579,7 +583,7 @@ void SVTK_Viewer::enableSelection(bool isEnabled)
    
   if (SUIT_ViewManager* aViewManager = getViewManager()) {
     QVector<SUIT_ViewWindow*> aViews = aViewManager->getViews();
-    for ( uint i = 0; i < aViews.count(); i++ )
+    for ( int i = 0; i < aViews.count(); i++ )
     {
       if ( TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i )) )
         aView->SetSelectionEnabled( isEnabled );
@@ -865,3 +869,10 @@ void SVTK_Viewer::onActorRemoved(VTKViewer_Actor* theActor)
 {
   emit actorRemoved((SVTK_ViewWindow*)sender(), theActor);
 }
+
+void SVTK_Viewer::onViewCreated( SUIT_ViewWindow* view) {
+#ifdef VGL_WORKAROUND
+  if ( SVTK_ViewWindow* svw = dynamic_cast<SVTK_ViewWindow*>( view ) )
+    QTimer::singleShot(500, [svw] () { svw->Repaint(); } );
+#endif
+}