]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
GUITHARE issue 21074: Save plots in .hdf files. CTH_2_6_2 CTH_2_6_3 CTH_2_7_1
authorouv <oleg.uvarov@opencascade.com>
Sat, 23 Jul 2022 18:58:02 +0000 (21:58 +0300)
committerouv <oleg.uvarov@opencascade.com>
Sat, 23 Jul 2022 18:58:02 +0000 (21:58 +0300)
src/Plot2d/Plot2d_ViewFrame.cxx
src/Plot3d/Plot3d_ViewWindow.cxx

index ccba2772a364203d1ddb6237f4d5835f737f3dfd..b459f3f553c4297c87a5b4c612083012abb69b68 100755 (executable)
@@ -2941,12 +2941,29 @@ bool Plot2d_ViewFrame::print( const QString& file, const QString& format ) const
 */
 QString Plot2d_ViewFrame::getVisualParameters()
 {
+  QStringList aParamList;
+
+  aParamList << QString().sprintf( "%d", myXMode );
+  aParamList << QString().sprintf( "%d", myYMode );
+  aParamList << QString().sprintf( "%d", mySecondY );
+
   double xmin, xmax, ymin, ymax, y2min, y2max;
   getFitRanges( xmin, xmax, ymin, ymax, y2min, y2max );
-  QString retStr;
-  retStr.sprintf( "%d*%d*%d*%.12e*%.12e*%.12e*%.12e*%.12e*%.12e", myXMode,
-                 myYMode, mySecondY, xmin, xmax, ymin, ymax, y2min, y2max );
-  return retStr; 
+  aParamList << QString().sprintf( "%.12e", xmin );
+  aParamList << QString().sprintf( "%.12e", xmax );
+  aParamList << QString().sprintf( "%.12e", ymin );
+  aParamList << QString().sprintf( "%.12e", ymax );
+  aParamList << QString().sprintf( "%.12e", y2min );
+  aParamList << QString().sprintf( "%.12e", y2max );
+
+  for( int aTitleIndex = MainTitle; aTitleIndex <= Y2Axis; aTitleIndex++ )
+  {
+    QString aTitle = getTitle( (ObjectType)aTitleIndex );
+    aParamList << aTitle;
+  }
+
+  QString aString = aParamList.join( "*" );
+  return aString;
 }
 
 /*!
@@ -2954,32 +2971,50 @@ QString Plot2d_ViewFrame::getVisualParameters()
 */
 void Plot2d_ViewFrame::setVisualParameters( const QString& parameters )
 {
-  QStringList paramsLst = parameters.split( '*' );
-  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();
+  QStringList aParamList = parameters.split( "*" );
+  int aParamCount = aParamList.count();
 
-    if (mySecondY)
+  int anIndex = 0;
+
+  if( aParamCount >= 3 )
+  {
+    myXMode = aParamList[ anIndex++ ].toInt();
+    myYMode = aParamList[ anIndex++ ].toInt();
+    mySecondY = (bool)aParamList[ anIndex++ ].toInt();
+
+    if( mySecondY )
       setTitle( myY2TitleEnabled, myY2Title, Y2Title, false );
-    setHorScaleMode( myXMode, /*update=*/false );
-    setVerScaleMode( myYMode, /*update=*/false );
+    setHorScaleMode( myXMode, false );
+    setVerScaleMode( myYMode, false );
     
-    if (mySecondY) {
+    if( mySecondY )
+    {
       QwtScaleMap yMap2 = myPlot->canvasMap( QwtPlot::yRight );
       myYDistance2 = yMap2.s2() - yMap2.s1();
     }
+  }
 
+  if( aParamCount >= 9 )
+  {
+    double xmin, xmax, ymin, ymax, y2min, y2max;
+    xmin = aParamList[ anIndex++ ].toDouble();
+    xmax = aParamList[ anIndex++ ].toDouble();
+    ymin = aParamList[ anIndex++ ].toDouble();
+    ymax = aParamList[ anIndex++ ].toDouble();
+    y2min = aParamList[ anIndex++ ].toDouble();
+    y2max = aParamList[ anIndex++ ].toDouble();
     fitData( 0, xmin, xmax, ymin, ymax, y2min, y2max );
     fitData( 0, xmin, xmax, ymin, ymax, y2min, y2max );
   }  
+
+  if( aParamCount >= 16 )
+  {
+    for( int aTitleIndex = MainTitle; aTitleIndex <= Y2Axis; aTitleIndex++ )
+    {
+      QString aTitle = aParamList[ anIndex++ ];
+      setTitle( !aTitle.isEmpty(), aTitle, (ObjectType)aTitleIndex, false );
+    }
+  }
 }
 
 /*!
index 7db17df35425d60d480c82fc695a0b4d223630d4..7b844107b704f6dddfa177d1d692ed896ef54620 100644 (file)
@@ -276,6 +276,13 @@ void Plot3d_ViewWindow::onMode2D( bool theOn )
   bool anIsModeChanged = theOn != myMode2D;
   myMode2D = theOn;
 
+  if( getAction( Mode2DId ) )
+  {
+    bool anIsBlocked = blockSignals( true );
+    getAction( Mode2DId )->setChecked( theOn );
+    blockSignals( anIsBlocked );
+  }
+
   if( getAction( ViewTrihedronId ) )
     getAction( ViewTrihedronId )->setVisible( !theOn );
   if( getAction( ViewTrihedronId ) )