Move per cell face results at bottom of Cell Results

This commit is contained in:
Magne Sjaastad 2014-09-08 07:53:49 +02:00
parent e2a5c449ce
commit 6a25f7e8b9
3 changed files with 31 additions and 10 deletions

View File

@ -140,7 +140,7 @@ void RimFaultResultSlot::defineUiOrdering(QString uiConfigName, caf::PdmUiOrderi
//--------------------------------------------------------------------------------------------------
QList<caf::PdmOptionItemInfo> RimFaultResultSlot::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
{
return m_customFaultResult->calculateValueOptions(fieldNeedingOptions, useOptionsOnly);
return m_customFaultResult->calculateValueOptionsForSpecifiedDerivedListPosition(true, fieldNeedingOptions, useOptionsOnly);
}
//--------------------------------------------------------------------------------------------------

View File

@ -130,7 +130,15 @@ void RimResultDefinition::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QList<caf::PdmOptionItemInfo> RimResultDefinition::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
QList<caf::PdmOptionItemInfo> RimResultDefinition::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly)
{
return calculateValueOptionsForSpecifiedDerivedListPosition(false, fieldNeedingOptions, useOptionsOnly);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QList<caf::PdmOptionItemInfo> RimResultDefinition::calculateValueOptionsForSpecifiedDerivedListPosition(bool showDerivedResultsFirstInList, const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
{
if (fieldNeedingOptions == &m_resultVariableUiField)
{
@ -141,19 +149,20 @@ QList<caf::PdmOptionItemInfo> RimResultDefinition::calculateValueOptions(const c
bool hasCombinedTransmissibility = false;
QList<caf::PdmOptionItemInfo> optionList;
QList<caf::PdmOptionItemInfo> perCellFaceOptionList;
for (int i = 0; i < varList.size(); ++i)
{
if (RimDefines::isPerCellFaceResult(varList[i]))
{
// Move combined per cell face results to top of list
optionList.push_front(caf::PdmOptionItemInfo(varList[i], varList[i]));
perCellFaceOptionList.push_back(caf::PdmOptionItemInfo(varList[i], varList[i]));
}
else
{
optionList.push_back(caf::PdmOptionItemInfo(varList[i], varList[i]));
}
}
bool hasAtLeastOneTernaryComponent = false;
if (varList.contains("SOIL")) hasAtLeastOneTernaryComponent = true;
else if (varList.contains("SGAS")) hasAtLeastOneTernaryComponent = true;
@ -164,7 +173,19 @@ QList<caf::PdmOptionItemInfo> RimResultDefinition::calculateValueOptions(const c
optionList.push_front(caf::PdmOptionItemInfo(RimDefines::ternarySaturationResultName(), RimDefines::ternarySaturationResultName()));
}
optionList.push_front(caf::PdmOptionItemInfo( RimDefines::undefinedResultName(), RimDefines::undefinedResultName() ));
for (int i = 0; i < perCellFaceOptionList.size(); i++)
{
if (showDerivedResultsFirstInList)
{
optionList.push_front(perCellFaceOptionList[i]);
}
else
{
optionList.push_back(perCellFaceOptionList[i]);
}
}
optionList.push_front(caf::PdmOptionItemInfo(RimDefines::undefinedResultName(), RimDefines::undefinedResultName()));
if (useOptionsOnly) *useOptionsOnly = true;
@ -342,3 +363,4 @@ void RimResultDefinition::updateFieldVisibility()
}
}
}

View File

@ -59,8 +59,7 @@ public:
RimReservoirCellResultsStorage* currentGridCellResults() const;
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly );
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly);
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
virtual void initAfterRead();
@ -71,19 +70,19 @@ protected:
friend class RimCellPropertyFilter;
friend class RimFaultResultSlot;
// User interface only fields, to support "filtering"-like behaviour etc.
caf::PdmField< caf::AppEnum< RimDefines::ResultCatType > > m_resultTypeUiField;
caf::PdmField< caf::AppEnum< RimDefines::PorosityModelType > > m_porosityModelUiField;
caf::PdmField<QString> m_resultVariableUiField;
//mutable size_t m_gridScalarResultIndex;
caf::PdmPointer<RimReservoirView> m_reservoirView;
protected:
void updateFieldVisibility();
QList<caf::PdmOptionItemInfo> calculateValueOptionsForSpecifiedDerivedListPosition(bool showDerivedResultsFirstInList, const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly);
private:
QStringList getResultVariableListForCurrentUIFieldSettings();
};