mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2933 Calculator : Auto fill address selection based on last entered address
This commit is contained in:
parent
79928702bf
commit
3bc952b77f
@ -18,8 +18,12 @@
|
||||
|
||||
#include "RimSummaryCalculationVariable.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaSummaryCurveDefinition.h"
|
||||
|
||||
#include "RifEclipseSummaryAddressQMetaType.h"
|
||||
|
||||
#include "RimProject.h"
|
||||
#include "RimSummaryAddress.h"
|
||||
#include "RimSummaryCalculation.h"
|
||||
#include "RimSummaryCase.h"
|
||||
@ -86,7 +90,8 @@ void RimSummaryCalculationVariable::fieldChangedByUi(const caf::PdmFieldHandle*
|
||||
{
|
||||
RiuSummaryCurveDefSelectionDialog dlg(nullptr);
|
||||
dlg.hideEnsembles();
|
||||
dlg.setCaseAndAddress(m_case(), m_summaryAddress->address());
|
||||
|
||||
readDataFromApplicationStore(&dlg);
|
||||
|
||||
if (dlg.exec() == QDialog::Accepted)
|
||||
{
|
||||
@ -96,6 +101,8 @@ void RimSummaryCalculationVariable::fieldChangedByUi(const caf::PdmFieldHandle*
|
||||
m_case = curveSelection[0].summaryCase();
|
||||
m_summaryAddress->setAddress(curveSelection[0].summaryAddress());
|
||||
|
||||
writeDataToApplicationStore();
|
||||
|
||||
updateContainingEditor = true;
|
||||
}
|
||||
}
|
||||
@ -168,3 +175,48 @@ void RimSummaryCalculationVariable::defineObjectEditorAttribute(QString uiConfig
|
||||
attr->registerPushButtonTextForFieldKeyword(m_button.keyword(), "Edit");
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCalculationVariable::readDataFromApplicationStore(RiuSummaryCurveDefSelectionDialog* selectionDialog) const
|
||||
{
|
||||
if (!selectionDialog) return;
|
||||
|
||||
auto sumCase = m_case();
|
||||
auto sumAddress = m_summaryAddress->address();
|
||||
if (!sumCase && !sumAddress.isValid())
|
||||
{
|
||||
QVariant var = RiaApplication::instance()->cacheDataObject("CalculatorSummaryAddress");
|
||||
|
||||
auto lastUsedAddress = var.value<RifEclipseSummaryAddress>();
|
||||
if (lastUsedAddress.isValid())
|
||||
{
|
||||
sumAddress = lastUsedAddress;
|
||||
}
|
||||
|
||||
QString lastUsedSummaryCaseString = RiaApplication::instance()->cacheDataObject("CalculatorSummaryCase").toString();
|
||||
|
||||
auto* lastUsedSummaryCase = dynamic_cast<RimSummaryCase*>(
|
||||
caf::PdmReferenceHelper::objectFromReference(RiaApplication::instance()->project(), lastUsedSummaryCaseString));
|
||||
if (lastUsedSummaryCase)
|
||||
{
|
||||
sumCase = lastUsedSummaryCase;
|
||||
}
|
||||
}
|
||||
|
||||
selectionDialog->setCaseAndAddress(sumCase, sumAddress);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCalculationVariable::writeDataToApplicationStore() const
|
||||
{
|
||||
QString refFromProjectToObject =
|
||||
caf::PdmReferenceHelper::referenceFromRootToObject(RiaApplication::instance()->project(), m_case);
|
||||
RiaApplication::instance()->setCacheDataObject("CalculatorSummaryCase", refFromProjectToObject);
|
||||
|
||||
QVariant sumAdrVar = QVariant::fromValue(m_summaryAddress->address());
|
||||
RiaApplication::instance()->setCacheDataObject("CalculatorSummaryAddress", sumAdrVar);
|
||||
}
|
||||
|
@ -28,6 +28,7 @@
|
||||
|
||||
class RimSummaryCase;
|
||||
class RimSummaryAddress;
|
||||
class RiuSummaryCurveDefSelectionDialog;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@ -53,6 +54,9 @@ private:
|
||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||
virtual void defineObjectEditorAttribute(QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
|
||||
|
||||
void readDataFromApplicationStore(RiuSummaryCurveDefSelectionDialog* selectionDialog) const;
|
||||
void writeDataToApplicationStore() const;
|
||||
|
||||
private:
|
||||
caf::PdmField<QString> m_name;
|
||||
caf::PdmProxyValueField<QString> m_summaryAddressUi;
|
||||
|
Loading…
Reference in New Issue
Block a user