mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Merge pull request #8387 from OPM/qtcharts-summary-plots
Closes #8228 Major refactoring of summary plotting. Now possible to create plots both with Qwt and QtChart as plotting tool.
This commit is contained in:
committed by
GitHub
parent
d9bb82de91
commit
258fbddc10
@@ -18,12 +18,15 @@
|
||||
|
||||
#include "RimAnalysisPlot.h"
|
||||
|
||||
#include "RiaDefines.h"
|
||||
#include "RiaPlotDefines.h"
|
||||
#include "RiaPreferences.h"
|
||||
#include "RiaSummaryCurveDefinition.h"
|
||||
#include "RiaTextStringTools.h"
|
||||
|
||||
#include "RiuGroupedBarChartBuilder.h"
|
||||
#include "RiuPlotMainWindowTools.h"
|
||||
#include "RiuQwtPlotTools.h"
|
||||
#include "RiuSummaryQwtPlot.h"
|
||||
#include "RiuSummaryVectorSelectionDialog.h"
|
||||
|
||||
@@ -159,7 +162,7 @@ RimAnalysisPlot::RimAnalysisPlot()
|
||||
CAF_PDM_InitFieldNoDefault( &m_valueAxisProperties, "ValueAxisProperties", "ValueAxisProperties" );
|
||||
m_valueAxisProperties.uiCapability()->setUiTreeHidden( true );
|
||||
m_valueAxisProperties = new RimPlotAxisProperties;
|
||||
m_valueAxisProperties->setNameAndAxis( "Value-Axis", QwtPlot::yLeft );
|
||||
m_valueAxisProperties->setNameAndAxis( "Value-Axis", RiuQwtPlotTools::fromQwtPlotAxis( QwtPlot::yLeft ) );
|
||||
m_valueAxisProperties->enableRangeSettings( false );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_plotDataFilterCollection, "PlotDataFilterCollection", "PlotDataFilterCollection" );
|
||||
@@ -772,26 +775,26 @@ void RimAnalysisPlot::onLoadDataAndUpdate()
|
||||
|
||||
if ( m_plotWidget )
|
||||
{
|
||||
m_plotWidget->detachItems( QwtPlotItem::Rtti_PlotBarChart );
|
||||
m_plotWidget->detachItems( QwtPlotItem::Rtti_PlotScale );
|
||||
m_plotWidget->qwtPlot()->detachItems( QwtPlotItem::Rtti_PlotBarChart );
|
||||
m_plotWidget->qwtPlot()->detachItems( QwtPlotItem::Rtti_PlotScale );
|
||||
|
||||
RiuGroupedBarChartBuilder chartBuilder;
|
||||
chartBuilder.setLabelFontSize( barTextFontSize() );
|
||||
// buildTestPlot( chartBuilder );
|
||||
addDataToChartBuilder( chartBuilder );
|
||||
|
||||
chartBuilder.addBarChartToPlot( m_plotWidget,
|
||||
chartBuilder.addBarChartToPlot( m_plotWidget->qwtPlot(),
|
||||
m_barOrientation == BARS_HORIZONTAL ? Qt::Horizontal : Qt::Vertical,
|
||||
m_useTopBarsFilter() ? m_maxBarCount : -1 );
|
||||
|
||||
if ( m_showPlotLegends && m_plotWidget->legend() == nullptr )
|
||||
if ( m_showPlotLegends && m_plotWidget->qwtPlot()->legend() == nullptr )
|
||||
{
|
||||
QwtLegend* legend = new QwtLegend( m_plotWidget );
|
||||
m_plotWidget->insertLegend( legend, QwtPlot::RightLegend );
|
||||
m_plotWidget->qwtPlot()->insertLegend( legend, QwtPlot::RightLegend );
|
||||
}
|
||||
else if ( !m_showPlotLegends )
|
||||
{
|
||||
m_plotWidget->insertLegend( nullptr );
|
||||
m_plotWidget->qwtPlot()->insertLegend( nullptr );
|
||||
}
|
||||
|
||||
m_plotWidget->setLegendFontSize( legendFontSize() );
|
||||
@@ -829,7 +832,7 @@ QString RimAnalysisPlot::description() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuQwtPlotWidget* RimAnalysisPlot::doCreatePlotViewWidget( QWidget* mainWindowParent /*= nullptr */ )
|
||||
RiuPlotWidget* RimAnalysisPlot::doCreatePlotViewWidget( QWidget* mainWindowParent /*= nullptr */ )
|
||||
{
|
||||
if ( !m_plotWidget )
|
||||
{
|
||||
@@ -847,12 +850,20 @@ RiuQwtPlotWidget* RimAnalysisPlot::viewer()
|
||||
return m_plotWidget;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuPlotWidget* RimAnalysisPlot::plotWidget()
|
||||
{
|
||||
return m_plotWidget;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimAnalysisPlot::detachAllCurves()
|
||||
{
|
||||
if ( m_plotWidget ) m_plotWidget->detachItems();
|
||||
if ( m_plotWidget ) m_plotWidget->qwtPlot()->detachItems();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -862,29 +873,29 @@ void RimAnalysisPlot::updateAxes()
|
||||
{
|
||||
if ( !m_plotWidget ) return;
|
||||
|
||||
QwtPlot::Axis qwtAxis = QwtPlot::yLeft;
|
||||
RiaDefines::PlotAxis axis = RiaDefines::PlotAxis::PLOT_AXIS_LEFT;
|
||||
if ( m_barOrientation == BARS_HORIZONTAL )
|
||||
{
|
||||
qwtAxis = QwtPlot::xBottom;
|
||||
m_plotWidget->setAxisTitleEnabled( QwtPlot::yLeft, false );
|
||||
axis = RiaDefines::PlotAxis::PLOT_AXIS_BOTTOM;
|
||||
m_plotWidget->setAxisTitleEnabled( RiaDefines::PlotAxis::PLOT_AXIS_LEFT, false );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_plotWidget->setAxisTitleEnabled( QwtPlot::xBottom, false );
|
||||
m_plotWidget->setAxisTitleEnabled( RiaDefines::PlotAxis::PLOT_AXIS_BOTTOM, false );
|
||||
}
|
||||
|
||||
RimPlotAxisProperties* valAxisProperties = m_valueAxisProperties();
|
||||
if ( valAxisProperties->isActive() )
|
||||
{
|
||||
m_plotWidget->enableAxis( qwtAxis, true );
|
||||
m_valueAxisProperties->setNameAndAxis( "Value-Axis", qwtAxis );
|
||||
m_plotWidget->enableAxis( axis, true );
|
||||
m_valueAxisProperties->setNameAndAxis( "Value-Axis", axis );
|
||||
|
||||
RimSummaryPlotAxisFormatter calc( valAxisProperties, {}, curveDefinitions(), {}, {} );
|
||||
calc.applyAxisPropertiesToPlot( m_plotWidget );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_plotWidget->enableAxis( qwtAxis, false );
|
||||
m_plotWidget->enableAxis( axis, false );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -127,22 +127,20 @@ private:
|
||||
|
||||
// RimPlot Overrides
|
||||
|
||||
RiuQwtPlotWidget* doCreatePlotViewWidget( QWidget* mainWindowParent = nullptr ) override;
|
||||
RiuQwtPlotWidget* viewer() override;
|
||||
RiuPlotWidget* doCreatePlotViewWidget( QWidget* mainWindowParent = nullptr ) override;
|
||||
RiuQwtPlotWidget* viewer();
|
||||
RiuPlotWidget* plotWidget() override;
|
||||
|
||||
void detachAllCurves() override;
|
||||
|
||||
void reattachAllCurves() override {}
|
||||
void updateAxes() override;
|
||||
void onAxisSelected( int axis, bool toggle ) override;
|
||||
void updateZoomInQwt() override {}
|
||||
void updateZoomFromQwt() override {}
|
||||
void setAutoScaleXEnabled( bool enabled ) override {}
|
||||
void setAutoScaleYEnabled( bool enabled ) override {}
|
||||
void updateLegend() override{};
|
||||
|
||||
QString asciiDataForPlotExport() const override { return ""; }
|
||||
caf::PdmObject* findPdmObjectFromQwtCurve( const QwtPlotCurve* curve ) const override { return nullptr; }
|
||||
QString asciiDataForPlotExport() const override { return ""; }
|
||||
|
||||
// Private methods
|
||||
|
||||
|
||||
Reference in New Issue
Block a user