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

View File

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