mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2243 Summary Plot : Add control flags for auto title for name, acronym and unit
This commit is contained in:
parent
6e4449960f
commit
e7c08223b6
@ -59,6 +59,8 @@ CAF_PDM_SOURCE_INIT(RimSummaryAxisProperties, "SummaryYAxisProperties");
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryAxisProperties::RimSummaryAxisProperties()
|
||||
{
|
||||
// clang-format off
|
||||
|
||||
CAF_PDM_InitObject("Y-Axis Properties", ":/LeftAxis16x16.png", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_isActive, "Active", true, "Active", "", "", "");
|
||||
@ -68,6 +70,11 @@ RimSummaryAxisProperties::RimSummaryAxisProperties()
|
||||
m_name.uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitField(&isAutoTitle, "AutoTitle", true, "Auto Title", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_displayLongName, "DisplayLongName", true, "Title Names", "", "", "");
|
||||
CAF_PDM_InitField(&m_displayShortName, "DisplayShortName", false, "Title Acronymes", "", "", "");
|
||||
CAF_PDM_InitField(&m_displayUnitText, "DisplayUnitText", true, "Title Units", "", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&customTitle, "CustomTitle", "Title", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&titlePositionEnum, "TitlePosition", "Title Position", "", "", "");
|
||||
CAF_PDM_InitField(&titleFontSize, "FontSize", 11, "Font Size", "", "", "");
|
||||
@ -86,6 +93,8 @@ RimSummaryAxisProperties::RimSummaryAxisProperties()
|
||||
CAF_PDM_InitField(&isLogarithmicScaleEnabled, "LogarithmicScale", false, "Logarithmic Scale", "", "", "");
|
||||
|
||||
updateOptionSensitivity();
|
||||
|
||||
// clang-format on
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -148,6 +157,20 @@ void RimSummaryAxisProperties::defineUiOrdering(QString uiConfigName, caf::PdmUi
|
||||
caf::PdmUiGroup& titleGroup = *(uiOrdering.addNewGroup("Axis Title"));
|
||||
titleGroup.add(&isAutoTitle);
|
||||
titleGroup.add(&customTitle);
|
||||
|
||||
if (isAutoTitle())
|
||||
{
|
||||
titleGroup.add(&m_displayShortName);
|
||||
titleGroup.add(&m_displayLongName);
|
||||
titleGroup.add(&m_displayUnitText);
|
||||
|
||||
customTitle.uiCapability()->setUiReadOnly(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
customTitle.uiCapability()->setUiReadOnly(false);
|
||||
}
|
||||
|
||||
titleGroup.add(&titlePositionEnum);
|
||||
titleGroup.add(&titleFontSize);
|
||||
|
||||
@ -164,6 +187,7 @@ void RimSummaryAxisProperties::defineUiOrdering(QString uiConfigName, caf::PdmUi
|
||||
scaleGroup.add(&visibleRangeMin);
|
||||
scaleGroup.add(&visibleRangeMax);
|
||||
scaleGroup.add(&valuesFontSize);
|
||||
|
||||
uiOrdering.skipRemainingFields(true);
|
||||
}
|
||||
|
||||
@ -198,6 +222,38 @@ RiaDefines::PlotAxis RimSummaryAxisProperties::plotAxisType() const
|
||||
return RiaDefines::PLOT_AXIS_LEFT;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimSummaryAxisProperties::useAutoTitle() const
|
||||
{
|
||||
return isAutoTitle();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimSummaryAxisProperties::showDescription() const
|
||||
{
|
||||
return m_displayLongName();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimSummaryAxisProperties::showAcronym() const
|
||||
{
|
||||
return m_displayShortName();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimSummaryAxisProperties::showUnitText() const
|
||||
{
|
||||
return m_displayUnitText();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -61,7 +61,11 @@ public:
|
||||
QwtPlot::Axis qwtPlotAxisType() const;
|
||||
RiaDefines::PlotAxis plotAxisType() const;
|
||||
|
||||
caf::PdmField<bool> isAutoTitle;
|
||||
bool useAutoTitle() const;
|
||||
bool showDescription() const;
|
||||
bool showAcronym() const;
|
||||
bool showUnitText() const;
|
||||
|
||||
caf::PdmField<QString> customTitle;
|
||||
caf::PdmField<int> titleFontSize;
|
||||
caf::PdmField< caf::AppEnum< AxisTitlePositionType > > titlePositionEnum;
|
||||
@ -89,7 +93,13 @@ private:
|
||||
void updateOptionSensitivity();
|
||||
|
||||
private:
|
||||
caf::PdmField<bool> m_isActive;
|
||||
caf::PdmField<bool> m_isActive;
|
||||
|
||||
caf::PdmField<bool> isAutoTitle;
|
||||
caf::PdmField<bool> m_displayShortName;
|
||||
caf::PdmField<bool> m_displayLongName;
|
||||
caf::PdmField<bool> m_displayUnitText;
|
||||
|
||||
caf::PdmField<QString> m_name;
|
||||
QwtPlot::Axis m_axis;
|
||||
};
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "RimAsciiDataCurve.h"
|
||||
|
||||
#include "RiuSummaryQwtPlot.h"
|
||||
#include "RiuSummaryVectorDescriptionMap.h"
|
||||
|
||||
#include "qwt_plot_curve.h"
|
||||
#include "qwt_scale_draw.h"
|
||||
@ -124,7 +125,7 @@ void RimSummaryPlotYAxisFormatter::applyYAxisPropertiesToPlot(RiuSummaryQwtPlot*
|
||||
|
||||
{
|
||||
QString axisTitle = m_axisProperties->customTitle;
|
||||
if (m_axisProperties->isAutoTitle) axisTitle = autoAxisTitle();
|
||||
if (m_axisProperties->useAutoTitle()) axisTitle = autoAxisTitle();
|
||||
|
||||
QwtText axisTitleY = qwtPlot->axisTitle(m_axisProperties->qwtPlotAxisType());
|
||||
|
||||
@ -200,35 +201,55 @@ void RimSummaryPlotYAxisFormatter::applyYAxisPropertiesToPlot(RiuSummaryQwtPlot*
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimSummaryPlotYAxisFormatter::autoAxisTitle() const
|
||||
{
|
||||
std::map<std::string, std::set<std::string> > unitToQuantityNameMap;
|
||||
std::map<std::string, std::set<std::string>> unitToQuantityNameMap;
|
||||
|
||||
if (m_axisProperties->plotAxisType() == RiaDefines::PLOT_AXIS_BOTTOM)
|
||||
for (RimSummaryCurve* rimCurve : m_summaryCurves)
|
||||
{
|
||||
for (RimSummaryCurve* rimCurve : m_summaryCurves)
|
||||
{
|
||||
std::string quantityName = rimCurve->summaryAddressX().quantityName();
|
||||
if (rimCurve->summaryAddressX().category() == RifEclipseSummaryAddress::SUMMARY_CALCULATED)
|
||||
{
|
||||
quantityName = shortCalculationName(quantityName);
|
||||
}
|
||||
RifEclipseSummaryAddress sumAddress;
|
||||
std::string unitText;
|
||||
|
||||
unitToQuantityNameMap[rimCurve->unitNameX()].insert(quantityName);
|
||||
if (m_axisProperties->plotAxisType() == RiaDefines::PLOT_AXIS_BOTTOM)
|
||||
{
|
||||
sumAddress = rimCurve->summaryAddressX();
|
||||
unitText = rimCurve->unitNameX();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (RimSummaryCurve* rimCurve : m_summaryCurves)
|
||||
else if (rimCurve->axisY() == this->m_axisProperties->plotAxisType())
|
||||
{
|
||||
if (rimCurve->axisY() == this->m_axisProperties->plotAxisType())
|
||||
sumAddress = rimCurve->summaryAddressY();
|
||||
unitText = rimCurve->unitNameY();
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
std::string quantityNameForDisplay;
|
||||
{
|
||||
std::string quantityName = sumAddress.quantityName();
|
||||
|
||||
if (sumAddress.category() == RifEclipseSummaryAddress::SUMMARY_CALCULATED)
|
||||
{
|
||||
std::string quantityName = rimCurve->summaryAddressY().quantityName();
|
||||
if (rimCurve->summaryAddressY().category() == RifEclipseSummaryAddress::SUMMARY_CALCULATED)
|
||||
quantityNameForDisplay = shortCalculationName(quantityName);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_axisProperties->showDescription())
|
||||
{
|
||||
quantityName = shortCalculationName(quantityName);
|
||||
quantityNameForDisplay = RiuSummaryVectorDescriptionMap::instance()->fieldInfo(quantityName);
|
||||
}
|
||||
|
||||
unitToQuantityNameMap[rimCurve->unitNameY()].insert(quantityName);
|
||||
if (m_axisProperties->showAcronym())
|
||||
{
|
||||
if (!quantityNameForDisplay.empty())
|
||||
{
|
||||
quantityNameForDisplay += " ";
|
||||
}
|
||||
|
||||
quantityNameForDisplay += quantityName;
|
||||
}
|
||||
}
|
||||
|
||||
unitToQuantityNameMap[unitText].insert(quantityNameForDisplay);
|
||||
}
|
||||
}
|
||||
|
||||
@ -239,20 +260,19 @@ QString RimSummaryPlotYAxisFormatter::autoAxisTitle() const
|
||||
{
|
||||
if (m_axisProperties->scaleFactor() != 1.0)
|
||||
{
|
||||
int exponent = std::log10(m_axisProperties->scaleFactor());
|
||||
int exponent = std::log10(m_axisProperties->scaleFactor());
|
||||
scaleFactorText = QString(" x 10<sup>%1</sup> ").arg(QString::number(exponent));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for ( auto unitIt : unitToQuantityNameMap )
|
||||
for (auto unitIt : unitToQuantityNameMap)
|
||||
{
|
||||
for (const auto &quantIt: unitIt.second)
|
||||
for (const auto& quantIt : unitIt.second)
|
||||
{
|
||||
assembledYAxisText += QString::fromStdString(quantIt) + " ";
|
||||
}
|
||||
|
||||
if (!unitIt.first.empty())
|
||||
if (m_axisProperties->showUnitText() && !unitIt.first.empty())
|
||||
{
|
||||
assembledYAxisText += "[" + QString::fromStdString(unitIt.first) + scaleFactorText + "] ";
|
||||
}
|
||||
|
@ -776,15 +776,15 @@ void RimSummaryPlot::updateBottomXAxis()
|
||||
|
||||
QwtPlot::Axis qwtAxis = QwtPlot::xBottom;
|
||||
|
||||
RimSummaryAxisProperties* yAxisProperties = m_bottomAxisProperties();
|
||||
RimSummaryAxisProperties* bottomAxisProperties = m_bottomAxisProperties();
|
||||
|
||||
if (yAxisProperties->isActive())
|
||||
if (bottomAxisProperties->isActive())
|
||||
{
|
||||
m_qwtPlot->enableAxis(qwtAxis, true);
|
||||
|
||||
std::set<QString> timeHistoryQuantities;
|
||||
|
||||
RimSummaryPlotYAxisFormatter calc(yAxisProperties,
|
||||
RimSummaryPlotYAxisFormatter calc(bottomAxisProperties,
|
||||
visibleSummaryCurvesForAxis(RiaDefines::PLOT_AXIS_BOTTOM),
|
||||
visibleAsciiDataCurvesForAxis(RiaDefines::PLOT_AXIS_BOTTOM),
|
||||
timeHistoryQuantities);
|
||||
@ -805,7 +805,6 @@ void RimSummaryPlot::updateCaseNameHasChanged()
|
||||
{
|
||||
m_summaryCurveCollection->updateCaseNameHasChanged();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user