]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Automatically replot the plot2d if selection is changed.
authoradv <adv@opencascade.com>
Wed, 4 Apr 2012 08:21:26 +0000 (08:21 +0000)
committeradv <adv@opencascade.com>
Wed, 4 Apr 2012 08:21:26 +0000 (08:21 +0000)
src/Plot2d/Plot2d_ViewFrame.cxx
src/Plot2d/Plot2d_ViewFrame.h
src/Plot2d/Plot2d_ViewWindow.cxx
src/Plot2d/Plot2d_ViewWindow.h
src/Plot2d/resources/Plot2d_msg_en.ts
src/Plot2d/resources/Plot2d_msg_fr.ts

index e5100107ef7f0e98a113e820e088bdddbbef9cc9..b82e05d165af046235548e56a05ae3d552818d2c 100755 (executable)
@@ -173,7 +173,8 @@ Plot2d_ViewFrame::Plot2d_ViewFrame( QWidget* parent, const QString& title )
        myXGridMaxMinor( 5 ), myYGridMaxMinor( 5 ), myY2GridMaxMinor( 5 ),
        myXMode( 0 ), myYMode( 0 ), mySecondY( false ),
        myTitleAutoUpdate( true ), myXTitleAutoUpdate( true ), myYTitleAutoUpdate( true ),
-       myTitleChangedByUser( false ), myXTitleChangedByUser( false ), myYTitleChangedByUser( false )
+       myTitleChangedByUser( false ), myXTitleChangedByUser( false ), myYTitleChangedByUser( false ),
+       myShowAutoReplot( true ), myAutoReplot( false )
 {
   setObjectName( title );
   /* Plot 2d View */
@@ -411,6 +412,9 @@ void Plot2d_ViewFrame::readPreferences()
   myTitle = myPrefTitle;
   myXTitle = myPrefXTitle;
   myYTitle = myPrefYTitle;
+
+  if( myShowAutoReplot )
+    myAutoReplot = resMgr->integerValue( "Plot2d", "AutoReplot", myAutoReplot );
 }
 
 /*!
@@ -469,6 +473,11 @@ void Plot2d_ViewFrame::writePreferences()
     myPrefYTitle = myYTitle;
     myYPrefTitleChangedByUser = true;
   }
+
+  if( myShowAutoReplot )
+  {
+    resMgr->setValue( "Plot2d", "AutoReplot", myAutoReplot );
+  }
 }
 
 /*!
@@ -2243,6 +2252,8 @@ void Plot2d_ViewFrame::copyPreferences( Plot2d_ViewFrame* vf )
   myYMode = vf->myYMode;
   mySecondY = vf->mySecondY;
 
+  myAutoReplot = vf->myAutoReplot;
+
   // special fields for automatic update of viewer titles
   myTitleAutoUpdate = vf->myTitleAutoUpdate;
   myXTitleAutoUpdate = vf->myXTitleAutoUpdate;
@@ -2640,3 +2651,23 @@ void Plot2d_ViewFrame::updateSymbols()
     }
   }
 }
+
+/*!
+  Sets flag for show\hide of automatic replotting of view in accordance 
+  with current selection. You should call setShowAutoReplot( false ) 
+  if your application doesn't support this functionality.
+  By default flag is true.
+*/
+void Plot2d_ViewFrame::setShowAutoReplot( const bool show )
+{
+  myShowAutoReplot = show;
+}
+
+/*!
+  Sets flag for automatic replotting of view in accordance with current selection.
+  By default flag is false.
+*/
+void Plot2d_ViewFrame::setAutoReplot( const bool replot )
+{
+  myAutoReplot = replot;
+}
index 3d585bbfaf0fa95ecdb73d1fe3aaa0e8e6590f29..59877ce9bef6155c4350a1b0ff90d4c609496a9b 100755 (executable)
@@ -143,6 +143,12 @@ public:
 
   void    updateSymbols();
 
+  void    setShowAutoReplot( const bool show );
+  bool    isShowAutoReplot() const { return myShowAutoReplot; }
+
+  void    setAutoReplot( const bool replot );
+  bool    isAutoReplot() const { return myAutoReplot; }
+
 protected:
   int     testOperation( const QMouseEvent& );
   void    readPreferences();
@@ -214,6 +220,8 @@ protected:
   bool           myTitleAutoUpdate, myXTitleAutoUpdate, myYTitleAutoUpdate;
   bool           myTitleChangedByUser, myXTitleChangedByUser, myYTitleChangedByUser;
 
+  bool           myShowAutoReplot, myAutoReplot;
+
   static         QString myPrefTitle;
   static         QString myPrefXTitle;
   static         QString myPrefYTitle;
index 9c7b9e22450271951574b43abbaae2637e68faba..f2694a32eab05114204bdf6a709bf263d9500189 100755 (executable)
@@ -146,6 +146,18 @@ void Plot2d_ViewWindow::contextMenuPopup( QMenu* thePopup )
   // settings
   thePopup->addAction( mgr->action( CurvSettingsId ) );
   thePopup->addAction( mgr->action( CurvesSettingsId ) );
+
+  if ( myViewFrame->isShowAutoReplot() )
+  {
+    // automatically update
+    QAction* aAutoReplot = new QAction( tr( "TOT_PLOT2D_AUTOREPLOT" ), this );
+    aAutoReplot->setCheckable( true );
+    aAutoReplot->setChecked( myViewFrame->isAutoReplot() );
+    connect( aAutoReplot, SIGNAL( triggered() ), this, SLOT( onAutoReplot() ) );
+
+    thePopup->addSeparator();
+    thePopup->addAction( aAutoReplot );
+  }
 }
 
 /*!
@@ -614,6 +626,17 @@ void Plot2d_ViewWindow::onPrintView()
   myViewFrame->updateSymbols();
 }
 
+/*!
+  \brief Called when the "Automatically update" action is activated.
+*/
+void Plot2d_ViewWindow::onAutoReplot()
+{
+  QAction* anAct = ::qobject_cast<QAction*>( sender() );
+  if( !myViewFrame || !anAct )
+    return;
+  myViewFrame->setAutoReplot( anAct->isChecked() );
+}
+
 /*!
   \brief Dump the contents of the view window to the image.
   \return image, containing all scene rendered in the window
index b0a1f08351bf2ceda21e949338c60d262f0a1e3e..a1b6ecf32c9ef5c613b28e95c1175dc769e6768e 100755 (executable)
@@ -93,6 +93,8 @@ public slots:
   void              onDumpView();
   void              onPrintView();
 
+  void              onAutoReplot();
+
 protected:
   virtual QImage    dumpView();
   virtual bool      dumpViewToFormat( const QImage&, 
index d9dcdd39510d341cee3df8d655817a89afb36998..91d36f5f4be9423955510a424457b2fe611b186e 100644 (file)
@@ -475,6 +475,10 @@ Logarithmic scale for ordinate axis is not allowed.</translation>
         <source>MEN_PLOT2D_CURVES_LINES</source>
         <translation>Draw lines</translation>
     </message>
+    <message>
+      <source>TOT_PLOT2D_AUTOREPLOT</source>
+      <translation>Update automatically</translation>
+    </message>
 </context>
 <context>
     <name>Plot2d_FitDataDlg</name>
index 76436a3b3865270193d2f28a86181107ee788a21..c285259e459ad58130e9055ee298498777499741 100755 (executable)
@@ -477,6 +477,10 @@ L&apos;échelle logarithmique de l&apos;ordonnée n&apos;est pas permise.</trans
         <source>MEN_PLOT2D_CURVES_LINES</source>
         <translation type="unfinished">Dessiner les Lignes</translation>
     </message>
+    <message>
+        <source>TOT_PLOT2D_AUTOREPLOT</source>
+        <translation type="unfinished">Mettre à jour automatiquement</translation>
+    </message>
 </context>
 <context>
     <name>Plot2d_FitDataDlg</name>