mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#6991 Update file name for replaced case.
Added extra option to choose auto-name option (similar to RimSummaryCase).
This commit is contained in:
parent
b8c01eabb6
commit
9e4e8cd353
@ -604,6 +604,10 @@ bool RiaApplication::loadProject( const QString& projectFileName,
|
||||
RimCase* cas = casesToLoad[cIdx];
|
||||
CVF_ASSERT( cas );
|
||||
|
||||
// Make sure case name is updated. It can be out-of-sync if the
|
||||
// user has updated the project file manually.
|
||||
cas->updateAutoShortName();
|
||||
|
||||
caseProgress.setProgressDescription( cas->caseUserDescription() );
|
||||
std::vector<Rim3dView*> views = cas->views();
|
||||
{ // To delete the view progress before incrementing the caseProgress
|
||||
|
@ -153,6 +153,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RimColorLegend.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimColorLegendItem.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimAbstractPlotCollection.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimVfpTableExtractor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimCaseDisplayNameTools.h
|
||||
)
|
||||
|
||||
|
||||
@ -309,6 +310,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RimColorLegendCollection.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimColorLegend.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimColorLegendItem.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimVfpTableExtractor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RimCaseDisplayNameTools.cpp
|
||||
)
|
||||
|
||||
list(APPEND CODE_HEADER_FILES
|
||||
|
@ -36,6 +36,8 @@
|
||||
#include "cafPdmObjectFactory.h"
|
||||
#include "cafPdmObjectScriptingCapability.h"
|
||||
|
||||
#include <QFileInfo>
|
||||
|
||||
CAF_PDM_XML_ABSTRACT_SOURCE_INIT( RimCase, "Case", "RimCase" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -49,6 +51,7 @@ RimCase::RimCase()
|
||||
|
||||
CAF_PDM_InitScriptableField( &caseUserDescription, "Name", QString(), "Case Name", "", "", "" );
|
||||
caseUserDescription.registerKeywordAlias( "CaseUserDescription" );
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_displayNameOption, "NameSetting", "Name Setting", "", "", "" );
|
||||
|
||||
CAF_PDM_InitScriptableField( &caseId, "Id", -1, "Case ID", "", "", "" );
|
||||
caseId.registerKeywordAlias( "CaseId" );
|
||||
@ -92,6 +95,9 @@ RimCase::~RimCase()
|
||||
void RimCase::setGridFileName( const QString& fileName )
|
||||
{
|
||||
m_caseFileName.v().setPath( fileName );
|
||||
|
||||
this->updateAutoShortName();
|
||||
this->updateTreeItemName();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -182,6 +188,23 @@ Rim2dIntersectionViewCollection* RimCase::intersectionViewCollection()
|
||||
return m_2dIntersectionViewCollection;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCase::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue )
|
||||
{
|
||||
if ( changedField == &m_displayNameOption )
|
||||
{
|
||||
updateAutoShortName();
|
||||
}
|
||||
else if ( changedField == &caseUserDescription )
|
||||
{
|
||||
updateTreeItemName();
|
||||
}
|
||||
|
||||
updateOptionSensitivity();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -210,6 +233,14 @@ QList<caf::PdmOptionItemInfo> RimCase::calculateValueOptions( const caf::PdmFiel
|
||||
return options;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCase::updateOptionSensitivity()
|
||||
{
|
||||
caseUserDescription.uiCapability()->setUiReadOnly( m_displayNameOption != RimCaseDisplayNameTools::DisplayName::CUSTOM );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -219,6 +250,14 @@ void RimCase::initAfterRead()
|
||||
{
|
||||
RimProject::current()->assignCaseIdToCase( this );
|
||||
}
|
||||
|
||||
if ( RimProject::current()->isProjectFileVersionEqualOrOlderThan( "2020.10.0" ) )
|
||||
{
|
||||
// Don't mess with case names in older projects: the user can have changed the name.
|
||||
m_displayNameOption = RimCaseDisplayNameTools::DisplayName::CUSTOM;
|
||||
}
|
||||
|
||||
updateOptionSensitivity();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -228,3 +267,58 @@ caf::PdmFieldHandle* RimCase::userDescriptionField()
|
||||
{
|
||||
return &caseUserDescription;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCase::updateAutoShortName()
|
||||
{
|
||||
if ( m_displayNameOption == RimCaseDisplayNameTools::DisplayName::FULL_CASE_NAME )
|
||||
{
|
||||
caseUserDescription = caseName();
|
||||
}
|
||||
else if ( m_displayNameOption == RimCaseDisplayNameTools::DisplayName::SHORT_CASE_NAME )
|
||||
{
|
||||
caseUserDescription = RimCase::uniqueShortNameCase( this, RimCaseDisplayNameTools::CASE_SHORT_NAME_LENGTH );
|
||||
}
|
||||
updateTreeItemName();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCase::updateTreeItemName()
|
||||
{
|
||||
setUiName( caseUserDescription() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimCase::caseName() const
|
||||
{
|
||||
QFileInfo fileName( gridFileName() );
|
||||
return fileName.completeBaseName();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimCase::uniqueShortNameCase( RimCase* rimCase, int shortNameLengthLimit )
|
||||
{
|
||||
std::set<QString> allAutoShortNames;
|
||||
|
||||
std::vector<RimCase*> allCases;
|
||||
RimProject::current()->descendantsOfType( allCases );
|
||||
|
||||
for ( RimCase* rCase : allCases )
|
||||
{
|
||||
if ( rCase && rCase != rimCase )
|
||||
{
|
||||
allAutoShortNames.insert( rimCase->caseName() );
|
||||
}
|
||||
}
|
||||
|
||||
QString caseName = rimCase->caseName();
|
||||
return RimCaseDisplayNameTools::uniqueShortName( caseName, allAutoShortNames, shortNameLengthLimit );
|
||||
}
|
||||
|
@ -19,6 +19,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "RimCaseDisplayNameTools.h"
|
||||
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
#include "cafPdmField.h"
|
||||
@ -46,6 +48,8 @@ class RimCase : public caf::PdmObject
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
|
||||
using DisplayNameEnum = caf::AppEnum<RimCaseDisplayNameTools::DisplayName>;
|
||||
|
||||
public:
|
||||
RimCase();
|
||||
~RimCase() override;
|
||||
@ -56,6 +60,10 @@ public:
|
||||
void setGridFileName( const QString& fileName );
|
||||
QString gridFileName() const;
|
||||
|
||||
void setDisplayNameOption( RimCaseDisplayNameTools::DisplayName displayNameOption );
|
||||
void updateAutoShortName();
|
||||
void updateOptionSensitivity();
|
||||
|
||||
std::vector<Rim3dView*> views() const;
|
||||
std::vector<RimGridView*> gridViews() const;
|
||||
|
||||
@ -84,16 +92,24 @@ public:
|
||||
caf::Signal<> settingsChanged;
|
||||
|
||||
protected:
|
||||
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions,
|
||||
bool* useOptionsOnly ) override;
|
||||
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions,
|
||||
bool* useOptionsOnly ) override;
|
||||
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
||||
|
||||
virtual std::vector<Rim3dView*> allSpecialViews() const = 0;
|
||||
void initAfterRead() override;
|
||||
void updateTreeItemName();
|
||||
|
||||
virtual QString caseName() const;
|
||||
|
||||
static QString uniqueShortNameCase( RimCase* rimCase, int shortNameLengthLimit );
|
||||
|
||||
private:
|
||||
caf::PdmFieldHandle* userDescriptionField() override;
|
||||
|
||||
protected:
|
||||
caf::PdmField<caf::FilePath> m_caseFileName;
|
||||
caf::PdmField<DisplayNameEnum> m_displayNameOption;
|
||||
caf::PdmChildField<RimTimeStepFilter*> m_timeStepFilter;
|
||||
caf::PdmChildField<Rim2dIntersectionViewCollection*> m_2dIntersectionViewCollection;
|
||||
caf::PdmPtrField<RimFormationNames*> m_activeFormationNames;
|
||||
|
95
ApplicationCode/ProjectDataModel/RimCaseDisplayNameTools.cpp
Normal file
95
ApplicationCode/ProjectDataModel/RimCaseDisplayNameTools.cpp
Normal file
@ -0,0 +1,95 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2020- Equinor ASA
|
||||
//
|
||||
// ResInsight is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RimCaseDisplayNameTools.h"
|
||||
|
||||
#include <QString>
|
||||
|
||||
#include "cafAppEnum.h"
|
||||
|
||||
namespace caf
|
||||
{
|
||||
template <>
|
||||
void AppEnum<RimCaseDisplayNameTools::DisplayName>::setUp()
|
||||
{
|
||||
addItem( RimCaseDisplayNameTools::DisplayName::FULL_CASE_NAME, "FULL_CASE_NAME", "Full Case Name" );
|
||||
addItem( RimCaseDisplayNameTools::DisplayName::SHORT_CASE_NAME, "SHORT_CASE_NAME", "Shortened Case Name" );
|
||||
addItem( RimCaseDisplayNameTools::DisplayName::CUSTOM, "CUSTOM_NAME", "Custom Name" );
|
||||
setDefault( RimCaseDisplayNameTools::DisplayName::FULL_CASE_NAME );
|
||||
}
|
||||
|
||||
} // namespace caf
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimCaseDisplayNameTools::uniqueShortName( const QString& caseName,
|
||||
const std::set<QString>& allAutoShortNames,
|
||||
int shortNameLengthLimit )
|
||||
{
|
||||
bool foundUnique = false;
|
||||
|
||||
QString shortName;
|
||||
|
||||
if ( caseName.size() > shortNameLengthLimit )
|
||||
{
|
||||
QString candidate;
|
||||
candidate += caseName[0];
|
||||
|
||||
for ( int i = 1; i < caseName.size(); ++i )
|
||||
{
|
||||
if ( foundUnique && !caseName[i].isLetterOrNumber() )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
candidate += caseName[i];
|
||||
if ( allAutoShortNames.count( candidate ) == 0 )
|
||||
{
|
||||
shortName = candidate;
|
||||
foundUnique = true;
|
||||
if ( shortName.length() >= shortNameLengthLimit )
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
shortName = caseName.left( shortNameLengthLimit );
|
||||
if ( allAutoShortNames.count( shortName ) == 0 )
|
||||
{
|
||||
foundUnique = true;
|
||||
}
|
||||
}
|
||||
|
||||
int autoNumber = 1;
|
||||
|
||||
while ( !foundUnique )
|
||||
{
|
||||
QString candidate = QString( "%1 %2" ).arg( shortName ).arg( autoNumber++ );
|
||||
if ( allAutoShortNames.count( candidate ) == 0 )
|
||||
{
|
||||
shortName = candidate;
|
||||
foundUnique = true;
|
||||
}
|
||||
}
|
||||
|
||||
return shortName;
|
||||
}
|
44
ApplicationCode/ProjectDataModel/RimCaseDisplayNameTools.h
Normal file
44
ApplicationCode/ProjectDataModel/RimCaseDisplayNameTools.h
Normal file
@ -0,0 +1,44 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2020 Equinor ASA
|
||||
//
|
||||
// ResInsight is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#pragma once
|
||||
|
||||
#include <set>
|
||||
|
||||
#include <QString>
|
||||
|
||||
//==================================================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==================================================================================================
|
||||
|
||||
class RimCaseDisplayNameTools
|
||||
{
|
||||
public:
|
||||
enum class DisplayName
|
||||
{
|
||||
FULL_CASE_NAME,
|
||||
SHORT_CASE_NAME,
|
||||
CUSTOM
|
||||
};
|
||||
|
||||
static const int CASE_SHORT_NAME_LENGTH = 4;
|
||||
|
||||
static QString
|
||||
uniqueShortName( const QString& caseName, const std::set<QString>& allAutoShortNames, int shortNameLengthLimit );
|
||||
};
|
@ -459,6 +459,7 @@ void RimEclipseCase::fieldChangedByUi( const caf::PdmFieldHandle* changedField,
|
||||
const QVariant& oldValue,
|
||||
const QVariant& newValue )
|
||||
{
|
||||
RimCase::fieldChangedByUi( changedField, oldValue, newValue );
|
||||
if ( changedField == &m_releaseResultMemory )
|
||||
{
|
||||
RimReloadCaseTools::reloadAllEclipseGridData( this );
|
||||
|
@ -298,6 +298,7 @@ cvf::ref<RifReaderInterface> RimEclipseInputCase::createMockModel( QString model
|
||||
void RimEclipseInputCase::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
||||
{
|
||||
uiOrdering.add( &caseUserDescription );
|
||||
uiOrdering.add( &m_displayNameOption );
|
||||
uiOrdering.add( &caseId );
|
||||
uiOrdering.add( &m_caseFileName );
|
||||
uiOrdering.add( &m_additionalFiles );
|
||||
|
@ -613,6 +613,7 @@ void RimEclipseResultCase::initAfterRead()
|
||||
void RimEclipseResultCase::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
||||
{
|
||||
uiOrdering.add( &caseUserDescription );
|
||||
uiOrdering.add( &m_displayNameOption );
|
||||
uiOrdering.add( &caseId );
|
||||
uiOrdering.add( &m_caseFileName );
|
||||
uiOrdering.add( &m_unitSystem );
|
||||
|
@ -192,6 +192,9 @@ RimGeoMechCase::RimGeoMechCase( void )
|
||||
"" );
|
||||
m_mudWeightWindowParameters = new RimMudWeightWindowParameters;
|
||||
m_mudWeightWindowParameters.uiCapability()->setUiTreeHidden( true );
|
||||
|
||||
m_displayNameOption = RimCaseDisplayNameTools::DisplayName::CUSTOM;
|
||||
m_displayNameOption.uiCapability()->setUiHidden( true );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -36,20 +36,7 @@
|
||||
#include <QFileInfo>
|
||||
#include <QRegularExpression>
|
||||
|
||||
#define SUMMARY_CASE_SHORT_NAME_LENGTH 4 // TODO: Could make this a preference if required.
|
||||
|
||||
CAF_PDM_ABSTRACT_SOURCE_INIT( RimSummaryCase, "SummaryCase" );
|
||||
namespace caf
|
||||
{
|
||||
template <>
|
||||
void AppEnum<RimSummaryCase::DisplayName>::setUp()
|
||||
{
|
||||
addItem( RimSummaryCase::DisplayName::FULL_CASE_NAME, "FULL_CASE_NAME", "Full Case Name" );
|
||||
addItem( RimSummaryCase::DisplayName::SHORT_CASE_NAME, "SHORT_CASE_NAME", "Shortened Case Name" );
|
||||
addItem( RimSummaryCase::DisplayName::CUSTOM, "CUSTOM_NAME", "Custom Name" );
|
||||
setDefault( RimSummaryCase::DisplayName::FULL_CASE_NAME );
|
||||
}
|
||||
} // namespace caf
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
@ -193,7 +180,7 @@ void RimSummaryCase::fieldChangedByUi( const caf::PdmFieldHandle* changedField,
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCase::updateOptionSensitivity()
|
||||
{
|
||||
m_displayName.uiCapability()->setUiReadOnly( m_displayNameOption != DisplayName::CUSTOM );
|
||||
m_displayName.uiCapability()->setUiReadOnly( m_displayNameOption != RimCaseDisplayNameTools::DisplayName::CUSTOM );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -260,7 +247,7 @@ RiaEclipseUnitTools::UnitSystemType RimSummaryCase::unitsSystem()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCase::setDisplayNameOption( DisplayName displayNameOption )
|
||||
void RimSummaryCase::setDisplayNameOption( RimCaseDisplayNameTools::DisplayName displayNameOption )
|
||||
{
|
||||
m_displayNameOption = displayNameOption;
|
||||
}
|
||||
@ -277,7 +264,7 @@ void RimSummaryCase::initAfterRead()
|
||||
|
||||
if ( m_useAutoShortName_OBSOLETE )
|
||||
{
|
||||
m_displayNameOption = DisplayName::SHORT_CASE_NAME;
|
||||
m_displayNameOption = RimCaseDisplayNameTools::DisplayName::SHORT_CASE_NAME;
|
||||
}
|
||||
|
||||
updateOptionSensitivity();
|
||||
@ -333,13 +320,13 @@ QString RimSummaryCase::uniqueShortNameForEnsembleCase( RimSummaryCase* summaryC
|
||||
if ( !numberGroup.isEmpty() )
|
||||
{
|
||||
keyComponent = keyComponent.replace( numberGroup, "" );
|
||||
QString stem = keyComponent.left( SUMMARY_CASE_SHORT_NAME_LENGTH );
|
||||
QString stem = keyComponent.left( RimCaseDisplayNameTools::CASE_SHORT_NAME_LENGTH );
|
||||
if ( !stem.isEmpty() ) subComponents.push_back( stem );
|
||||
subComponents.push_back( numberGroup );
|
||||
}
|
||||
else
|
||||
{
|
||||
subComponents.push_back( keyComponent.left( SUMMARY_CASE_SHORT_NAME_LENGTH ) );
|
||||
subComponents.push_back( keyComponent.left( RimCaseDisplayNameTools::CASE_SHORT_NAME_LENGTH ) );
|
||||
}
|
||||
|
||||
shortNameComponents.push_back( subComponents.join( "-" ) );
|
||||
@ -365,57 +352,9 @@ QString RimSummaryCase::uniqueShortNameForSummaryCase( RimSummaryCase* summaryCa
|
||||
}
|
||||
}
|
||||
|
||||
bool foundUnique = false;
|
||||
|
||||
QString caseName = summaryCase->caseName();
|
||||
QString shortName;
|
||||
|
||||
if ( caseName.size() > SUMMARY_CASE_SHORT_NAME_LENGTH )
|
||||
{
|
||||
QString candidate;
|
||||
candidate += caseName[0];
|
||||
|
||||
for ( int i = 1; i < caseName.size(); ++i )
|
||||
{
|
||||
if ( foundUnique && !caseName[i].isLetterOrNumber() )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
candidate += caseName[i];
|
||||
if ( allAutoShortNames.count( candidate ) == 0 )
|
||||
{
|
||||
shortName = candidate;
|
||||
foundUnique = true;
|
||||
if ( shortName.length() >= SUMMARY_CASE_SHORT_NAME_LENGTH )
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
shortName = caseName.left( SUMMARY_CASE_SHORT_NAME_LENGTH );
|
||||
if ( allAutoShortNames.count( shortName ) == 0 )
|
||||
{
|
||||
foundUnique = true;
|
||||
}
|
||||
}
|
||||
|
||||
int autoNumber = 1;
|
||||
|
||||
while ( !foundUnique )
|
||||
{
|
||||
QString candidate = QString( "%1 %2" ).arg( shortName ).arg( autoNumber++ );
|
||||
if ( allAutoShortNames.count( candidate ) == 0 )
|
||||
{
|
||||
shortName = candidate;
|
||||
foundUnique = true;
|
||||
}
|
||||
}
|
||||
|
||||
return shortName;
|
||||
return RimCaseDisplayNameTools::uniqueShortName( summaryCase->caseName(),
|
||||
allAutoShortNames,
|
||||
RimCaseDisplayNameTools::CASE_SHORT_NAME_LENGTH );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -423,11 +362,11 @@ QString RimSummaryCase::uniqueShortNameForSummaryCase( RimSummaryCase* summaryCa
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCase::updateAutoShortName()
|
||||
{
|
||||
if ( m_displayNameOption == DisplayName::FULL_CASE_NAME )
|
||||
if ( m_displayNameOption == RimCaseDisplayNameTools::DisplayName::FULL_CASE_NAME )
|
||||
{
|
||||
m_displayName = caseName();
|
||||
}
|
||||
else if ( m_displayNameOption == DisplayName::SHORT_CASE_NAME )
|
||||
else if ( m_displayNameOption == RimCaseDisplayNameTools::DisplayName::SHORT_CASE_NAME )
|
||||
{
|
||||
if ( ensemble() )
|
||||
{
|
||||
|
@ -20,6 +20,8 @@
|
||||
#include "RiaEclipseUnitTools.h"
|
||||
#include "RigCaseRealizationParameters.h"
|
||||
|
||||
#include "RimCaseDisplayNameTools.h"
|
||||
|
||||
#include "cafFilePath.h"
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
@ -43,13 +45,7 @@ class RimSummaryCase : public caf::PdmObject
|
||||
public:
|
||||
caf::Signal<> nameChanged;
|
||||
|
||||
enum class DisplayName
|
||||
{
|
||||
FULL_CASE_NAME,
|
||||
SHORT_CASE_NAME,
|
||||
CUSTOM
|
||||
};
|
||||
using DisplayNameEnum = caf::AppEnum<DisplayName>;
|
||||
using DisplayNameEnum = caf::AppEnum<RimCaseDisplayNameTools::DisplayName>;
|
||||
|
||||
public:
|
||||
RimSummaryCase();
|
||||
@ -63,7 +59,7 @@ public:
|
||||
|
||||
RiaEclipseUnitTools::UnitSystemType unitsSystem();
|
||||
|
||||
void setDisplayNameOption( DisplayName displayNameOption );
|
||||
void setDisplayNameOption( RimCaseDisplayNameTools::DisplayName displayNameOption );
|
||||
void updateAutoShortName();
|
||||
void updateOptionSensitivity();
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "RifEclipseSummaryTools.h"
|
||||
#include "RifSummaryCaseRestartSelector.h"
|
||||
|
||||
#include "RimCaseDisplayNameTools.h"
|
||||
#include "RimDerivedEnsembleCaseCollection.h"
|
||||
#include "RimEclipseResultCase.h"
|
||||
#include "RimFileSummaryCase.h"
|
||||
@ -289,7 +290,7 @@ RimSummaryCaseCollection*
|
||||
summaryCaseCollection->addCase( summaryCase );
|
||||
if ( isEnsemble )
|
||||
{
|
||||
summaryCase->setDisplayNameOption( RimSummaryCase::DisplayName::SHORT_CASE_NAME );
|
||||
summaryCase->setDisplayNameOption( RimCaseDisplayNameTools::DisplayName::SHORT_CASE_NAME );
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user