#2917 Vector Selection Dialog: Fixed problem with dialog initialization when single selecting ensemble curve sets.

This commit is contained in:
Jacob Støren 2018-05-15 11:32:26 +02:00
parent 9b591f622c
commit 6c6e7df3c9
5 changed files with 21 additions and 21 deletions

View File

@ -37,9 +37,9 @@ RiaSummaryCurveDefinition::RiaSummaryCurveDefinition()
RiaSummaryCurveDefinition::RiaSummaryCurveDefinition(RimSummaryCase* summaryCase,
const RifEclipseSummaryAddress& summaryAddress,
RimSummaryCaseCollection* ensemble)
: m_summaryCase(summaryCase)
, m_ensemble(ensemble)
, m_summaryAddress(summaryAddress)
: m_summaryCase(summaryCase)
, m_ensemble(ensemble)
, m_summaryAddress(summaryAddress)
{
}
@ -114,21 +114,21 @@ const std::vector<time_t>& RiaSummaryCurveDefinition::timeSteps(const RiaSummary
//--------------------------------------------------------------------------------------------------
QString RiaSummaryCurveDefinition::curveDefinitionText() const
{
return RiaSummaryCurveDefinition::curveDefinitionText(summaryCase(), summaryAddress());
QString caseName;
if (summaryCase() ) caseName = summaryCase()->caseName();
return RiaSummaryCurveDefinition::curveDefinitionText(caseName, summaryAddress());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaSummaryCurveDefinition::curveDefinitionText(RimSummaryCase* summaryCase, const RifEclipseSummaryAddress& summaryAddress)
QString RiaSummaryCurveDefinition::curveDefinitionText(const QString& caseName, const RifEclipseSummaryAddress& summaryAddress)
{
QString txt;
if (summaryCase)
{
txt += summaryCase->caseName();
txt += ", ";
}
txt += caseName;
txt += ", ";
txt += QString::fromStdString(summaryAddress.uiText());

View File

@ -52,7 +52,7 @@ public:
QString curveDefinitionText() const;
static QString curveDefinitionText(RimSummaryCase* summaryCase, const RifEclipseSummaryAddress& summaryAddress);
static QString curveDefinitionText(const QString& caseName, const RifEclipseSummaryAddress& summaryAddress);
private:

View File

@ -123,7 +123,10 @@ void RimSummaryCalculationVariable::fieldChangedByUi(const caf::PdmFieldHandle*
//--------------------------------------------------------------------------------------------------
QString RimSummaryCalculationVariable::summaryAddressDisplayString() const
{
return RiaSummaryCurveDefinition::curveDefinitionText(m_case(), m_summaryAddress()->address());
QString caseName;
if (m_case() ) caseName = m_case()->caseName();
return RiaSummaryCurveDefinition::curveDefinitionText(caseName, m_summaryAddress()->address());
}
//--------------------------------------------------------------------------------------------------

View File

@ -368,8 +368,9 @@ void RiuSummaryCurveDefSelection::setSelectedCurveDefinitions(const std::vector<
for (const auto& curveDef : curveDefinitions)
{
if (!(curveDef.summaryCase() || curveDef.isEnsembleCurve()) ) continue;
RimSummaryCase* summaryCase = curveDef.summaryCase();
if (!summaryCase) continue;
RifEclipseSummaryAddress summaryAddress = curveDef.summaryAddress();
if (summaryAddress.category() == RifEclipseSummaryAddress::SUMMARY_INVALID)
@ -393,13 +394,12 @@ void RiuSummaryCurveDefSelection::setSelectedCurveDefinitions(const std::vector<
}
// Select case if not already selected
if (std::find(m_selectedSources.begin(), m_selectedSources.end(),
curveDef.isEnsembleCurve() ? (SummarySource*)curveDef.ensemble() : summaryCase) == m_selectedSources.end())
SummarySource* summSource = curveDef.isEnsembleCurve() ? static_cast<SummarySource*>(curveDef.ensemble()) : summaryCase;
if (std::find(m_selectedSources.begin(), m_selectedSources.end(), summSource) == m_selectedSources.end())
{
if (summaryCase != calculatedSummaryCase())
{
m_selectedSources.push_back(curveDef.isEnsembleCurve() ? (SummarySource*)curveDef.ensemble() : summaryCase);
m_selectedSources.push_back(summSource);
}
}

View File

@ -96,10 +96,7 @@ void RiuSummaryCurveDefSelectionDialog::setEnsembleAndAddress(RimSummaryCaseColl
if (ensemble)
{
std::vector<RiaSummaryCurveDefinition> curveDefs;
for (const auto& summaryCase : ensemble->allSummaryCases())
{
curveDefs.push_back(RiaSummaryCurveDefinition(summaryCase, address, ensemble));
}
curveDefs.push_back(RiaSummaryCurveDefinition(nullptr, address, ensemble));
summaryAddressSelection()->setSelectedCurveDefinitions(curveDefs);
}