]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
DIAGRAM 0000564: External 560: Manual graphic parametrization should be permanent...
authorouv <oleg.uvarov@opencascade.com>
Tue, 29 Dec 2015 08:18:25 +0000 (11:18 +0300)
committerouv <oleg.uvarov@opencascade.com>
Tue, 29 Dec 2015 08:18:25 +0000 (11:18 +0300)
src/Plot2d/Plot2d_ViewFrame.cxx
src/Plot2d/Plot2d_ViewFrame.h
src/Qtx/QtxWorkstack.cxx
src/Qtx/QtxWorkstack.h

index b591d72748b300b35ce7f812184619d404c3d38f..329127cb0e10226a09457cb8180bb75ac8832dc2 100755 (executable)
@@ -229,6 +229,8 @@ Plot2d_ViewFrame::Plot2d_ViewFrame( QWidget* parent, const QString& title )
     myYDistance2 = yMap2.s2() - yMap2.s1();
   }
   myPlot->canvas()->installEventFilter( this );
+
+  connect( myPlot, SIGNAL( plotZoomed() ), this, SIGNAL( manualTransformationApplied() ) );
 }
 /*!
   Destructor
@@ -864,6 +866,8 @@ void Plot2d_ViewFrame::fitAll()
     myPlot->setAxisScale( QwtPlot::yRight, yMap2.s1(), yMap2.s2() );
   }
   myPlot->replot();
+
+  emit fitAllApplied();
 }
 
 /*!
@@ -891,6 +895,8 @@ void Plot2d_ViewFrame::fitArea( const QRect& area )
             myPlot->invTransform( QwtPlot::xBottom, rect.left() ), 
             myPlot->invTransform( QwtPlot::xBottom, rect.right() ) );
   myPlot->replot();
+
+  emit manualTransformationApplied();
 }
 
 /*!
@@ -909,6 +915,8 @@ void Plot2d_ViewFrame::fitData(const int mode,
   if ( mode == 0 || mode == 1 ) 
     myPlot->setAxisScale( QwtPlot::xBottom, xMin, xMax ); 
   myPlot->replot();
+
+  emit manualTransformationApplied();
 }
 
 /*!
@@ -1731,6 +1739,7 @@ void Plot2d_ViewFrame::plotMousePressed( const QMouseEvent& me )
           myPlot->invTransform( QwtPlot::yRight, myPnt.y() ) - myYDistance2/2, 
           myPlot->invTransform( QwtPlot::yRight, myPnt.y() ) + myYDistance2/2 );
       myPlot->replot();
+      emit manualTransformationApplied();
     }
   }
   else {
@@ -2216,6 +2225,8 @@ Plot2d_Plot2d::Plot2d_Plot2d( QWidget* parent )
   canvas()->setMouseTracking( true );
 
   myPlotZoomer->setEnabled( true );
+
+  connect( myPlotZoomer, SIGNAL( zoomed( const QwtDoubleRect& ) ), this, SIGNAL( plotZoomed() ) );
 }
 
 /*!
@@ -2793,6 +2804,8 @@ void Plot2d_ViewFrame::incrementalPan( const int incrX, const int incrY ) {
                          myPlot->invTransform( QwtPlot::yRight, y2Map.transform( y2Map.s2() )-incrY ) );
   }
   myPlot->replot();
+
+  emit manualTransformationApplied();
 }
 
 /*!
@@ -2812,6 +2825,8 @@ void Plot2d_ViewFrame::incrementalZoom( const int incrX, const int incrY ) {
                          myPlot->invTransform( QwtPlot::yRight, y2Map.transform( y2Map.s2() ) + incrY ) );
   }
   myPlot->replot();
+
+  emit manualTransformationApplied();
 }
 
 #define INCREMENT_FOR_OP 10
index e30ea613997b90341cc48d1429d9a6cf5d864d60..dd702110702c0dfb6f06a99dd4f45d5b9c618323 100755 (executable)
@@ -204,7 +204,9 @@ signals:
   void   yRangeUpdated( const double&, const double&, const double&, const double&);
   void   bothRangesUpdated( const double&, const double&, const double&, 
                              const double&, const double&, const double& );
-  
+  void    manualTransformationApplied();
+  void    fitAllApplied();
+
 protected:
   Plot2d_Plot2d* myPlot;
   int            myOperation;
@@ -291,6 +293,9 @@ public slots:
 protected:
   bool       existMarker( const QwtSymbol::Style typeMarker, const QColor& color, const Qt::PenStyle typeLine );
 
+signals:
+  void                plotZoomed();
+
 protected:
   CurveDict          myCurves;
   QwtPlotGrid*       myGrid;
index fffc0f9969e923a80b811d4752c641e3a061bcb2..4a9fefc0afa90001407e400c4003ada42c4678b6 100644 (file)
@@ -3235,6 +3235,29 @@ bool QtxWorkstack::move( QWidget* wid, QWidget* wid_to, const bool before )
   return false;
 }
 
+/*!
+  \brief Moves the widget to the end of its area
+  \param wid widget to be moved
+  \return TRUE if operation is completed successfully, FALSE otherwise 
+*/
+bool QtxWorkstack::moveToEnd( QWidget* wid )
+{
+  if ( wid )
+  {
+    QtxWorkstackArea* area = wgArea( wid );
+    if ( area )
+    {
+      // find index of the second widget
+      QWidgetList wgList = area->widgetList();
+      int idx = wgList.count(); 
+      area->removeWidget( wid, true );
+      area->insertWidget( wid, idx );
+      return true;
+    }
+  }
+  return false;
+}
+
 /*!
   \brief Group all windows in one area
   \return TRUE if operation is completed successfully, FALSE otherwise 
index 757e3c801e103ff6fe71331b4067caa59508ee98..02b449841efd6d290ad7fa75802172fd4da53720 100644 (file)
@@ -88,6 +88,7 @@ public:
 
   void                split( const int );
   bool                move( QWidget* wid, QWidget* wid_to, const bool before );
+  bool                moveToEnd( QWidget* wid );
   void                stack();
 
   QWidget*            addWindow( QWidget*, Qt::WindowFlags = 0 );