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

View File

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

View File

@ -123,7 +123,10 @@ void RimSummaryCalculationVariable::fieldChangedByUi(const caf::PdmFieldHandle*
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RimSummaryCalculationVariable::summaryAddressDisplayString() const 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) for (const auto& curveDef : curveDefinitions)
{ {
if (!(curveDef.summaryCase() || curveDef.isEnsembleCurve()) ) continue;
RimSummaryCase* summaryCase = curveDef.summaryCase(); RimSummaryCase* summaryCase = curveDef.summaryCase();
if (!summaryCase) continue;
RifEclipseSummaryAddress summaryAddress = curveDef.summaryAddress(); RifEclipseSummaryAddress summaryAddress = curveDef.summaryAddress();
if (summaryAddress.category() == RifEclipseSummaryAddress::SUMMARY_INVALID) if (summaryAddress.category() == RifEclipseSummaryAddress::SUMMARY_INVALID)
@ -393,13 +394,12 @@ void RiuSummaryCurveDefSelection::setSelectedCurveDefinitions(const std::vector<
} }
// Select case if not already selected // Select case if not already selected
if (std::find(m_selectedSources.begin(), m_selectedSources.end(), SummarySource* summSource = curveDef.isEnsembleCurve() ? static_cast<SummarySource*>(curveDef.ensemble()) : summaryCase;
curveDef.isEnsembleCurve() ? (SummarySource*)curveDef.ensemble() : summaryCase) == m_selectedSources.end()) if (std::find(m_selectedSources.begin(), m_selectedSources.end(), summSource) == m_selectedSources.end())
{ {
if (summaryCase != calculatedSummaryCase()) if (summaryCase != calculatedSummaryCase())
{ {
m_selectedSources.push_back(summSource);
m_selectedSources.push_back(curveDef.isEnsembleCurve() ? (SummarySource*)curveDef.ensemble() : summaryCase);
} }
} }

View File

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