mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Summary Multi Plot : Improve default behaviour (#8885)
* Summary Multi Plot : Improve default behaviour - Perform zoom when stepping to next item - Set defaults for range aggregation and source stepping dimension based on content when creating a multi summary plot * Plot Axis Appearance : Do not use bold for text configuration * Improve how scale factor for legend values are computed * Improve defaults for range aggregation and step dimension * Reorder Capability : Get UI item before reordering is issued Get UI item before reordering is issued, as this operation will invalidate the tree model
This commit is contained in:
@@ -452,17 +452,25 @@ void RimPlotAxisProperties::setVisible( bool visible )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPlotAxisProperties::computeAndSetScaleFactor()
|
||||
{
|
||||
int exponent = std::log10( visibleRangeMax() );
|
||||
|
||||
while ( exponent > 0 && ( exponent % 3 ) != 0 )
|
||||
{
|
||||
exponent--;
|
||||
}
|
||||
auto maxAbsValue = std::max( std::fabs( visibleRangeMax() ), std::fabs( visibleRangeMin() ) );
|
||||
|
||||
int exponent = std::floor( std::log10( maxAbsValue ) );
|
||||
if ( exponent > 0 )
|
||||
{
|
||||
scaleFactor = std::pow( 10, exponent );
|
||||
while ( exponent > -20 && ( exponent % 3 ) != 0 )
|
||||
{
|
||||
exponent--;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
while ( exponent < 1 && ( exponent % 3 ) != 0 )
|
||||
{
|
||||
exponent++;
|
||||
}
|
||||
}
|
||||
|
||||
scaleFactor = std::pow( 10, exponent );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -639,6 +639,68 @@ void RimSummaryMultiPlot::zoomAll()
|
||||
syncAxisRanges();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryMultiPlot::setDefaultRangeAggregationSteppingDimension()
|
||||
{
|
||||
RiaSummaryAddressAnalyzer analyzer;
|
||||
|
||||
for ( auto p : summaryPlots() )
|
||||
{
|
||||
auto addresses = RimSummaryAddressModifier::createEclipseSummaryAddress( p );
|
||||
analyzer.appendAddresses( addresses );
|
||||
}
|
||||
|
||||
auto rangeAggregation = AxisRangeAggregation::SUB_PLOTS;
|
||||
|
||||
if ( !analyzer.wellNames().empty() )
|
||||
{
|
||||
rangeAggregation = AxisRangeAggregation::WELLS;
|
||||
}
|
||||
else if ( !analyzer.groupNames().empty() )
|
||||
{
|
||||
rangeAggregation = AxisRangeAggregation::SUB_PLOTS;
|
||||
}
|
||||
else if ( !analyzer.regionNumbers().empty() )
|
||||
{
|
||||
rangeAggregation = AxisRangeAggregation::REGIONS;
|
||||
}
|
||||
else if ( !analyzer.aquifers().empty() )
|
||||
{
|
||||
rangeAggregation = AxisRangeAggregation::SUB_PLOTS;
|
||||
}
|
||||
else if ( !analyzer.blocks().empty() )
|
||||
{
|
||||
rangeAggregation = AxisRangeAggregation::SUB_PLOTS;
|
||||
}
|
||||
|
||||
auto stepDimension = RimSummaryPlotSourceStepping::SourceSteppingDimension::QUANTITY;
|
||||
if ( analyzer.wellNames().size() == 1 )
|
||||
{
|
||||
stepDimension = RimSummaryPlotSourceStepping::SourceSteppingDimension::WELL;
|
||||
}
|
||||
else if ( analyzer.groupNames().size() == 1 )
|
||||
{
|
||||
stepDimension = RimSummaryPlotSourceStepping::SourceSteppingDimension::GROUP;
|
||||
}
|
||||
else if ( analyzer.regionNumbers().size() == 1 )
|
||||
{
|
||||
stepDimension = RimSummaryPlotSourceStepping::SourceSteppingDimension::REGION;
|
||||
}
|
||||
else if ( analyzer.aquifers().size() == 1 )
|
||||
{
|
||||
stepDimension = RimSummaryPlotSourceStepping::SourceSteppingDimension::AQUIFER;
|
||||
}
|
||||
else if ( analyzer.blocks().size() == 1 )
|
||||
{
|
||||
stepDimension = RimSummaryPlotSourceStepping::SourceSteppingDimension::BLOCK;
|
||||
}
|
||||
|
||||
m_axisRangeAggregation = rangeAggregation;
|
||||
m_sourceStepping->setStepDimension( stepDimension );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -101,6 +101,7 @@ public:
|
||||
|
||||
void zoomAll() override;
|
||||
|
||||
void setDefaultRangeAggregationSteppingDimension();
|
||||
void checkAndApplyAutoAppearance();
|
||||
|
||||
void keepVisiblePageAfterUpdate( bool keepPage );
|
||||
|
||||
@@ -132,10 +132,12 @@ void RimSummaryPlotAxisFormatter::applyAxisPropertiesToPlot( RiuPlotWidget* plot
|
||||
|
||||
m_axisProperties->setNameAndAxis( axisTitle, axis.axis(), axis.index() );
|
||||
plotWidget->setAxisTitleText( axis, axisTitle );
|
||||
|
||||
bool titleBold = false;
|
||||
plotWidget->setAxisFontsAndAlignment( axis,
|
||||
m_axisProperties->titleFontSize(),
|
||||
m_axisProperties->valuesFontSize(),
|
||||
true,
|
||||
titleBold,
|
||||
titleAlignment );
|
||||
plotWidget->setAxisTitleEnabled( axis, true );
|
||||
}
|
||||
|
||||
@@ -517,6 +517,7 @@ void RimSummaryPlotSourceStepping::fieldChangedByUi( const caf::PdmFieldHandle*
|
||||
{
|
||||
summaryMultiPlot->updatePlots();
|
||||
summaryMultiPlot->updatePlotWindowTitle();
|
||||
summaryMultiPlot->zoomAll();
|
||||
RiuPlotMainWindow* mainPlotWindow = RiaGuiApplication::instance()->mainPlotWindow();
|
||||
mainPlotWindow->updateMultiPlotToolBar();
|
||||
}
|
||||
@@ -1214,6 +1215,14 @@ RimSummaryPlotSourceStepping::SourceSteppingDimension RimSummaryPlotSourceSteppi
|
||||
return m_stepDimension();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryPlotSourceStepping::setStepDimension( SourceSteppingDimension dimension )
|
||||
{
|
||||
m_stepDimension = dimension;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -74,6 +74,7 @@ public:
|
||||
void syncWithStepper( RimSummaryPlotSourceStepping* other );
|
||||
|
||||
RimSummaryPlotSourceStepping::SourceSteppingDimension stepDimension() const;
|
||||
void setStepDimension( RimSummaryPlotSourceStepping::SourceSteppingDimension dimension );
|
||||
|
||||
void updateStepIndex( int direction );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user