]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
further implementation of get/setVisualParameters()
authorasv <asv@opencascade.com>
Tue, 31 Jan 2006 08:37:49 +0000 (08:37 +0000)
committerasv <asv@opencascade.com>
Tue, 31 Jan 2006 08:37:49 +0000 (08:37 +0000)
src/GLViewer/GLViewer_ViewFrame.cxx
src/Plot2d/Plot2d_ViewFrame.cxx
src/Plot2d/Plot2d_ViewFrame.h
src/Plot2d/Plot2d_ViewWindow.cxx

index c72b71eb93de4f680d5f69df3d67c13e2ac4c952..1bb6c8a381f07cbbbbeefc4d591bfde739b4a453 100644 (file)
@@ -552,11 +552,32 @@ void GLViewer_ViewFrame::wheelEvent( QWheelEvent* e )
  */
 QString GLViewer_ViewFrame::getVisualParameters()
 {
-  return " ";
+  QString retStr;
+  if ( myVP && myVP->inherits( "GLViewer_ViewPort2d" ) ) {
+    GLViewer_ViewPort2d* vp2d = (GLViewer_ViewPort2d*)myVP;
+    GLfloat xSc, ySc, xPan, yPan;
+    vp2d->getScale( xSc, ySc );
+    vp2d->getPan( xPan, yPan );
+    retStr.sprintf( "%.12f*%.12f*%.12f*%.12f", xSc, ySc, xPan, yPan );
+  }
+  return retStr;
 }
 
 /* The method restors visual parameters of this view from a formated string
  */
 void GLViewer_ViewFrame::setVisualParameters( const QString& parameters )
 {
+  QStringList paramsLst = QStringList::split( '*', parameters, true );
+  if ( myVP && myVP->inherits( "GLViewer_ViewPort2d" ) && paramsLst.size() == 4) {
+    GLViewer_ViewPort2d* vp2d = (GLViewer_ViewPort2d*)myVP;
+
+    GLfloat xSc, ySc, xPan, yPan;
+    xSc = paramsLst[0].toDouble();
+    ySc = paramsLst[1].toDouble();
+    xPan = paramsLst[2].toDouble();
+    yPan = paramsLst[3].toDouble();
+
+    vp2d->getGLWidget()->setScale( xSc, ySc, 1. );
+    vp2d->getGLWidget()->setPan( xPan, yPan, 0. );
+  }
 }
index 67933dbae4a4065de8771c1e6eda7afd7c40b863..dde345b4ffbb25b9f6ddd75859e51864dd617a8a 100755 (executable)
@@ -1926,3 +1926,43 @@ bool Plot2d_ViewFrame::print( const QString& file, const QString& format ) const
   return res;
 #endif
 }
+
+QString Plot2d_ViewFrame::getVisualParameters()
+{
+  double xmin, xmax, ymin, ymax, y2min, y2max;
+  getFitRanges( xmin, xmax, ymin, ymax, y2min, y2max );
+  QString retStr;
+  retStr.sprintf( "%d*%d*%d*%.12f*%.12f*%.12f*%.12f*%.12f*%.12f", myXMode,
+                 myYMode, mySecondY, xmin, xmax, ymin, ymax, y2min, y2max );
+  return retStr; 
+}
+
+void Plot2d_ViewFrame::setVisualParameters( const QString& parameters )
+{
+  QStringList paramsLst = QStringList::split( '*', parameters, true );
+  if ( paramsLst.size() == 9 ) {
+    double xmin, xmax, ymin, ymax, y2min, y2max;
+    myXMode = paramsLst[0].toInt();
+    myYMode = paramsLst[1].toInt();
+    mySecondY = (bool)paramsLst[2].toInt();
+    xmin =  paramsLst[3].toDouble();
+    xmax =  paramsLst[4].toDouble();
+    ymin =  paramsLst[5].toDouble();
+    ymax =  paramsLst[6].toDouble();
+    y2min = paramsLst[7].toDouble();
+    y2max = paramsLst[8].toDouble();
+
+    if (mySecondY)
+      setTitle( myY2TitleEnabled, myY2Title, Y2Title, false );
+    setHorScaleMode( myXMode, /*update=*/false );
+    setVerScaleMode( myYMode, /*update=*/false );
+    
+    if (mySecondY) {
+      QwtDiMap yMap2 = myPlot->canvasMap( QwtPlot::yRight );
+      myYDistance2 = yMap2.d2() - yMap2.d1();
+    }
+
+    fitData( 0, xmin, xmax, ymin, ymax, y2min, y2max );
+    fitData( 0, xmin, xmax, ymin, ymax, y2min, y2max );
+  }  
+}
index 51faa089840b9f1244884e880a5cda584c5980f7..5d1faccb51a8c968787fb352c7fbeab6d09c676e 100755 (executable)
@@ -118,6 +118,9 @@ public:
 
   virtual bool print( const QString& file, const QString& format ) const;
 
+  QString getVisualParameters();
+  void    setVisualParameters( const QString& parameters );
+
 protected:
   int     testOperation( const QMouseEvent& );
   void    readPreferences();
index 7d21b50cad63a825cd5eae798dc642add5446194..017e8fada8a5cbd7139bd0b562a58c3fa2fb4842 100755 (executable)
@@ -470,11 +470,12 @@ QString Plot2d_ViewWindow::filter() const
  */
 QString Plot2d_ViewWindow::getVisualParameters()
 {
-  return " ";
+  return myViewFrame->getVisualParameters();
 }
 
 /* The method restors visual parameters of this view from a formated string
  */
 void Plot2d_ViewWindow::setVisualParameters( const QString& parameters )
 {
+  myViewFrame->setVisualParameters( parameters );
 }