Changeset - d09252498ce0
[Not reviewed]
Hasan Yavuz Ă–ZDERYA - 8 years ago 2017-08-16 09:06:32
hy@ozderya.net
don't move the x axis when moving vertical scroll

problem happens when x-axis is out of limit, extended zoom selection with rectangle tool
2 files changed with 14 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/scrollzoomer.cpp
Show inline comments
 
@@ -55,6 +55,7 @@ ScrollZoomer::ScrollZoomer( QWidget *can
 
    d_hScrollData = new ScrollData;
 
    d_vScrollData = new ScrollData;
 
    hscrollmove = false;
 
    vscrollmove = false;
 
}
 

	
 
ScrollZoomer::~ScrollZoomer()
 
@@ -150,7 +151,8 @@ void ScrollZoomer::rescale()
 

	
 
    // NOTE: Below snippet is copied from QwtPlotZoomer::rescale() just so that
 
    // we can refrain from updating y axis when moving horizontal scrollbar, so
 
    // that auto-scale isn't disrupted.
 
    // that auto-scale isn't disrupted. Also we don't want to jump around in
 
    // x-axis when moving vertical scroll.
 
    {
 
        QwtPlot *plt = plot();
 
        if ( !plt )
 
@@ -162,12 +164,15 @@ void ScrollZoomer::rescale()
 
            const bool doReplot = plt->autoReplot();
 
            plt->setAutoReplot( false );
 

	
 
            double x1 = rect.left();
 
            double x2 = rect.right();
 
            if ( !plt->axisScaleDiv( xAxis() ).isIncreasing() )
 
                qSwap( x1, x2 );
 
            if (!vscrollmove)
 
            {
 
                double x1 = rect.left();
 
                double x2 = rect.right();
 
                if ( !plt->axisScaleDiv( xAxis() ).isIncreasing() )
 
                    qSwap( x1, x2 );
 

	
 
            plt->setAxisScale( xAxis(), x1, x2 );
 
                plt->setAxisScale( xAxis(), x1, x2 );
 
            }
 

	
 
            if (!hscrollmove)
 
            {
 
@@ -544,7 +549,9 @@ void ScrollZoomer::scrollBarMoved(
 
    }
 
    else
 
    {
 
        vscrollmove = true;
 
        moveTo( QPointF( zoomRect().left(), min ) );
 
        vscrollmove = false;
 
    }
 

	
 
    Q_EMIT zoomed( zoomRect() );
src/scrollzoomer.h
Show inline comments
 
@@ -82,6 +82,7 @@ private:
 
    bool d_inZoom;
 
    bool d_alignCanvasToScales[ QwtPlot::axisCnt ];
 
    bool hscrollmove;
 
    bool vscrollmove;
 
};
 

	
 
#endif
0 comments (0 inline, 0 general)