]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
*** empty log message ***
authorvsv <vsv@opencascade.com>
Wed, 14 May 2008 15:07:33 +0000 (15:07 +0000)
committervsv <vsv@opencascade.com>
Wed, 14 May 2008 15:07:33 +0000 (15:07 +0000)
src/CAM/CAM_ViewExtender.h
src/SVTK/SVTK_ViewModel.cxx
src/SVTK/SVTK_ViewModel.h
src/SVTK/SVTK_ViewWindow.cxx
src/SVTK/SVTK_ViewWindow.h

index eae28e51d0e711423df3845a8a74d27e97fe82ca..46032b4b34714b645adc6f31d2ba003dcba32d92 100644 (file)
@@ -23,6 +23,7 @@
 
 class QtxActionToolMgr;
 class QMenu;
+class SUIT_ViewModel;
 /*! 
   An interface which can be used as a module dedicated extension for Viewer
 */
@@ -32,8 +33,8 @@ public:
   //! Creates a New toolbar containing extending actions. Returns New Toolbar Id
   virtual int createToolbar(QtxActionToolMgr* ) = 0;
   virtual void contextMenuPopup(QMenu* ) = 0;
-  virtual void activate() = 0;
-  virtual void deactivate() = 0;
+  virtual void activate(SUIT_ViewModel*) = 0;
+  virtual void deactivate(SUIT_ViewModel*) = 0;
 };
 
 #endif
index 71990b72b87da81da889637ea4dddc0e14eeaecc..ecd4da93a55565f1fe397f62f2e17d260883a014 100644 (file)
@@ -129,7 +129,12 @@ createView( SUIT_Desktop* theDesktop )
 
   aViewWindow->setBackgroundColor( backgroundColor() );
   aViewWindow->SetTrihedronSize( trihedronSize(), trihedronRelative() );
-       
+
+  connect(aViewWindow, SIGNAL( actorAdded(VTKViewer_Actor*) ), 
+         this,  SLOT(onActorAdded(VTKViewer_Actor*)));
+  connect(aViewWindow, SIGNAL( actorRemoved(VTKViewer_Actor*) ), 
+         this,  SLOT(onActorRemoved(VTKViewer_Actor*)));
+
   if (myActiveModule) {
     CAM_ViewExtender* aExtender = myActiveModule->getViewExtender();
     if (aExtender) {
@@ -519,21 +524,6 @@ SVTK_Viewer
 void SVTK_Viewer::connectToApplication( CAM_Application* theApp )
 {
   onModuleActivated(theApp->activeModule());
-//   CAM_Module* aModule =  dynamic_cast<CAM_Module*>(theApp->activeModule());
-//   if (aModule) {
-//     if (myActiveModule != aModule) {
-//       CAM_ViewExtender* aExtender = (myActiveModule)? myActiveModule->getViewExtender() : 0;
-//       if (aExtender)
-//     aExtender->deactivate();
-
-//       myActiveModule = aModule;
-//       aExtender = myActiveModule->getViewExtender();
-//       if (aExtender)
-//     aExtender->activate();
-
-//       updateToolBars();
-//     }
-//   }
   connect(theApp, SIGNAL(moduleActivated(CAM_Module*)), 
          this, SLOT(onModuleActivated(CAM_Module*)));
 }
@@ -546,12 +536,12 @@ void SVTK_Viewer::onModuleActivated( CAM_Module* mod )
     if (myActiveModule != aModule) {
       CAM_ViewExtender* aExtender = (myActiveModule)? myActiveModule->getViewExtender() : 0;
       if (aExtender)
-       aExtender->deactivate();
+       aExtender->deactivate(this);
 
       myActiveModule = aModule;
       aExtender = myActiveModule->getViewExtender();
       if (aExtender)
-       aExtender->activate();
+       aExtender->activate(this);
 
       updateToolBars();
     }
@@ -579,3 +569,13 @@ void SVTK_Viewer::updateToolBars()
   }
   myExtToolBarId = aNewId;
 }
+
+void SVTK_Viewer::onActorAdded(VTKViewer_Actor* theActor)
+{
+  emit actorAdded((SVTK_ViewWindow*)sender(), theActor);
+}
+
+void SVTK_Viewer::onActorRemoved(VTKViewer_Actor* theActor)
+{
+  emit actorRemoved((SVTK_ViewWindow*)sender(), theActor);
+}
index 46b5956699420761e90b5fedb5233040e712fcb9..9b36f63f076a7eb522529f01af1bf9a55d532621 100644 (file)
@@ -34,6 +34,7 @@ class SVTK_ViewWindow;
 class CAM_Module;
 class CAM_Application;
 class CAM_Module;
+class VTKViewer_Actor;
 
 //! Extends two interfaces #SVTK_ViewModelBase and #SALOME_View 
 class SVTK_EXPORT SVTK_Viewer : public SVTK_ViewModelBase, public SALOME_View 
@@ -114,6 +115,9 @@ public:
 
   virtual void connectToApplication(CAM_Application* theApp);
 
+ signals:
+  void actorAdded(SVTK_ViewWindow*, VTKViewer_Actor*);
+  void actorRemoved(SVTK_ViewWindow*, VTKViewer_Actor*);
 
 protected slots:
   void onMousePress(SUIT_ViewWindow*, QMouseEvent*);
@@ -124,6 +128,8 @@ protected slots:
   void onChangeBgColor();
 
   void onModuleActivated( CAM_Module* mod );
+  void onActorAdded(VTKViewer_Actor*);
+  void onActorRemoved(VTKViewer_Actor*);
 
 private:
   void updateToolBars();
index be2e4468ffa250d7b2ff1823bbb085dc39e5fc86..c89b4fb4a4687c041a3f24756c4bbbc94d74aacf 100755 (executable)
@@ -688,12 +688,11 @@ SVTK_ViewWindow
 /*!
   Redirect the request to #SVTK_Renderer::AddActor
 */
-void
-SVTK_ViewWindow
-::AddActor( VTKViewer_Actor* theActor, 
+void SVTK_ViewWindow::AddActor( VTKViewer_Actor* theActor, 
            bool theUpdate )
 {
   myMainWindow->AddActor( theActor, theUpdate );
+  emit actorAdded(theActor);
 }
 
 /*!
@@ -705,6 +704,7 @@ SVTK_ViewWindow
               bool theUpdate )
 {
   myMainWindow->RemoveActor( theActor, theUpdate );
+  emit actorRemoved(theActor);
 }
 
 /*!
index 811752c972fcd231f6268aee7948f9a228ebe2b0..75f7acf481bd6495ac0291e4d22b5aa94e43b2bf 100755 (executable)
@@ -274,6 +274,8 @@ public slots:
 
 signals:
  void selectionChanged();
+ void actorAdded(VTKViewer_Actor*);
+ void actorRemoved(VTKViewer_Actor*);
 
 public slots:
   //! Redirect the request to #SVTK_Renderer::OnFrontView