From 0cef7c6d6ae72f7886f073e75f9e0c5ff8eb758c Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Mon, 30 Nov 2020 15:26:31 +0100 Subject: [PATCH] #7048 Grid Cross Plot: Fix inverted Y-axis for user-defined min/max range --- .../GridCrossPlots/RimGridCrossPlot.cpp | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlot.cpp b/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlot.cpp index f65e349b22..a54b3ec7b5 100644 --- a/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlot.cpp +++ b/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlot.cpp @@ -886,24 +886,21 @@ void RimGridCrossPlot::updateAxisInQwt( RiaDefines::PlotAxis axisType ) m_plotWidget->setAxisMaxMinor( axisProperties->qwtPlotAxisType(), 5 ); } + double min = axisProperties->visibleRangeMin; + double max = axisProperties->visibleRangeMax; if ( axisProperties->isAutoZoom() ) { std::vector plotCurves = visibleQwtCurves(); - double min, max; RimPlotAxisLogRangeCalculator logRangeCalculator( qwtAxisId, plotCurves ); logRangeCalculator.computeAxisRange( &min, &max ); - if ( axisProperties->isAxisInverted() ) - { - std::swap( min, max ); - } + } - m_plotWidget->setAxisScale( qwtAxisId, min, max ); - } - else + if ( axisProperties->isAxisInverted() ) { - m_plotWidget->setAxisScale( qwtAxisId, axisProperties->visibleRangeMin, axisProperties->visibleRangeMax ); + std::swap( min, max ); } + m_plotWidget->setAxisScale( qwtAxisId, min, max ); } else { @@ -918,14 +915,21 @@ void RimGridCrossPlot::updateAxisInQwt( RiaDefines::PlotAxis axisType ) if ( axisProperties->isAutoZoom() ) { m_plotWidget->setAxisAutoScale( qwtAxisId ); + m_plotWidget->axisScaleEngine( axisProperties->qwtPlotAxisType() ) + ->setAttribute( QwtScaleEngine::Inverted, axisProperties->isAxisInverted() ); } else { - m_plotWidget->setAxisScale( qwtAxisId, axisProperties->visibleRangeMin, axisProperties->visibleRangeMax ); + double min = axisProperties->visibleRangeMin; + double max = axisProperties->visibleRangeMax; + if ( axisProperties->isAxisInverted() ) + { + std::swap( min, max ); + } + + m_plotWidget->setAxisScale( qwtAxisId, min, max ); } } - m_plotWidget->axisScaleEngine( axisProperties->qwtPlotAxisType() ) - ->setAttribute( QwtScaleEngine::Inverted, axisProperties->isAxisInverted() ); } else {