#7682 Statistics Plot: Add user-defined histogram bar width.

This commit is contained in:
Kristian Bendiksen 2021-05-12 13:55:29 +02:00
parent 0dfe9e2383
commit b00734265a
2 changed files with 15 additions and 0 deletions

View File

@ -34,8 +34,10 @@
#include "cafPdmObject.h"
#include "cafPdmObjectScriptingCapability.h"
#include "cafPdmUiComboBoxEditor.h"
#include "cafPdmUiDoubleSliderEditor.h"
#include "cafPdmUiLineEditor.h"
#include "cafPdmUiSliderEditor.h"
#include "cvfAssert.h"
#include <QtCharts/QBarSeries>
@ -63,6 +65,9 @@ RimStatisticsPlot::RimStatisticsPlot()
CAF_PDM_InitField( &m_histogramBarColor, "HistogramBarColor", cvf::Color3f( cvf::Color3f::SKY_BLUE ), "Bar Color", "", "", "" );
CAF_PDM_InitField( &m_histogramBarWidth, "HistogramBarWidth", 1.0, "Bar Width", "", "", "" );
m_histogramBarWidth.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
m_plotLegendsHorizontal.uiCapability()->setUiHidden( true );
setDeletable( true );
@ -195,6 +200,13 @@ void RimStatisticsPlot::defineEditorAttribute( const caf::PdmFieldHandle* field,
QIntValidator* validator = new QIntValidator( 20, 1000, nullptr );
lineEditorAttr->validator = validator;
}
caf::PdmUiDoubleSliderEditorAttribute* sliderAttr = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>( attribute );
if ( field == &m_histogramBarWidth && sliderAttr != nullptr )
{
sliderAttr->m_minimum = 0.0;
sliderAttr->m_maximum = 1.0;
}
}
//--------------------------------------------------------------------------------------------------
@ -205,6 +217,7 @@ void RimStatisticsPlot::uiOrderingForHistogram( QString uiConfigName, caf::PdmUi
caf::PdmUiGroup* histogramGroup = uiOrdering.addNewGroup( "Histogram" );
histogramGroup->add( &m_numHistogramBins );
histogramGroup->add( &m_histogramBarColor );
histogramGroup->add( &m_histogramBarWidth );
}
//--------------------------------------------------------------------------------------------------
@ -241,6 +254,7 @@ void RimStatisticsPlot::updatePlots()
set0->setColor( RiaColorTools::toQColor( m_histogramBarColor ) );
QBarSeries* series = new QBarSeries();
series->setBarWidth( m_histogramBarWidth() );
series->append( set0 );
QChart* chart = new QChart();

View File

@ -85,4 +85,5 @@ protected:
caf::PdmField<QString> m_plotWindowTitle;
caf::PdmField<int> m_numHistogramBins;
caf::PdmField<cvf::Color3f> m_histogramBarColor;
caf::PdmField<double> m_histogramBarWidth;
};