Add custom tickmark configuration for Summary Plot (#9867)

- Added custom tickmark configuration in time axis properties for `Time Mode = Date` 
- Refactor code to separate handling of time axis properties and regular axis properties in RimSummaryPlot
- Add method for setting major ticks by use of list for RiuPlotWidget interface.
This commit is contained in:
Jørgen Herje
2023-02-20 14:45:16 +01:00
committed by GitHub
parent f0e78f32e8
commit dfb942cc97
9 changed files with 532 additions and 126 deletions

View File

@@ -386,6 +386,17 @@ void RiuQwtPlotWidget::enableGridLines( RiuPlotAxis axis, bool majorGridLines, b
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuQwtPlotWidget::setMajorTicksList( RiuPlotAxis axis, const QList<double>& majorTicks, double minValue, double maxValue )
{
auto qwtAxis = toQwtPlotAxis( axis );
QwtScaleDiv scaleDiv( minValue, maxValue );
scaleDiv.setTicks( QwtScaleDiv::TickType::MajorTick, majorTicks );
m_plot->setAxisScaleDiv( qwtAxis, scaleDiv );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -395,12 +406,12 @@ void RiuQwtPlotWidget::setMajorAndMinorTickIntervals( RiuPlotAxis axis,
double minValue,
double maxValue )
{
auto qwtAxis = toQwtPlotAxis( axis );
auto* scaleEngine = dynamic_cast<RiuQwtLinearScaleEngine*>( m_plot->axisScaleEngine( qwtAxis ) );
if ( scaleEngine )
auto qwtAxis = toQwtPlotAxis( axis );
auto* linearScaleEngine = dynamic_cast<RiuQwtLinearScaleEngine*>( m_plot->axisScaleEngine( qwtAxis ) );
if ( linearScaleEngine )
{
QwtScaleDiv scaleDiv =
scaleEngine->divideScaleWithExplicitIntervals( minValue, maxValue, majorTickInterval, minorTickInterval );
linearScaleEngine->divideScaleWithExplicitIntervals( minValue, maxValue, majorTickInterval, minorTickInterval );
m_plot->setAxisScaleDiv( qwtAxis, scaleDiv );
}