]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
PAL9764 - names and units aren't displayed in Plot2d
authorasl <asl@opencascade.com>
Wed, 23 Nov 2005 14:04:09 +0000 (14:04 +0000)
committerasl <asl@opencascade.com>
Wed, 23 Nov 2005 14:04:09 +0000 (14:04 +0000)
src/Plot2d/Plot2d_Curve.cxx
src/Plot2d/Plot2d_Curve.h
src/Plot2d/Plot2d_ViewFrame.cxx
src/Plot2d/Plot2d_ViewFrame.h
src/SPlot2d/SPlot2d_Curve.cxx
src/SPlot2d/SPlot2d_Curve.h

index 25ed5ac6d829bc471db92fbbccbfe024626a2e85..b4c8e68d93a8261d9ecd7e6d6bc7477eb97ad06a 100755 (executable)
@@ -54,6 +54,11 @@ Plot2d_Curve& Plot2d_Curve::operator=( const Plot2d_Curve& curve )
   return *this;
 }
 
+QString Plot2d_Curve::getTableTitle() const
+{
+  return QString();
+}
+
 /*!
   Sets curve's horizontal title
 */
index 703a9cdf038e52226ba497116b276bb478e091b9..004d6d761665d73b7bf7e8d70d91013e6227144d 100755 (executable)
@@ -29,6 +29,8 @@ public:
   Plot2d_Curve( const Plot2d_Curve& curve );
   Plot2d_Curve& operator= ( const Plot2d_Curve& curve );
 
+  virtual QString getTableTitle() const;
+  
   void        setHorTitle( const QString& title );
   QString     getHorTitle() const;
   void        setVerTitle( const QString& title );
index 82d1721766fdf80c85495ad62794494e0b016810..5b39633bc2354338cded979fad43a609ee554990 100755 (executable)
@@ -618,6 +618,7 @@ void Plot2d_ViewFrame::displayCurve( Plot2d_Curve* curve, bool update )
       myPlot->setCurveStyle( curveKey, QwtCurve::Spline );
     myPlot->setCurveData( curveKey, curve->horData(), curve->verData(), curve->nbPoints() );
   }
+  updateTitles();
   if ( update )
     myPlot->replot();
 }
@@ -1759,3 +1760,60 @@ void Plot2d_ViewFrame::copyPreferences( Plot2d_ViewFrame* vf )
   myYMode = vf->myYMode;
   mySecondY = vf->mySecondY;
 }
+
+/*!
+  Updates titles according to curves
+*/
+#define BRACKETIZE(x) QString( "[ " ) + x + QString( " ]" )
+void Plot2d_ViewFrame::updateTitles() 
+{
+  QIntDictIterator<Plot2d_Curve> it( myCurves );
+  QStringList aXTitles;
+  QStringList aYTitles;
+  QStringList aXUnits;
+  QStringList aYUnits;
+  QStringList aTables;
+  int i = 0;
+  while ( it.current() ) {
+    // collect titles and units from all curves...
+    QString xTitle = it.current()->getHorTitle().stripWhiteSpace();
+    QString yTitle = it.current()->getVerTitle().stripWhiteSpace();
+    QString xUnits = it.current()->getHorUnits().stripWhiteSpace();
+    QString yUnits = it.current()->getVerUnits().stripWhiteSpace();
+    
+    aYTitles.append( yTitle );
+    if ( aXTitles.find( xTitle ) == aXTitles.end() )
+      aXTitles.append( xTitle );
+    if ( aXUnits.find( xUnits ) == aXUnits.end() )
+      aXUnits.append( xUnits );
+    if ( aYUnits.find( yUnits ) == aYUnits.end() )
+      aYUnits.append( yUnits );
+
+    QString aName = it.current()->getTableTitle();
+    if( !aName.isEmpty() && aTables.find( aName ) == aTables.end() )
+      aTables.append( aName );
+
+    ++it;
+    ++i;
+  }
+  // ... and update plot 2d view
+  QString xUnits, yUnits;
+  if ( aXUnits.count() == 1 && !aXUnits[0].isEmpty() )
+    xUnits = BRACKETIZE( aXUnits[0] );
+  if ( aYUnits.count() == 1 && !aYUnits[0].isEmpty())
+    yUnits = BRACKETIZE( aYUnits[0] );
+  QString xTitle, yTitle;
+  if ( aXTitles.count() == 1 && aXUnits.count() == 1 )
+    xTitle = aXTitles[0];
+  if ( aYTitles.count() == 1 )
+    yTitle = aYTitles[0];
+
+  if ( !xTitle.isEmpty() && !xUnits.isEmpty() )
+    xTitle += " ";
+  if ( !yTitle.isEmpty() && !yUnits.isEmpty() )
+    yTitle += " ";
+
+  setTitle( myXTitleEnabled, xTitle + xUnits, XTitle, true );
+  setTitle( myYTitleEnabled, yTitle + yUnits, YTitle, true );
+  setTitle( true, aTables.join("; "), MainTitle, true );
+}
index 6cc8ff364140bd3a5aaa794e0c4d69c4d85c794d..e7d6a753d900ed9ea725498ada33834998548836 100755 (executable)
@@ -95,6 +95,7 @@ protected:
   int     testOperation( const QMouseEvent& );
   void    readPreferences();
   void    writePreferences();
+  void    updateTitles();
   QString getInfo( const QPoint& pnt );
   virtual void wheelEvent( QWheelEvent* );
 
index 3a1c8cece14db204321d1b5d23dc2eebb60f4f91..212067fd7c1c1fa420e51b4c23cb98099d128864 100644 (file)
@@ -59,3 +59,40 @@ SPlot2d_Curve& SPlot2d_Curve::operator=( const SPlot2d_Curve& curve )
   return *this;
 }
 
+Handle(SALOME_InteractiveObject) SPlot2d_Curve::getIO() const
+{
+  return myIO;
+}
+
+void SPlot2d_Curve::setIO( const Handle(SALOME_InteractiveObject)& io )
+{
+  myIO = io;
+}
+
+bool SPlot2d_Curve::hasTableIO() const
+{
+  return !myTableIO.IsNull();
+}
+
+Handle(SALOME_InteractiveObject) SPlot2d_Curve::getTableIO() const
+{
+  return myTableIO;
+}
+
+void SPlot2d_Curve::setTableIO( const Handle(SALOME_InteractiveObject)& io )
+{
+  myTableIO = io;
+}
+
+bool SPlot2d_Curve::hasIO() const
+{
+  return !myIO.IsNull();
+}
+
+QString SPlot2d_Curve::getTableTitle() const
+{
+  QString title;
+  if( hasTableIO() )
+    title = getTableIO()->getName();
+  return title;
+}
index 28eff47b0807447638631f86ec409cf7dc646078..7eaf395a4cdae7361532674212fd3b2e1346634b 100644 (file)
@@ -26,13 +26,15 @@ public:
   SPlot2d_Curve( const SPlot2d_Curve& curve );
   SPlot2d_Curve& operator= ( const SPlot2d_Curve& curve );
 
-  virtual bool                             hasIO() { return !myIO.IsNull(); }
-  virtual Handle(SALOME_InteractiveObject) getIO() const { return myIO; }
-  virtual void                             setIO( const Handle(SALOME_InteractiveObject)& io ) { myIO = io; }
+  virtual QString                          getTableTitle() const;
 
-  virtual bool                             hasTableIO() { return !myTableIO.IsNull(); }
-  virtual Handle(SALOME_InteractiveObject) getTableIO() const { return myTableIO; }
-  virtual void                             setTableIO( const Handle(SALOME_InteractiveObject)& io ) { myTableIO = io; }
+  virtual bool                             hasIO() const;
+  virtual Handle(SALOME_InteractiveObject) getIO() const;
+  virtual void                             setIO( const Handle(SALOME_InteractiveObject)& );
+
+  virtual bool                             hasTableIO() const;
+  virtual Handle(SALOME_InteractiveObject) getTableIO() const;
+  virtual void                             setTableIO( const Handle(SALOME_InteractiveObject)& );
   
 private:
   Handle(SALOME_InteractiveObject) myIO;