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()
|
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());
|
QFileInfo caseFileName(this->summaryHeaderFilename());
|
||||||
|
|
||||||
|
@ -34,10 +34,9 @@ public:
|
|||||||
|
|
||||||
void setSummaryHeaderFilename(const QString& fileName);
|
void setSummaryHeaderFilename(const QString& fileName);
|
||||||
virtual QString summaryHeaderFilename() const override;
|
virtual QString summaryHeaderFilename() const override;
|
||||||
virtual QString caseName() const override;
|
virtual QString caseName() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmField<QString> m_summaryHeaderFilename;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include "RigSummaryCaseData.h"
|
#include "RigSummaryCaseData.h"
|
||||||
#include "RimEclipseCase.h"
|
#include "RimEclipseCase.h"
|
||||||
|
#include "RimProject.h"
|
||||||
|
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
|
||||||
@ -40,13 +41,14 @@ RimGridSummaryCase::RimGridSummaryCase()
|
|||||||
CAF_PDM_InitFieldNoDefault(&m_eclipseCase, "Associated3DCase", "Eclipse Case", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_eclipseCase, "Associated3DCase", "Eclipse Case", "", "", "");
|
||||||
m_eclipseCase.uiCapability()->setUiHidden(true);
|
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", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_eclipseGridFileName, "Associated3DCaseGridFileName", "Grid File Name", "", "", "");
|
||||||
m_eclipseGridFileName.registerGetMethod(this, &RimGridSummaryCase::eclipseGridFileName);
|
m_eclipseGridFileName.registerGetMethod(this, &RimGridSummaryCase::eclipseGridFileName);
|
||||||
m_eclipseGridFileName.uiCapability()->setUiReadOnly(true);
|
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)
|
void RimGridSummaryCase::setAssociatedEclipseCase(RimEclipseCase* eclipseCase)
|
||||||
{
|
{
|
||||||
m_eclipseCase = eclipseCase;
|
m_eclipseCase = eclipseCase;
|
||||||
|
m_summaryHeaderFilename = summaryHeaderFilenameFromEclipseCase(eclipseCase);
|
||||||
|
m_cachedCaseName = caseNameFromEclipseCase(eclipseCase);
|
||||||
|
|
||||||
this->updateAutoShortName();
|
this->updateAutoShortName();
|
||||||
this->updateTreeItemName();
|
this->updateTreeItemName();
|
||||||
}
|
}
|
||||||
@ -72,6 +95,32 @@ void RimGridSummaryCase::setAssociatedEclipseCase(RimEclipseCase* eclipseCase)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimEclipseCase* RimGridSummaryCase::associatedEclipseCase()
|
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();
|
return m_eclipseCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,24 +129,19 @@ RimEclipseCase* RimGridSummaryCase::associatedEclipseCase()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QString RimGridSummaryCase::summaryHeaderFilename() const
|
QString RimGridSummaryCase::summaryHeaderFilename() const
|
||||||
{
|
{
|
||||||
if (!m_eclipseCase()) return QString();
|
if (!m_eclipseCase()) return m_summaryHeaderFilename();
|
||||||
|
|
||||||
QFileInfo gridFileInfo(m_eclipseCase()->gridFileName());
|
return summaryHeaderFilenameFromEclipseCase(m_eclipseCase());
|
||||||
|
|
||||||
QString possibleSumHeaderFileName = gridFileInfo.path() +"/"+ gridFileInfo.completeBaseName() + ".SMSPEC";
|
|
||||||
|
|
||||||
return possibleSumHeaderFileName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
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();
|
RimEclipseCase* associatedEclipseCase();
|
||||||
|
|
||||||
virtual QString summaryHeaderFilename() const override;
|
virtual QString summaryHeaderFilename() const override;
|
||||||
virtual QString caseName() const override;
|
virtual QString caseName() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString eclipseGridFileName() const;
|
QString eclipseGridFileName() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmPtrField<RimEclipseCase*> m_eclipseCase;
|
caf::PdmPtrField<RimEclipseCase*> m_eclipseCase;
|
||||||
|
mutable caf::PdmField<QString> m_cachedCaseName;
|
||||||
caf::PdmProxyValueField<QString> m_eclipseGridFileName;
|
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_shortName, "ShortName", QString("Display Name"), "Display Name", "", "", "");
|
||||||
CAF_PDM_InitField(&m_useAutoShortName, "AutoShortyName", false, "Use Auto 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 ~RimSummaryCase();
|
||||||
|
|
||||||
virtual QString summaryHeaderFilename() const = 0;
|
virtual QString summaryHeaderFilename() const = 0;
|
||||||
virtual QString caseName() const = 0;
|
virtual QString caseName() = 0;
|
||||||
QString shortName() const;
|
QString shortName() const;
|
||||||
|
|
||||||
void updateAutoShortName();
|
void updateAutoShortName();
|
||||||
@ -53,6 +53,7 @@ protected:
|
|||||||
|
|
||||||
caf::PdmField<QString> m_shortName;
|
caf::PdmField<QString> m_shortName;
|
||||||
caf::PdmField<bool> m_useAutoShortName;
|
caf::PdmField<bool> m_useAutoShortName;
|
||||||
|
caf::PdmField<QString> m_summaryHeaderFilename;
|
||||||
|
|
||||||
cvf::ref<RigSummaryCaseData> m_summaryCaseData;
|
cvf::ref<RigSummaryCaseData> m_summaryCaseData;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user