mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1369 Made Grid-Summary cases independent of the Grid Case, if the grid case is closed. Reconnect if the grid-cases is opened again.
This commit is contained in:
parent
8af7702904
commit
0ec1d44125
@ -32,8 +32,7 @@ CAF_PDM_SOURCE_INIT(RimFileSummaryCase,"FileSummaryCase");
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimFileSummaryCase::RimFileSummaryCase()
|
||||
{
|
||||
CAF_PDM_InitFieldNoDefault(&m_summaryHeaderFilename, "SummaryHeaderFilename", "Summary Header File", "", "", "");
|
||||
m_summaryHeaderFilename.uiCapability()->setUiReadOnly(true);
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -66,7 +65,7 @@ QString RimFileSummaryCase::summaryHeaderFilename() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimFileSummaryCase::caseName() const
|
||||
QString RimFileSummaryCase::caseName()
|
||||
{
|
||||
QFileInfo caseFileName(this->summaryHeaderFilename());
|
||||
|
||||
|
@ -34,10 +34,9 @@ public:
|
||||
|
||||
void setSummaryHeaderFilename(const QString& fileName);
|
||||
virtual QString summaryHeaderFilename() const override;
|
||||
virtual QString caseName() const override;
|
||||
virtual QString caseName() override;
|
||||
|
||||
private:
|
||||
caf::PdmField<QString> m_summaryHeaderFilename;
|
||||
};
|
||||
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
#include "RigSummaryCaseData.h"
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimProject.h"
|
||||
|
||||
#include <QFileInfo>
|
||||
|
||||
@ -40,13 +41,14 @@ RimGridSummaryCase::RimGridSummaryCase()
|
||||
CAF_PDM_InitFieldNoDefault(&m_eclipseCase, "Associated3DCase", "Eclipse Case", "", "", "");
|
||||
m_eclipseCase.uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_cachedCaseName, "CachedCasename", "Case Name", "", "", "");
|
||||
m_cachedCaseName.uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_eclipseGridFileName, "Associated3DCaseGridFileName", "Grid File Name", "", "", "");
|
||||
m_eclipseGridFileName.registerGetMethod(this, &RimGridSummaryCase::eclipseGridFileName);
|
||||
m_eclipseGridFileName.uiCapability()->setUiReadOnly(true);
|
||||
m_eclipseGridFileName.xmlCapability()->setIOWritable(false);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_eclipseSummaryFileName, "SummaryFileName", "Summary File Name", "", "", "");
|
||||
m_eclipseSummaryFileName.registerGetMethod(this, &RimGridSummaryCase::summaryHeaderFilename);
|
||||
m_eclipseSummaryFileName.uiCapability()->setUiReadOnly(true);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -57,12 +59,33 @@ RimGridSummaryCase::~RimGridSummaryCase()
|
||||
|
||||
}
|
||||
|
||||
QString summaryHeaderFilenameFromEclipseCase(RimEclipseCase* eclCase)
|
||||
{
|
||||
if (!eclCase) return QString();
|
||||
|
||||
QFileInfo gridFileInfo(eclCase->gridFileName());
|
||||
|
||||
QString possibleSumHeaderFileName = gridFileInfo.path() +"/"+ gridFileInfo.completeBaseName() + ".SMSPEC";
|
||||
|
||||
return possibleSumHeaderFileName;
|
||||
}
|
||||
|
||||
QString caseNameFromEclipseCase(RimEclipseCase* eclCase)
|
||||
{
|
||||
if (!eclCase) return QString();
|
||||
|
||||
return eclCase->caseUserDescription();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGridSummaryCase::setAssociatedEclipseCase(RimEclipseCase* eclipseCase)
|
||||
{
|
||||
m_eclipseCase = eclipseCase;
|
||||
m_summaryHeaderFilename = summaryHeaderFilenameFromEclipseCase(eclipseCase);
|
||||
m_cachedCaseName = caseNameFromEclipseCase(eclipseCase);
|
||||
|
||||
this->updateAutoShortName();
|
||||
this->updateTreeItemName();
|
||||
}
|
||||
@ -72,6 +95,32 @@ void RimGridSummaryCase::setAssociatedEclipseCase(RimEclipseCase* eclipseCase)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseCase* RimGridSummaryCase::associatedEclipseCase()
|
||||
{
|
||||
if (!m_eclipseCase())
|
||||
{
|
||||
// Find a possible associated eclipse case
|
||||
|
||||
RimProject* project;
|
||||
firstAncestorOrThisOfTypeAsserted(project);
|
||||
std::vector<RimCase*> allCases;
|
||||
project->allCases(allCases);
|
||||
for ( RimCase* someCase: allCases )
|
||||
{
|
||||
auto eclCase = dynamic_cast<RimEclipseCase*>(someCase);
|
||||
if ( eclCase )
|
||||
{
|
||||
QString sumHeaderFileName = summaryHeaderFilenameFromEclipseCase(eclCase);
|
||||
if ( sumHeaderFileName == m_summaryHeaderFilename )
|
||||
{
|
||||
m_eclipseCase = eclCase;
|
||||
this->updateAutoShortName();
|
||||
this->updateTreeItemName();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return m_eclipseCase();
|
||||
}
|
||||
|
||||
@ -80,24 +129,19 @@ RimEclipseCase* RimGridSummaryCase::associatedEclipseCase()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimGridSummaryCase::summaryHeaderFilename() const
|
||||
{
|
||||
if (!m_eclipseCase()) return QString();
|
||||
if (!m_eclipseCase()) return m_summaryHeaderFilename();
|
||||
|
||||
QFileInfo gridFileInfo(m_eclipseCase()->gridFileName());
|
||||
|
||||
QString possibleSumHeaderFileName = gridFileInfo.path() +"/"+ gridFileInfo.completeBaseName() + ".SMSPEC";
|
||||
|
||||
return possibleSumHeaderFileName;
|
||||
return summaryHeaderFilenameFromEclipseCase(m_eclipseCase());
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimGridSummaryCase::caseName() const
|
||||
QString RimGridSummaryCase::caseName()
|
||||
{
|
||||
if (!m_eclipseCase()) return QString();
|
||||
if (m_eclipseCase()) m_cachedCaseName = caseNameFromEclipseCase(m_eclipseCase());
|
||||
|
||||
return m_eclipseCase()->caseUserDescription();
|
||||
return m_cachedCaseName;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -40,15 +40,16 @@ public:
|
||||
RimEclipseCase* associatedEclipseCase();
|
||||
|
||||
virtual QString summaryHeaderFilename() const override;
|
||||
virtual QString caseName() const override;
|
||||
virtual QString caseName() override;
|
||||
|
||||
private:
|
||||
QString eclipseGridFileName() const;
|
||||
|
||||
private:
|
||||
caf::PdmPtrField<RimEclipseCase*> m_eclipseCase;
|
||||
mutable caf::PdmField<QString> m_cachedCaseName;
|
||||
caf::PdmProxyValueField<QString> m_eclipseGridFileName;
|
||||
caf::PdmProxyValueField<QString> m_eclipseSummaryFileName;
|
||||
//caf::PdmProxyValueField<QString> m_eclipseSummaryFileName;
|
||||
};
|
||||
|
||||
|
||||
|
@ -38,6 +38,9 @@ RimSummaryCase::RimSummaryCase()
|
||||
|
||||
CAF_PDM_InitField(&m_shortName, "ShortName", QString("Display Name"), "Display Name", "", "", "");
|
||||
CAF_PDM_InitField(&m_useAutoShortName, "AutoShortyName", false, "Use Auto Display Name", "", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_summaryHeaderFilename, "SummaryHeaderFilename", "Summary Header File", "", "", "");
|
||||
m_summaryHeaderFilename.uiCapability()->setUiReadOnly(true);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -39,7 +39,7 @@ public:
|
||||
virtual ~RimSummaryCase();
|
||||
|
||||
virtual QString summaryHeaderFilename() const = 0;
|
||||
virtual QString caseName() const = 0;
|
||||
virtual QString caseName() = 0;
|
||||
QString shortName() const;
|
||||
|
||||
void updateAutoShortName();
|
||||
@ -53,6 +53,7 @@ protected:
|
||||
|
||||
caf::PdmField<QString> m_shortName;
|
||||
caf::PdmField<bool> m_useAutoShortName;
|
||||
caf::PdmField<QString> m_summaryHeaderFilename;
|
||||
|
||||
cvf::ref<RigSummaryCaseData> m_summaryCaseData;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user