]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
NPAL19051:
authorsln <sln@opencascade.com>
Tue, 20 May 2008 09:03:26 +0000 (09:03 +0000)
committersln <sln@opencascade.com>
Tue, 20 May 2008 09:03:26 +0000 (09:03 +0000)
1) New signal viewCloned() is added to notify other objects about finishing ?Clone? operation from onCloneView slot
2)Part of code is moved from Splot2d_Viewer::onCloneView() slot to Pplot2d_Viewer::onCloneView() slot

src/Plot2d/Plot2d_ViewModel.cxx
src/Plot2d/Plot2d_ViewModel.h

index e689f6ef5870081c84097aced17c3923972b5185..514d04b731361be2262300ac01e191465dddec71 100755 (executable)
@@ -171,8 +171,37 @@ void Plot2d_Viewer::onDumpView()
 /*!
   SLOT: called when action "Clone view" is activated
 */
-void Plot2d_Viewer::onCloneView( Plot2d_ViewFrame*, Plot2d_ViewFrame* )
+void Plot2d_Viewer::onCloneView( Plot2d_ViewFrame* clonedVF, Plot2d_ViewFrame* newVF )
 {
+  if( !clonedVF || !newVF )
+    return;
+
+  // 1) Copy all properties of view
+
+  newVF->copyPreferences( clonedVF );
+
+  // 2) Display all curves displayed in cloned view
+
+  QList<Plot2d_Curve> aCurves;
+  clonedVF->getCurves( aCurves );
+  QList<Plot2d_Curve>::const_iterator anIt = aCurves.begin(), aLast = aCurves.end();
+
+  for( ; anIt!=aLast; anIt++ )
+    if( clonedVF->isVisible( *anIt ) )
+      newVF->displayCurve( *anIt, false );
+  newVF->Repaint();
+  
+  if ( newVF )
+  {
+    // find view window corresponding to the frame 
+    QWidget* p = newVF->parentWidget();
+    while( p && !p->inherits( "SUIT_ViewWindow" ) )
+      p = p->parentWidget();
+    
+    // emits signal
+    if ( p && p->inherits( "SUIT_ViewWindow" ) )
+      emit viewCloned( (SUIT_ViewWindow*)p );
+  }
 }
 
 /*!
index 75445ff9bc14a28f2e693be77c8e7290fb6d7225..a61755549b2625abccf9eb4279ed54974e4d1428 100755 (executable)
@@ -48,6 +48,9 @@ public:
   void         update();
   void         clearPrs();
   void         setAutoDel(bool theDel);
+  
+signals:
+  void viewCloned( SUIT_ViewWindow* );
 
 protected slots:
   void onChangeBgColor();