Add rename case to summary and grid cases (#9204)

* #9203 Summary Case : Add rename to right-click menu
* Janitor: Move ID and description to private fields
* Eclipse Case: Add rename to right-click menu
* Rename feature
This commit is contained in:
Magne Sjaastad
2022-08-17 22:12:23 -07:00
committed by GitHub
parent 597a3d1f97
commit c8f642d83a
38 changed files with 331 additions and 71 deletions

View File

@@ -296,7 +296,7 @@ RimGeoMechCase* RimGeoMechCase::createCopy( const QString& newInputFileName )
QFileInfo filenameInfo( newInputFileName );
QString newCaseName = filenameInfo.completeBaseName();
copycase->caseUserDescription.setValue( newCaseName + " (copy of " + caseUserDescription.value() + ")" );
copycase->setCaseUserDescription( newCaseName + " (copy of " + caseUserDescription() + ")" );
copycase->setGridFileName( newInputFileName );
project->assignCaseIdToCase( copycase );
@@ -1099,8 +1099,8 @@ void RimGeoMechCase::importElementPropertyFile()
//--------------------------------------------------------------------------------------------------
void RimGeoMechCase::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
uiOrdering.add( &caseUserDescription );
uiOrdering.add( &caseId );
uiOrdering.add( &m_caseUserDescription );
uiOrdering.add( &m_caseId );
uiOrdering.add( &m_caseFileName );
caf::PdmUiGroup* caseGroup = uiOrdering.addNewGroup( "Case Options" );

View File

@@ -49,14 +49,14 @@ RimCase::RimCase()
{
CAF_PDM_InitScriptableObjectWithNameAndComment( "Case", ":/Case48x48.png", "", "", "Case", "The ResInsight base class for Cases" );
CAF_PDM_InitScriptableField( &caseUserDescription, "Name", QString(), "Case Name" );
caseUserDescription.registerKeywordAlias( "CaseUserDescription" );
CAF_PDM_InitScriptableField( &m_caseUserDescription, "Name", QString(), "Case Name" );
m_caseUserDescription.registerKeywordAlias( "CaseUserDescription" );
CAF_PDM_InitScriptableFieldNoDefault( &m_displayNameOption, "NameSetting", "Name Setting" );
CAF_PDM_InitScriptableField( &caseId, "Id", -1, "Case ID" );
caseId.registerKeywordAlias( "CaseId" );
caseId.uiCapability()->setUiReadOnly( true );
caseId.capability<caf::PdmAbstractFieldScriptingCapability>()->setIOWriteable( false );
CAF_PDM_InitScriptableField( &m_caseId, "Id", -1, "Case ID" );
m_caseId.registerKeywordAlias( "CaseId" );
m_caseId.uiCapability()->setUiReadOnly( true );
m_caseId.capability<caf::PdmAbstractFieldScriptingCapability>()->setIOWriteable( false );
CAF_PDM_InitScriptableFieldNoDefault( &m_caseFileName, "FilePath", "Case File Name" );
m_caseFileName.registerKeywordAlias( "CaseFileName" );
@@ -87,6 +87,38 @@ RimCase::~RimCase()
m_isInActiveDestruction = true; // Needed because destruction of m_intersectionViews results in call to views()
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RimCase::caseId() const
{
return m_caseId();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimCase::setCaseId( int id )
{
m_caseId = id;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimCase::caseUserDescription() const
{
return m_caseUserDescription();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimCase::setCaseUserDescription( const QString& description )
{
m_caseUserDescription = description;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -106,6 +138,15 @@ QString RimCase::gridFileName() const
return m_caseFileName().path();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimCase::setCustomCaseName( const QString& caseName )
{
m_displayNameOption = RimCaseDisplayNameTools::DisplayName::CUSTOM;
m_caseUserDescription = caseName;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -195,7 +236,7 @@ void RimCase::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const Q
{
updateAutoShortName();
}
else if ( changedField == &caseUserDescription )
else if ( changedField == &m_caseUserDescription )
{
updateTreeItemName();
}
@@ -235,7 +276,8 @@ QList<caf::PdmOptionItemInfo> RimCase::calculateValueOptions( const caf::PdmFiel
//--------------------------------------------------------------------------------------------------
void RimCase::updateOptionSensitivity()
{
caseUserDescription.uiCapability()->setUiReadOnly( m_displayNameOption != RimCaseDisplayNameTools::DisplayName::CUSTOM );
m_caseUserDescription.uiCapability()->setUiReadOnly( m_displayNameOption !=
RimCaseDisplayNameTools::DisplayName::CUSTOM );
}
//--------------------------------------------------------------------------------------------------
@@ -243,7 +285,7 @@ void RimCase::updateOptionSensitivity()
//--------------------------------------------------------------------------------------------------
void RimCase::initAfterRead()
{
if ( caseId() == -1 )
if ( m_caseId() == -1 )
{
RimProject::current()->assignCaseIdToCase( this );
}
@@ -262,7 +304,7 @@ void RimCase::initAfterRead()
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimCase::userDescriptionField()
{
return &caseUserDescription;
return &m_caseUserDescription;
}
//--------------------------------------------------------------------------------------------------
@@ -272,11 +314,11 @@ void RimCase::updateAutoShortName()
{
if ( m_displayNameOption == RimCaseDisplayNameTools::DisplayName::FULL_CASE_NAME )
{
caseUserDescription = caseName();
m_caseUserDescription = caseName();
}
else if ( m_displayNameOption == RimCaseDisplayNameTools::DisplayName::SHORT_CASE_NAME )
{
caseUserDescription = RimCase::uniqueShortNameCase( this, RimCaseDisplayNameTools::CASE_SHORT_NAME_LENGTH );
m_caseUserDescription = RimCase::uniqueShortNameCase( this, RimCaseDisplayNameTools::CASE_SHORT_NAME_LENGTH );
}
updateTreeItemName();
}
@@ -286,7 +328,7 @@ void RimCase::updateAutoShortName()
//--------------------------------------------------------------------------------------------------
void RimCase::updateTreeItemName()
{
setUiName( caseUserDescription() );
setUiName( m_caseUserDescription() );
}
//--------------------------------------------------------------------------------------------------

View File

@@ -54,13 +54,16 @@ public:
RimCase();
~RimCase() override;
caf::PdmField<int> caseId;
caf::PdmField<QString> caseUserDescription;
int caseId() const;
void setCaseId( int id );
QString caseUserDescription() const;
void setCaseUserDescription( const QString& description );
void setGridFileName( const QString& fileName );
QString gridFileName() const;
void setDisplayNameOption( RimCaseDisplayNameTools::DisplayName displayNameOption );
void setCustomCaseName( const QString& caseName );
void updateAutoShortName();
void updateOptionSensitivity();
@@ -105,6 +108,8 @@ private:
caf::PdmFieldHandle* userDescriptionField() override;
protected:
caf::PdmField<int> m_caseId;
caf::PdmField<QString> m_caseUserDescription;
caf::PdmField<caf::FilePath> m_caseFileName;
caf::PdmField<DisplayNameEnum> m_displayNameOption;
caf::PdmChildField<RimTimeStepFilter*> m_timeStepFilter;

View File

@@ -268,6 +268,7 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
}
else if ( dynamic_cast<RimEclipseCase*>( firstUiItem ) )
{
menuBuilder << "RicRenameCaseFeature";
menuBuilder << "RicPasteEclipseCasesFeature";
menuBuilder << "RicPasteEclipseViewsFeature";
menuBuilder << "Separator";
@@ -1074,7 +1075,7 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
else if ( dynamic_cast<RimRftCase*>( firstUiItem ) )
{
menuBuilder << "RicNewRftWellLogCurveFeature";
menuBuilder << "RicNewRftSegmentWellLogCurveFeature";
menuBuilder << "RicNewRftSegmentWellLogPlotFeature";
}
if ( dynamic_cast<Rim3dView*>( firstUiItem ) )
@@ -1124,6 +1125,7 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
menuBuilder << "RicImportObservedDataFeature";
menuBuilder << "RicImportObservedFmuDataFeature";
menuBuilder << "RicRenameSummaryCaseFeature";
menuBuilder << "RicReloadSummaryCaseFeature";
menuBuilder << "RicReplaceSummaryCaseFeature";
menuBuilder << "RicCreateSummaryCaseCollectionFeature";

View File

@@ -266,7 +266,7 @@ QString RimContourMapProjection::caseName() const
return QString();
}
return rimCase->caseUserDescription.value();
return rimCase->caseUserDescription();
}
//--------------------------------------------------------------------------------------------------

View File

@@ -94,8 +94,8 @@ bool RimEclipseInputCase::openDataFileSet( const QStringList& fileNames )
eclipseCaseData()->activeCellInfo( RiaDefines::PorosityModelType::FRACTURE_MODEL )->computeDerivedData();
QFileInfo gridFileName( fileNames[0] );
QString caseName = gridFileName.completeBaseName();
this->caseUserDescription = caseName;
QString caseName = gridFileName.completeBaseName();
this->setCaseUserDescription( caseName );
computeCachedData();
@@ -127,7 +127,7 @@ bool RimEclipseInputCase::openDataFileSet( const QStringList& fileNames )
QFileInfo gridFileName( fileNames[i] );
QString caseName = gridFileName.completeBaseName();
this->caseUserDescription = caseName;
this->setCaseUserDescription( caseName );
this->eclipseCaseData()->mainGrid()->setFlipAxis( m_flipXAxis, m_flipYAxis );
@@ -299,9 +299,9 @@ cvf::ref<RifReaderInterface> RimEclipseInputCase::createMockModel( QString model
//--------------------------------------------------------------------------------------------------
void RimEclipseInputCase::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
uiOrdering.add( &caseUserDescription );
uiOrdering.add( &m_caseUserDescription );
uiOrdering.add( &m_displayNameOption );
uiOrdering.add( &caseId );
uiOrdering.add( &m_caseId );
uiOrdering.add( &m_caseFileName );
uiOrdering.add( &m_additionalFiles );

View File

@@ -560,7 +560,7 @@ RifReaderRftInterface* RimEclipseResultCase::rftReader()
//--------------------------------------------------------------------------------------------------
void RimEclipseResultCase::setCaseInfo( const QString& userDescription, const QString& fileName )
{
this->caseUserDescription = userDescription;
this->setCaseUserDescription( userDescription );
setGridFileName( fileName );
RimProject* proj = RimProject::current();
@@ -590,9 +590,9 @@ bool RimEclipseResultCase::hasSourSimFile()
//--------------------------------------------------------------------------------------------------
void RimEclipseResultCase::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
uiOrdering.add( &caseUserDescription );
uiOrdering.add( &m_caseUserDescription );
uiOrdering.add( &m_displayNameOption );
uiOrdering.add( &caseId );
uiOrdering.add( &m_caseId );
uiOrdering.add( &m_caseFileName );
uiOrdering.add( &m_unitSystem );

View File

@@ -387,8 +387,8 @@ void RimEclipseStatisticsCase::defineUiOrdering( QString uiConfigName, caf::PdmU
updateSelectionListVisibilities();
updatePercentileUiVisibility();
uiOrdering.add( &caseUserDescription );
uiOrdering.add( &caseId );
uiOrdering.add( &m_caseUserDescription );
uiOrdering.add( &m_caseId );
uiOrdering.add( &m_calculateEditCommand );

View File

@@ -358,8 +358,8 @@ RimEclipseStatisticsCase* RimIdenticalGridCaseGroup::createAndAppendStatisticsCa
{
RimEclipseStatisticsCase* newStatisticsCase = new RimEclipseStatisticsCase;
newStatisticsCase->caseUserDescription = QString( "Statistics " ) +
QString::number( statisticsCaseCollection()->reservoirs.size() + 1 );
newStatisticsCase->setCaseUserDescription( QString( "Statistics " ) +
QString::number( statisticsCaseCollection()->reservoirs.size() + 1 ) );
statisticsCaseCollection()->reservoirs.push_back( newStatisticsCase );
newStatisticsCase->populateResultSelectionAfterLoadingGrid();

View File

@@ -549,7 +549,7 @@ void RimProject::assignCaseIdToCase( RimCase* reservoirCase )
m_nextValidCaseId = std::max( m_nextValidCaseId, rimCase->caseId() + 1 );
}
reservoirCase->caseId = m_nextValidCaseId++;
reservoirCase->setCaseId( m_nextValidCaseId++ );
}
}

View File

@@ -252,6 +252,8 @@ void RimSummaryCase::buildChildNodes()
//--------------------------------------------------------------------------------------------------
void RimSummaryCase::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
updateOptionSensitivity();
uiOrdering.add( &m_displayName );
uiOrdering.add( &m_displayNameOption );
uiOrdering.add( &m_summaryHeaderFilename );
@@ -380,6 +382,15 @@ int RimSummaryCase::caseId() const
return m_caseId();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCase::setCustomCaseName( const QString& caseName )
{
m_displayNameOption = RimCaseDisplayNameTools::DisplayName::CUSTOM;
m_displayName = caseName;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -60,6 +60,8 @@ public:
void setCaseId( int caseId );
int caseId() const;
void setCustomCaseName( const QString& caseName );
caf::AppEnum<RiaDefines::EclipseUnitSystem> unitsSystem();
void setDisplayNameOption( RimCaseDisplayNameTools::DisplayName displayNameOption );