mirror of
https://github.com/OPM/ResInsight.git
synced 2026-08-26 21:27:15 -05:00
#12790 Replaces transparency with opacity settings
Simplifies color handling by replacing transparency settings with opacity for curve and fill colors. This change provides a more intuitive user experience and ensures consistent behavior across the application. - Renames "ColorTransparency" to "ColorOpacity" for RimCurveSetAppearance. - Introduces "CurveColorOpacity" for RimPlotCurveAppearance. - Updates blending calculations to correctly use opacity. - Adjusts UI slider attributes for opacity settings, including minimum, maximum and decimals.
This commit is contained in:
@@ -79,8 +79,10 @@ RimCurveSetAppearance::RimCurveSetAppearance()
|
||||
|
||||
CAF_PDM_InitField( &m_colorForRealizations, "Color", RiaColorTools::textColor3f(), "Color" );
|
||||
CAF_PDM_InitField( &m_mainEnsembleColor, "MainEnsembleColor", RiaColorTools::textColor3f(), "Color" );
|
||||
CAF_PDM_InitField( &m_colorTransparency, "ColorTransparency", 0.3, "Transparency" );
|
||||
m_colorTransparency.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||
|
||||
CAF_PDM_InitField( &m_colorOpacity, "ColorOpacity", 0.7, "Opacity" );
|
||||
m_colorOpacity.registerKeywordAlias( "ColorTransparency" );
|
||||
m_colorOpacity.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||
|
||||
CAF_PDM_InitField( &m_ensembleParameter, "EnsembleParameter", QString( "" ), "Parameter" );
|
||||
m_ensembleParameter.uiCapability()->setUiEditorTypeName( caf::PdmUiTreeSelectionEditor::uiEditorTypeName() );
|
||||
@@ -209,7 +211,7 @@ void RimCurveSetAppearance::updateEnsembleParameterLegend( RimRegularLegendConfi
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCurveSetAppearance::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue )
|
||||
{
|
||||
if ( changedField == &m_colorMode || changedField == &m_colorTransparency || changedField == &m_mainEnsembleColor )
|
||||
if ( changedField == &m_colorMode || changedField == &m_colorOpacity || changedField == &m_mainEnsembleColor )
|
||||
{
|
||||
updateRealizationColor();
|
||||
}
|
||||
@@ -243,7 +245,7 @@ void RimCurveSetAppearance::updateRealizationColor()
|
||||
|
||||
auto sourceColor = RiaColorTools::toQColor( m_mainEnsembleColor );
|
||||
auto sourceWeight = 100;
|
||||
int backgroundWeight = std::max( 1, static_cast<int>( sourceWeight * 10 * m_colorTransparency ) );
|
||||
int backgroundWeight = std::max( 1, static_cast<int>( sourceWeight * 5 * ( 1.0 - m_colorOpacity ) ) );
|
||||
auto blendedColor = RiaColorTools::blendQColors( backgroundColor, sourceColor, backgroundWeight, sourceWeight );
|
||||
|
||||
m_colorForRealizations = RiaColorTools::fromQColorTo3f( blendedColor );
|
||||
@@ -268,7 +270,7 @@ void RimCurveSetAppearance::defineUiOrdering( QString uiConfigName, caf::PdmUiOr
|
||||
else if ( m_colorMode() == RimEnsembleCurveSetColorManager::ColorMode::SINGLE_COLOR_WITH_ALPHA )
|
||||
{
|
||||
uiOrdering.add( &m_mainEnsembleColor );
|
||||
uiOrdering.add( &m_colorTransparency );
|
||||
uiOrdering.add( &m_colorOpacity );
|
||||
}
|
||||
else if ( m_colorMode == ColorMode::BY_ENSEMBLE_PARAM )
|
||||
{
|
||||
@@ -338,3 +340,19 @@ QList<caf::PdmOptionItemInfo> RimCurveSetAppearance::calculateValueOptions( cons
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCurveSetAppearance::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute )
|
||||
{
|
||||
if ( field == &m_colorOpacity )
|
||||
{
|
||||
if ( auto* myAttr = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>( attribute ) )
|
||||
{
|
||||
myAttr->m_minimum = 0.001;
|
||||
myAttr->m_maximum = 1.0;
|
||||
myAttr->m_decimals = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,6 +68,7 @@ private:
|
||||
void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override;
|
||||
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
||||
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
|
||||
void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;
|
||||
|
||||
void updateRealizationColor();
|
||||
void updateEnsembleParameterLegend( RimRegularLegendConfig* legendConfig ) const;
|
||||
@@ -76,7 +77,7 @@ private:
|
||||
caf::PdmField<ColorModeEnum> m_colorMode;
|
||||
caf::PdmField<cvf::Color3f> m_mainEnsembleColor;
|
||||
caf::PdmField<cvf::Color3f> m_colorForRealizations;
|
||||
caf::PdmField<double> m_colorTransparency;
|
||||
caf::PdmField<double> m_colorOpacity;
|
||||
caf::PdmField<QString> m_ensembleParameter;
|
||||
caf::PdmField<caf::AppEnum<RimCurveAppearanceDefines::ParameterSorting>> m_ensembleParameterSorting;
|
||||
|
||||
|
||||
@@ -477,6 +477,6 @@ void RimHistogramCurve::setAppearanceFromGraphType( RimHistogramPlot::GraphType
|
||||
{
|
||||
auto fillType = graphType == RimHistogramPlot::GraphType::BAR_GRAPH ? Qt::SolidPattern : Qt::NoBrush;
|
||||
setFillStyle( fillType );
|
||||
float transparency = graphType == RimHistogramPlot::GraphType::BAR_GRAPH ? 0.2 : 1.0;
|
||||
setFillColorTransparency( transparency );
|
||||
float opacity = graphType == RimHistogramPlot::GraphType::BAR_GRAPH ? 0.2 : 1.0;
|
||||
setFillColorOpacity( opacity );
|
||||
}
|
||||
|
||||
@@ -727,9 +727,17 @@ void RimPlotCurve::setFillColor( const cvf::Color3f& fillColor )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPlotCurve::setFillColorTransparency( float fillColorTransparency )
|
||||
void RimPlotCurve::setFillColorOpacity( float opacity )
|
||||
{
|
||||
m_curveAppearance->setFillColorTransparency( fillColorTransparency );
|
||||
m_curveAppearance->setFillColorOpacity( opacity );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPlotCurve::setCurveColorOpacity( float opacity )
|
||||
{
|
||||
m_curveAppearance->setCurveColorOpacity( opacity );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -969,7 +977,7 @@ void RimPlotCurve::setZOrder( double z )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPlotCurve::updateCurveAppearance()
|
||||
{
|
||||
QColor curveColor = RiaColorTools::toQColor( m_curveAppearance->color() );
|
||||
QColor curveColor = RiaColorTools::toQColor( m_curveAppearance->color(), m_curveAppearance->curveColorOpacity() );
|
||||
|
||||
if ( !m_plotCurve ) return;
|
||||
|
||||
@@ -1015,7 +1023,7 @@ void RimPlotCurve::updateCurveAppearance()
|
||||
QColor fillColor = RiaColorTools::toQColor( m_curveAppearance->fillColor() );
|
||||
|
||||
fillColor = RiaColorTools::blendQColors( fillColor, QColor( Qt::white ), 3, 1 );
|
||||
fillColor.setAlphaF( m_curveAppearance->fillColorTransparency() );
|
||||
fillColor.setAlphaF( m_curveAppearance->fillColorOpacity() );
|
||||
|
||||
QBrush fillBrush( fillColor, fillStyle() );
|
||||
m_plotCurve->setAppearance( m_curveAppearance->lineStyle(),
|
||||
|
||||
@@ -77,7 +77,8 @@ public:
|
||||
virtual Qt::BrushStyle fillStyle() const;
|
||||
void setFillStyle( Qt::BrushStyle brushStyle );
|
||||
void setFillColor( const cvf::Color3f& fillColor );
|
||||
void setFillColorTransparency( float fillColorTransparency );
|
||||
void setFillColorOpacity( float opacity );
|
||||
void setCurveColorOpacity( float opacity );
|
||||
|
||||
bool isChecked() const;
|
||||
void setCheckState( bool isChecked );
|
||||
|
||||
@@ -88,9 +88,16 @@ RimPlotCurveAppearance::RimPlotCurveAppearance()
|
||||
CAF_PDM_InitObject( "Curve Apperance" );
|
||||
|
||||
CAF_PDM_InitField( &m_curveColor, "Color", RiaColorTools::textColor3f(), "Color" );
|
||||
|
||||
CAF_PDM_InitField( &m_curveColorOpacity, "CurveColorOpacity", 1.0f, "Opacity" );
|
||||
m_curveColorOpacity.registerKeywordAlias( "CurveColorTransparency" );
|
||||
m_curveColorOpacity.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||
|
||||
CAF_PDM_InitField( &m_fillColor, "FillColor", cvf::Color3f( -1.0, -1.0, -1.0 ), "Fill Color" );
|
||||
CAF_PDM_InitField( &m_fillColorTransparency, "FillColorTransparency", 1.0f, "Fill Color Transparency" );
|
||||
m_fillColorTransparency.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||
|
||||
CAF_PDM_InitField( &m_fillColorOpacity, "FillColorOpacity", 1.0f, "Fill Color Opacity" );
|
||||
m_fillColorOpacity.registerKeywordAlias( "FillColorTransparency" );
|
||||
m_fillColorOpacity.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||
|
||||
CAF_PDM_InitField( &m_curveThickness, "Thickness", 1, "Line Thickness" );
|
||||
m_curveThickness.uiCapability()->setUiEditorTypeName( caf::PdmUiComboBoxEditor::uiEditorTypeName() );
|
||||
@@ -151,13 +158,13 @@ void RimPlotCurveAppearance::fieldChangedByUi( const caf::PdmFieldHandle* change
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPlotCurveAppearance ::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute )
|
||||
{
|
||||
if ( field == &m_fillColorTransparency )
|
||||
if ( field == &m_curveColorOpacity || field == &m_fillColorOpacity )
|
||||
{
|
||||
caf::PdmUiDoubleSliderEditorAttribute* myAttr = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>( attribute );
|
||||
if ( myAttr )
|
||||
if ( auto myAttr = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>( attribute ) )
|
||||
{
|
||||
myAttr->m_minimum = 0.0;
|
||||
myAttr->m_maximum = 1.0;
|
||||
myAttr->m_minimum = 0.0;
|
||||
myAttr->m_maximum = 1.0;
|
||||
myAttr->m_decimals = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -205,7 +212,9 @@ void RimPlotCurveAppearance::setColorWithFieldChanged( const QColor& color )
|
||||
void RimPlotCurveAppearance::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
||||
{
|
||||
uiOrdering.add( &m_curveColor );
|
||||
uiOrdering.add( &m_curveColorOpacity );
|
||||
m_curveColor.uiCapability()->setUiHidden( !m_colorVisible );
|
||||
m_curveColorOpacity.uiCapability()->setUiHidden( !m_colorVisible );
|
||||
|
||||
uiOrdering.add( &m_pointSymbol );
|
||||
if ( RiuPlotCurveSymbol::isFilledSymbol( m_pointSymbol() ) )
|
||||
@@ -229,10 +238,10 @@ void RimPlotCurveAppearance::defineUiOrdering( QString uiConfigName, caf::PdmUiO
|
||||
if ( m_fillStyle != Qt::BrushStyle::NoBrush )
|
||||
{
|
||||
uiOrdering.add( &m_fillColor );
|
||||
uiOrdering.add( &m_fillColorTransparency );
|
||||
uiOrdering.add( &m_fillColorOpacity );
|
||||
}
|
||||
m_fillColor.uiCapability()->setUiHidden( !m_fillOptionsVisible );
|
||||
m_fillColorTransparency.uiCapability()->setUiHidden( !m_fillOptionsVisible );
|
||||
m_fillColorOpacity.uiCapability()->setUiHidden( !m_fillOptionsVisible );
|
||||
|
||||
uiOrdering.add( &m_curveInterpolation );
|
||||
m_curveInterpolation.uiCapability()->setUiHidden( !m_interpolationVisible );
|
||||
@@ -443,17 +452,17 @@ void RimPlotCurveAppearance::setFillColor( const cvf::Color3f& fillColor )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPlotCurveAppearance::setFillColorTransparency( float fillColorTransparency )
|
||||
void RimPlotCurveAppearance::setFillColorOpacity( float opacity )
|
||||
{
|
||||
m_fillColorTransparency = fillColorTransparency;
|
||||
m_fillColorOpacity = opacity;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
float RimPlotCurveAppearance::fillColorTransparency() const
|
||||
float RimPlotCurveAppearance::fillColorOpacity() const
|
||||
{
|
||||
return m_fillColorTransparency;
|
||||
return m_fillColorOpacity;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -503,3 +512,19 @@ void RimPlotCurveAppearance::setCurveFittingToleranceVisible( bool isVisible )
|
||||
{
|
||||
m_curveFittingToleranceVisible = isVisible;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPlotCurveAppearance::setCurveColorOpacity( float opacity )
|
||||
{
|
||||
m_curveColorOpacity = opacity;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
float RimPlotCurveAppearance::curveColorOpacity() const
|
||||
{
|
||||
return m_curveColorOpacity;
|
||||
}
|
||||
|
||||
@@ -86,8 +86,11 @@ public:
|
||||
void setFillColor( const cvf::Color3f& fillColor );
|
||||
cvf::Color3f fillColor() const;
|
||||
|
||||
void setFillColorTransparency( float fillColorTransparency );
|
||||
float fillColorTransparency() const;
|
||||
void setCurveColorOpacity( float opacity );
|
||||
float curveColorOpacity() const;
|
||||
|
||||
void setFillColorOpacity( float opacity );
|
||||
float fillColorOpacity() const;
|
||||
|
||||
float curveFittingTolerance() const;
|
||||
|
||||
@@ -114,6 +117,7 @@ protected:
|
||||
caf::PdmField<int> m_symbolSize;
|
||||
|
||||
caf::PdmField<cvf::Color3f> m_curveColor;
|
||||
caf::PdmField<float> m_curveColorOpacity;
|
||||
caf::PdmField<int> m_curveThickness;
|
||||
caf::PdmField<float> m_symbolSkipPixelDistance;
|
||||
|
||||
@@ -123,7 +127,7 @@ protected:
|
||||
caf::PdmField<LineStyle> m_lineStyle;
|
||||
caf::PdmField<FillStyle> m_fillStyle;
|
||||
caf::PdmField<cvf::Color3f> m_fillColor;
|
||||
caf::PdmField<float> m_fillColorTransparency;
|
||||
caf::PdmField<float> m_fillColorOpacity;
|
||||
caf::PdmField<CurveInterpolation> m_curveInterpolation;
|
||||
caf::PdmField<LabelPosition> m_symbolLabelPosition;
|
||||
caf::PdmField<cvf::Color3f> m_symbolEdgeColor;
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
#include "cafPdmUiTreeAttributes.h"
|
||||
#include "cafPdmUiTreeOrdering.h"
|
||||
#include "cafPdmUiTreeSelectionEditor.h"
|
||||
#include "cafSelectionManager.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
@@ -151,12 +152,11 @@ RimEnsembleCurveSet::RimEnsembleCurveSet()
|
||||
m_xAddressSelector->setShowResampling( false );
|
||||
m_xAddressSelector.uiCapability()->setUiTreeChildrenHidden( true );
|
||||
|
||||
CAF_PDM_InitField( &m_colorMode, "ColorMode", caf::AppEnum<ColorMode>( ColorMode::SINGLE_COLOR_WITH_ALPHA ), "Coloring Mode" );
|
||||
CAF_PDM_InitField( &m_colorMode, "ColorMode", caf::AppEnum<ColorMode>( ColorMode::SINGLE_COLOR ), "Coloring Mode" );
|
||||
|
||||
CAF_PDM_InitField( &m_colorForRealizations, "Color", RiaColorTools::textColor3f(), "Color" );
|
||||
CAF_PDM_InitField( &m_mainEnsembleColor, "MainEnsembleColor", RiaColorTools::textColor3f(), "Color" );
|
||||
CAF_PDM_InitField( &m_colorTransparency, "ColorTransparency", 0.3, "Transparency" );
|
||||
m_colorTransparency.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||
CAF_PDM_InitField( &m_colorOpacity, "ColorTransparency", 0.8, "Opacity [0..1]" );
|
||||
m_colorOpacity.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||
|
||||
CAF_PDM_InitField( &m_ensembleParameter, "EnsembleParameter", QString( "" ), "Parameter" );
|
||||
m_ensembleParameter.uiCapability()->setUiEditorTypeName( caf::PdmUiTreeSelectionEditor::uiEditorTypeName() );
|
||||
@@ -310,7 +310,7 @@ void RimEnsembleCurveSet::setColor( cvf::Color3f color )
|
||||
{
|
||||
m_mainEnsembleColor = color;
|
||||
|
||||
setTransparentCurveColor();
|
||||
computeRealizationColor();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -925,9 +925,9 @@ void RimEnsembleCurveSet::fieldChangedByUi( const caf::PdmFieldHandle* changedFi
|
||||
{
|
||||
updateAllCurves();
|
||||
}
|
||||
else if ( changedField == &m_colorForRealizations || changedField == &m_mainEnsembleColor || changedField == &m_colorTransparency )
|
||||
else if ( changedField == &m_mainEnsembleColor || changedField == &m_colorOpacity )
|
||||
{
|
||||
setTransparentCurveColor();
|
||||
computeRealizationColor();
|
||||
|
||||
updateCurveColors();
|
||||
|
||||
@@ -984,7 +984,7 @@ void RimEnsembleCurveSet::fieldChangedByUi( const caf::PdmFieldHandle* changedFi
|
||||
}
|
||||
}
|
||||
|
||||
setTransparentCurveColor();
|
||||
computeRealizationColor();
|
||||
updateCurveColors();
|
||||
updateTimeAnnotations();
|
||||
updateObjectiveFunctionLegend();
|
||||
@@ -1147,6 +1147,16 @@ void RimEnsembleCurveSet::fieldChangedByUi( const caf::PdmFieldHandle* changedFi
|
||||
{
|
||||
updateAllTextInPlot();
|
||||
}
|
||||
|
||||
if ( plot )
|
||||
{
|
||||
if ( caf::SelectionManager::instance()->selectedItems().size() > 1 )
|
||||
{
|
||||
// Multiple selection, do a full update of the plot. When multiple objects are selected, only one of the objects receives
|
||||
// fieldChangedByUi()
|
||||
plot->loadDataAndUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1253,8 +1263,9 @@ void RimEnsembleCurveSet::defineUiOrdering( QString uiConfigName, caf::PdmUiOrde
|
||||
}
|
||||
}
|
||||
|
||||
caf::PdmUiGroup* statGroup = uiOrdering.addNewGroup( "Statistics" );
|
||||
bool showStatisticsColor = m_colorMode() == RimEnsembleCurveSetColorManager::ColorMode::SINGLE_COLOR;
|
||||
caf::PdmUiGroup* statGroup = uiOrdering.addNewGroup( "Statistics" );
|
||||
|
||||
bool showStatisticsColor = m_statisticsUseCustomAppearance() == RimCurveAppearanceDefines::AppearanceMode::CUSTOM;
|
||||
m_statistics->showColorField( showStatisticsColor );
|
||||
|
||||
m_statistics->defaultUiOrdering( isXAxisSummaryVector(), *statGroup );
|
||||
@@ -1340,21 +1351,30 @@ void RimEnsembleCurveSet::onCustomObjectiveFunctionChanged( const caf::SignalEmi
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsembleCurveSet::setTransparentCurveColor()
|
||||
void RimEnsembleCurveSet::computeRealizationColor()
|
||||
{
|
||||
if ( m_colorMode() == RimEnsembleCurveSet::ColorMode::SINGLE_COLOR_WITH_ALPHA )
|
||||
if ( m_colorMode() == RimEnsembleCurveSet::ColorMode::SINGLE_COLOR )
|
||||
{
|
||||
auto backgroundColor = RiuGuiTheme::getColorByVariableName( "backgroundColor1" );
|
||||
|
||||
auto sourceColor = RiaColorTools::toQColor( m_mainEnsembleColor );
|
||||
auto sourceWeight = 100;
|
||||
int backgroundWeight = std::max( 1, static_cast<int>( sourceWeight * 10 * m_colorTransparency ) );
|
||||
int backgroundWeight = 130;
|
||||
auto blendedColor = RiaColorTools::blendQColors( backgroundColor, sourceColor, backgroundWeight, sourceWeight );
|
||||
|
||||
m_colorForRealizations = RiaColorTools::fromQColorTo3f( blendedColor );
|
||||
setStatisticsColor( m_mainEnsembleColor );
|
||||
|
||||
if ( m_statisticsUseCustomAppearance() == RimCurveAppearanceDefines::AppearanceMode::DEFAULT )
|
||||
{
|
||||
setStatisticsColor( m_mainEnsembleColor );
|
||||
}
|
||||
|
||||
updateStatisticsCurves();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_colorForRealizations = m_mainEnsembleColor();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1362,12 +1382,7 @@ void RimEnsembleCurveSet::setTransparentCurveColor()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QColor RimEnsembleCurveSet::mainEnsembleColor() const
|
||||
{
|
||||
if ( m_colorMode() == RimEnsembleCurveSetColorManager::ColorMode::SINGLE_COLOR_WITH_ALPHA )
|
||||
{
|
||||
return RiaColorTools::toQColor( m_mainEnsembleColor );
|
||||
}
|
||||
|
||||
return RiaColorTools::toQColor( m_colorForRealizations );
|
||||
return RiaColorTools::toQColor( m_mainEnsembleColor );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1375,27 +1390,14 @@ QColor RimEnsembleCurveSet::mainEnsembleColor() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsembleCurveSet::onColorTagClicked( const SignalEmitter* emitter, size_t index )
|
||||
{
|
||||
caf::PdmField<cvf::Color3f>* colorToModify = nullptr;
|
||||
if ( m_colorMode() == RimEnsembleCurveSetColorManager::ColorMode::SINGLE_COLOR )
|
||||
{
|
||||
colorToModify = &m_colorForRealizations;
|
||||
}
|
||||
else
|
||||
{
|
||||
colorToModify = &m_mainEnsembleColor;
|
||||
}
|
||||
QColor sourceColor = RiaColorTools::toQColor( m_mainEnsembleColor );
|
||||
QColor newColor = caf::PdmUiColorEditor::getColor( sourceColor );
|
||||
|
||||
if ( colorToModify )
|
||||
if ( newColor.isValid() && newColor != sourceColor )
|
||||
{
|
||||
QColor sourceColor = RiaColorTools::toQColor( *colorToModify );
|
||||
QColor newColor = caf::PdmUiColorEditor::getColor( sourceColor );
|
||||
auto myColor = RiaColorTools::fromQColorTo3f( newColor );
|
||||
|
||||
if ( newColor.isValid() && newColor != sourceColor )
|
||||
{
|
||||
auto myColor = RiaColorTools::fromQColorTo3f( newColor );
|
||||
|
||||
colorToModify->setValueWithFieldChanged( myColor );
|
||||
}
|
||||
m_mainEnsembleColor.setValueWithFieldChanged( myColor );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1415,15 +1417,11 @@ void RimEnsembleCurveSet::appendColorGroup( caf::PdmUiOrdering& uiOrdering )
|
||||
caf::PdmUiGroup* colorsGroup = uiOrdering.addNewGroup( "Appearance" );
|
||||
m_colorMode.uiCapability()->setUiReadOnly( !m_yValuesSummaryEnsemble() );
|
||||
colorsGroup->add( &m_colorMode );
|
||||
colorsGroup->add( &m_colorOpacity );
|
||||
|
||||
if ( m_colorMode() == RimEnsembleCurveSetColorManager::ColorMode::SINGLE_COLOR )
|
||||
{
|
||||
colorsGroup->add( &m_colorForRealizations );
|
||||
}
|
||||
else if ( m_colorMode() == RimEnsembleCurveSetColorManager::ColorMode::SINGLE_COLOR_WITH_ALPHA )
|
||||
{
|
||||
colorsGroup->add( &m_mainEnsembleColor );
|
||||
colorsGroup->add( &m_colorTransparency );
|
||||
}
|
||||
else if ( m_colorMode == ColorMode::BY_ENSEMBLE_PARAM )
|
||||
{
|
||||
@@ -1539,7 +1537,7 @@ void RimEnsembleCurveSet::defineEditorAttribute( const caf::PdmFieldHandle* fiel
|
||||
myAttr->m_showSpinBox = false;
|
||||
}
|
||||
}
|
||||
if ( field == &m_colorTransparency )
|
||||
if ( field == &m_colorOpacity )
|
||||
{
|
||||
if ( auto* myAttr = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>( attribute ) )
|
||||
{
|
||||
@@ -1580,14 +1578,12 @@ QList<caf::PdmOptionItemInfo> RimEnsembleCurveSet::calculateValueOptions( const
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_colorMode )
|
||||
{
|
||||
auto singleColorOption = ColorModeEnum( ColorMode::SINGLE_COLOR );
|
||||
auto singleColorWithAlphaOption = ColorModeEnum( ColorMode::SINGLE_COLOR_WITH_ALPHA );
|
||||
auto byEnsParamOption = ColorModeEnum( ColorMode::BY_ENSEMBLE_PARAM );
|
||||
auto byObjFuncOption = ColorModeEnum( ColorMode::BY_OBJECTIVE_FUNCTION );
|
||||
auto byCustomObjFuncOption = ColorModeEnum( ColorMode::BY_CUSTOM_OBJECTIVE_FUNCTION );
|
||||
auto singleColorOption = ColorModeEnum( ColorMode::SINGLE_COLOR );
|
||||
auto byEnsParamOption = ColorModeEnum( ColorMode::BY_ENSEMBLE_PARAM );
|
||||
auto byObjFuncOption = ColorModeEnum( ColorMode::BY_OBJECTIVE_FUNCTION );
|
||||
auto byCustomObjFuncOption = ColorModeEnum( ColorMode::BY_CUSTOM_OBJECTIVE_FUNCTION );
|
||||
|
||||
options.push_back( caf::PdmOptionItemInfo( singleColorOption.uiText(), ColorMode::SINGLE_COLOR ) );
|
||||
options.push_back( caf::PdmOptionItemInfo( singleColorWithAlphaOption.uiText(), ColorMode::SINGLE_COLOR_WITH_ALPHA ) );
|
||||
|
||||
RimSummaryEnsemble* group = m_yValuesSummaryEnsemble();
|
||||
if ( group && group->hasEnsembleParameters() )
|
||||
@@ -2044,6 +2040,7 @@ void RimEnsembleCurveSet::updateCurveColors()
|
||||
for ( size_t i = 0; i < curvesToColor.size(); i++ )
|
||||
{
|
||||
curvesToColor[i]->setColor( caseColors[i] );
|
||||
curvesToColor[i]->setCurveColorOpacity( m_colorOpacity() );
|
||||
curvesToColor[i]->updateCurveAppearance();
|
||||
}
|
||||
|
||||
@@ -2117,6 +2114,8 @@ void RimEnsembleCurveSet::updatePlotAxis()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsembleCurveSet::updateEnsembleCurves( const std::vector<RimSummaryCase*>& sumCases )
|
||||
{
|
||||
computeRealizationColor();
|
||||
|
||||
auto plot = firstAncestorOrThisOfTypeAsserted<RimSummaryPlot>();
|
||||
|
||||
auto addressText = m_yValuesSummaryAddress()->address().toEclipseTextAddress();
|
||||
@@ -2719,6 +2718,13 @@ void RimEnsembleCurveSet::initAfterRead()
|
||||
m_yPlotAxisProperties = plot->axisPropertiesForPlotAxis( RiuPlotAxis( m_plotAxis_OBSOLETE() ) );
|
||||
}
|
||||
}
|
||||
|
||||
if ( m_colorMode == ColorMode::SINGLE_COLOR_WITH_ALPHA )
|
||||
{
|
||||
m_colorMode = ColorMode::SINGLE_COLOR;
|
||||
}
|
||||
|
||||
computeRealizationColor();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -231,7 +231,7 @@ private:
|
||||
void onObjectiveFunctionChanged( const caf::SignalEmitter* emitter );
|
||||
void onCustomObjectiveFunctionChanged( const caf::SignalEmitter* emitter );
|
||||
|
||||
void setTransparentCurveColor();
|
||||
void computeRealizationColor();
|
||||
void onColorTagClicked( const SignalEmitter* emitter, size_t index );
|
||||
|
||||
void setSummaryAddressX( RifEclipseSummaryAddress address );
|
||||
@@ -262,8 +262,8 @@ private:
|
||||
|
||||
caf::PdmField<ColorModeEnum> m_colorMode;
|
||||
caf::PdmField<cvf::Color3f> m_mainEnsembleColor;
|
||||
caf::PdmField<cvf::Color3f> m_colorForRealizations;
|
||||
caf::PdmField<double> m_colorTransparency;
|
||||
cvf::Color3f m_colorForRealizations;
|
||||
caf::PdmField<double> m_colorOpacity;
|
||||
caf::PdmField<QString> m_ensembleParameter;
|
||||
caf::PdmField<caf::AppEnum<RimCurveAppearanceDefines::ParameterSorting>> m_ensembleParameterSorting;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user