]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Merging from the BR_VP5_DEV branch.
authornds <nds@opencascade.com>
Mon, 6 Oct 2008 09:05:33 +0000 (09:05 +0000)
committernds <nds@opencascade.com>
Mon, 6 Oct 2008 09:05:33 +0000 (09:05 +0000)
src/Plot2d/Plot2d_SetupViewDlg.cxx
src/Plot2d/Plot2d_SetupViewDlg.h
src/Plot2d/Plot2d_ViewManager.cxx
src/Plot2d/Plot2d_ViewManager.h
src/Plot2d/Plot2d_ViewModel.cxx
src/Plot2d/Plot2d_ViewModel.h

index add4a56d0df070a98138ecd1237b06287cc7f869..8b8c5ae7b1d39c776da48af6d651c72797409176 100755 (executable)
@@ -22,6 +22,8 @@
 
 #include "Plot2d_SetupViewDlg.h"
 
+#include <SUIT_Session.h>
+#include <SUIT_Application.h>
 #include <QtxColorButton.h>
 
 #include <QCheckBox>
@@ -305,10 +307,13 @@ Plot2d_SetupViewDlg::Plot2d_SetupViewDlg( QWidget* parent,
   myOkBtn->setDefault( TRUE );
   myCancelBtn = new QPushButton( tr( "BUT_CANCEL" ), this );
   myCancelBtn->setAutoDefault( TRUE );
+  myHelpBtn = new QPushButton( tr( "BUT_HELP" ), this );
+  myHelpBtn->setAutoDefault( TRUE );
   QHBoxLayout* btnLayout = new QHBoxLayout;
   btnLayout->addWidget( myOkBtn );
   btnLayout->addStretch();
   btnLayout->addWidget( myCancelBtn );
+  btnLayout->addWidget( myHelpBtn );
   
   // layout widgets
   topLayout->addWidget( myTitleCheck,  0,    0    );
@@ -344,6 +349,7 @@ Plot2d_SetupViewDlg::Plot2d_SetupViewDlg( QWidget* parent,
 
   connect( myOkBtn,         SIGNAL( clicked() ), this, SLOT( accept() ) );
   connect( myCancelBtn,     SIGNAL( clicked() ), this, SLOT( reject() ) );
+  connect( myHelpBtn,       SIGNAL( clicked() ), this, SLOT( onHelp() ) );
   
   if ( mySecondAxisY ) {
     connect( myTitleY2Check,   SIGNAL( clicked() ), this, SLOT( onY2TitleChecked() ) );
@@ -838,3 +844,13 @@ bool Plot2d_SetupViewDlg::isSetAsDefault()
 {
   return myDefCheck->isChecked();
 }
+
+/*!
+  Slot, called when user clicks "Help" button
+*/
+void Plot2d_SetupViewDlg::onHelp()
+{
+  SUIT_Application* app = SUIT_Session::session()->activeApplication();
+  if ( app )
+    app->onHelpContextModule( "GUI", "plot2d_viewer_page.html", "settings" );
+}
index dc75f4daa74f0e3b27bbc2be2526453c3e9d9db5..923dd5f40bac50ac7e4e1bde69857bb91dacaf10 100755 (executable)
@@ -93,6 +93,7 @@ protected slots:
   void            onXGridMinorChecked();
   void            onYGridMinorChecked();
   void            onY2GridMinorChecked();
+  void            onHelp();
 
 private:
   QCheckBox*      myTitleCheck;
@@ -126,6 +127,7 @@ private:
   QCheckBox*      myDefCheck;
   QPushButton*    myOkBtn;
   QPushButton*    myCancelBtn;
+  QPushButton*    myHelpBtn;
   bool            mySecondAxisY;
 };
 
index cccfe186565c00c6c1f2ab35b56952b12587a674..efd1fa6f8adba55be48a7483a8b577e96cbfc497 100755 (executable)
@@ -74,17 +74,32 @@ void Plot2d_ViewManager::createView()
   SLOT: called if action "Clone view" is activated, emits signal cloneView()
 */
 void Plot2d_ViewManager::onCloneView()
+{
+  if( sender() && sender()->inherits( "Plot2d_ViewWindow" ) )
+  {
+    Plot2d_ViewWindow* srcWnd = ( Plot2d_ViewWindow* )sender();
+    cloneView( srcWnd );
+  }
+}
+
+/*!
+  \brief Creates clone of source window
+  \param srcWnd source window
+  \return Pointer on the new window
+  \sa onCloneView()
+*/
+Plot2d_ViewWindow* Plot2d_ViewManager::cloneView( Plot2d_ViewWindow* srcWnd )
 {
   SUIT_ViewWindow* vw = createViewWindow();
 
-  Plot2d_ViewWindow  *newWnd = 0, *clonedWnd = 0;
+  Plot2d_ViewWindow* newWnd = 0;
   if( vw && vw->inherits( "Plot2d_ViewWindow" ) )
     newWnd = ( Plot2d_ViewWindow* )vw;
-  if( sender() && sender()->inherits( "Plot2d_ViewWindow" ) )
-    clonedWnd = ( Plot2d_ViewWindow* )sender();
   
-  if( newWnd && clonedWnd )
-    emit cloneView( clonedWnd->getViewFrame(), newWnd->getViewFrame() );
+  if( newWnd && srcWnd )
+    emit cloneView( srcWnd->getViewFrame(), newWnd->getViewFrame() );
+
+  return newWnd;
 }
 
 /*!
index 42b23a02cce35c2071aa5629d2addcfea5d49cd9..4eeb0ffd85ecc6a9bf355fdcb6a89d0625c76ace 100755 (executable)
@@ -24,6 +24,7 @@
 
 class SUIT_Desktop;
 class SUIT_PreferenceMgr;
+class Plot2d_ViewWindow;
 class Plot2d_Viewer;
 class Plot2d_ViewFrame;
 
@@ -36,6 +37,7 @@ public:
   ~Plot2d_ViewManager();
 
   Plot2d_Viewer*     getPlot2dModel() const;
+  Plot2d_ViewWindow* cloneView( Plot2d_ViewWindow* srcWnd );
 
   static int         fillPreferences( SUIT_PreferenceMgr*, const int );
 
index fae67f5cf875d6899c572d4030616f53d6f390ad..19127bc54a80d90b9e2c661efca556995d30fddd 100755 (executable)
@@ -175,8 +175,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
+
+  curveList aCurves;
+  clonedVF->getCurves( aCurves );
+  curveList::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 db0c471d245714546086ef473b8b3395eff71a1b..b2c0b041629496a53cc3bd02fb400e08f5af2f64 100755 (executable)
@@ -48,11 +48,14 @@ public:
   void         update();
   void         clearPrs();
   void         setAutoDel(bool theDel);
+  
+signals:
+  void         viewCloned( SUIT_ViewWindow* );
 
 protected slots:
-  void onChangeBgColor();
-  void onDumpView();
-  void onShowToolbar();
+  void         onChangeBgColor();
+  void         onDumpView();
+  void         onShowToolbar();
   virtual void onCloneView( Plot2d_ViewFrame*, Plot2d_ViewFrame* );
 
 private: