X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPlot2d%2FPlot2d_ViewFrame.cxx;h=062e35493d9a45bbf2f90862642b718fef6a6cf7;hb=efe3cdefadc31ad9cdaa9fd7fc368e2931cebdf1;hp=1fd36d09b9a0d48de6fe6ef805860d634ef37935;hpb=c749d0058791f7355fda38093837c1a69bdfde48;p=modules%2Fgui.git diff --git a/src/Plot2d/Plot2d_ViewFrame.cxx b/src/Plot2d/Plot2d_ViewFrame.cxx index 1fd36d09b..062e35493 100755 --- a/src/Plot2d/Plot2d_ViewFrame.cxx +++ b/src/Plot2d/Plot2d_ViewFrame.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -75,13 +75,11 @@ #include #include #include +#include +#include #include #include -#include - -#include -#include #define DEFAULT_LINE_WIDTH 0 // (default) line width #define DEFAULT_MARKER_SIZE 9 // default marker size @@ -1642,10 +1640,10 @@ void Plot2d_ViewFrame::getFitRangeByMarkers(double& xMin, double& xMax, */ int Plot2d_ViewFrame::testOperation( const QMouseEvent& me ) { - int btn = me.button() | me.modifiers(); - const int zoomBtn = Qt::ControlModifier | Qt::LeftButton; - const int panBtn = Qt::ControlModifier | Qt::MidButton; - const int fitBtn = Qt::ControlModifier | Qt::RightButton; + int btn = (int)me.button() | (int)me.modifiers(); + const int zoomBtn = (int)Qt::ControlModifier | (int)Qt::LeftButton; + const int panBtn = (int)Qt::ControlModifier | (int)Qt::MidButton; + const int fitBtn = (int)Qt::ControlModifier | (int)Qt::RightButton; int op = NoOpId; if ( btn == zoomBtn ) { @@ -1902,8 +1900,6 @@ void Plot2d_ViewFrame::updateAnalyticalCurve(Plot2d_AnalyticalCurve* c, bool upd case Plot2d_AnalyticalCurve::ActRemoveFromView: item->hide(); item->detach(); - myAnalyticalCurves.removeAll(c); - delete c; break; } @@ -1917,8 +1913,19 @@ void Plot2d_ViewFrame::updateAnalyticalCurve(Plot2d_AnalyticalCurve* c, bool upd void Plot2d_ViewFrame::updateAnalyticalCurves() { AnalyticalCurveList::iterator it = myAnalyticalCurves.begin(); + AnalyticalCurveList toDelete; for( ; it != myAnalyticalCurves.end(); it++) { - updateAnalyticalCurve(*it); + Plot2d_AnalyticalCurve* c = (*it); + updateAnalyticalCurve(c); + if(c && c->getAction() == Plot2d_AnalyticalCurve::ActRemoveFromView) + toDelete.push_back(c); + } + it = toDelete.begin(); + for( ; it != toDelete.end(); it++) { + Plot2d_AnalyticalCurve* c = (*it); + myAnalyticalCurves.removeAll(c); + delete c; + c = NULL; } myPlot->replot(); } @@ -1928,7 +1935,7 @@ void Plot2d_ViewFrame::updateAnalyticalCurves() */ AnalyticalCurveList Plot2d_ViewFrame::getAnalyticalCurves() const { - return myAnalyticalCurves; + return myAnalyticalCurves ; } /*! @@ -1988,6 +1995,13 @@ void Plot2d_ViewFrame::setCurveType( int curveType, bool update ) if ( crv ) setCurveType( crv, myCurveType ); } + for(int i=0 ; i < myAnalyticalCurves.count(); i++) { + QwtPlotCurve* aPCurve = dynamic_cast( myAnalyticalCurves[i]->plotItem() ); + Plot2d_AnalyticalCurve* aCurve = dynamic_cast( myAnalyticalCurves[i] ); + if ( aPCurve && aCurve ) { + setCurveType( aPCurve, myCurveType ); + } + } if ( update ) myPlot->replot(); emit vpCurveChanged(); @@ -2676,7 +2690,7 @@ void Plot2d_ViewFrame::plotMousePressed( const QMouseEvent& me ) } } else { - int btn = me.button() | me.modifiers(); + int btn = (int)me.button() | (int)me.modifiers(); if (btn == Qt::RightButton) { QMouseEvent* aEvent = new QMouseEvent(QEvent::MouseButtonPress, me.pos(), me.button(), me.buttons(), me.modifiers() ); @@ -4292,6 +4306,12 @@ void Plot2d_AxisScaleDraw::draw( QPainter* painter, const QPalette & palette) co } +double Plot2d_AxisScaleDraw::extent( const QFont &font ) const +{ + QFontMetrics fm( font ); + return QwtScaleDraw::extent( font ) + fm.height() * 2; +} + QwtText Plot2d_AxisScaleDraw::label( double value) const { if (myLabelX.contains(value))