diff --git a/ApplicationCode/ProjectDataModel/RimProject.cpp b/ApplicationCode/ProjectDataModel/RimProject.cpp index 35e9f9275e..079d06c6ac 100644 --- a/ApplicationCode/ProjectDataModel/RimProject.cpp +++ b/ApplicationCode/ProjectDataModel/RimProject.cpp @@ -52,6 +52,8 @@ #include "RimMultiSnapshotDefinition.h" #include "RimObservedDataCollection.h" #include "RimOilField.h" +#include "RimPltPlotCollection.h" +#include "RimRftPlotCollection.h" #include "RimScriptCollection.h" #include "RimSummaryCaseMainCollection.h" #include "RimSummaryCrossPlotCollection.h" @@ -59,12 +61,11 @@ #include "RimView.h" #include "RimViewLinker.h" #include "RimViewLinkerCollection.h" +#include "RimWellLogFile.h" #include "RimWellLogPlotCollection.h" -#include "RimRftPlotCollection.h" -#include "RimPltPlotCollection.h" +#include "RimWellPath.h" #include "RimWellPathCollection.h" #include "RimWellPathImport.h" -#include "RimWellPath.h" #include "RiuMainWindow.h" #include "RiuMainPlotWindow.h" @@ -470,6 +471,15 @@ void RimProject::setProjectFileNameAndUpdateDependencies(const QString& fileName #endif // USE_PROTOTYPE_FEATURE_FRACTURES } + { + std::vector rimWellLogFiles; + this->descendantsIncludingThisOfType(rimWellLogFiles); + + for (auto rimWellLogFile : rimWellLogFiles) + { + rimWellLogFile->updateFilePathsFromProjectPath(newProjectPath, oldProjectPath); + } + } wellPathImport->updateFilePaths(); } diff --git a/ApplicationCode/ProjectDataModel/RimWellLogFile.cpp b/ApplicationCode/ProjectDataModel/RimWellLogFile.cpp index 9750eb7745..5dcb6f5049 100644 --- a/ApplicationCode/ProjectDataModel/RimWellLogFile.cpp +++ b/ApplicationCode/ProjectDataModel/RimWellLogFile.cpp @@ -243,6 +243,21 @@ bool RimWellLogFile::hasFlowData() const return RimWellPlotTools::hasFlowData(this); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimWellLogFile::updateFilePathsFromProjectPath(const QString& newProjectPath, const QString& oldProjectPath) +{ + bool foundFile = false; + std::vector searchedPaths; + + QString fileNameCandidate = RimTools::relocateFile(m_fileName(), newProjectPath, oldProjectPath, &foundFile, &searchedPaths); + if (foundFile) + { + m_fileName = fileNameCandidate; + } +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimWellLogFile.h b/ApplicationCode/ProjectDataModel/RimWellLogFile.h index 160c3c6fa8..819a0b8797 100644 --- a/ApplicationCode/ProjectDataModel/RimWellLogFile.h +++ b/ApplicationCode/ProjectDataModel/RimWellLogFile.h @@ -72,6 +72,8 @@ public: RimWellLogFile::WellFlowCondition wellFlowRateCondition() const { return m_wellFlowCondition(); } + void updateFilePathsFromProjectPath(const QString& newProjectPath, const QString& oldProjectPath); + private: virtual void setupBeforeSave() override; virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; diff --git a/ApplicationCode/ProjectDataModel/RimWellPath.cpp b/ApplicationCode/ProjectDataModel/RimWellPath.cpp index 712e520eb8..6c703b76b2 100644 --- a/ApplicationCode/ProjectDataModel/RimWellPath.cpp +++ b/ApplicationCode/ProjectDataModel/RimWellPath.cpp @@ -621,6 +621,18 @@ void RimWellPath::updateFilePathsFromProjectPath(const QString& newProjectPath, { filepath = RimTools::relocateFile(filepath(), newProjectPath, oldProjectPath, nullptr, nullptr); } + + { + bool foundFile = false; + std::vector searchedPaths; + + QString fileNameCandidate = RimTools::relocateFile(m_wellPathFormationFilePath, newProjectPath, oldProjectPath, &foundFile, &searchedPaths); + if (foundFile) + { + m_wellPathFormationFilePath = fileNameCandidate; + } + } + } //--------------------------------------------------------------------------------------------------