From a40a3578f20b2775b9bea0c29980f935f071baca Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Mon, 8 Jan 2018 10:35:53 +0100 Subject: [PATCH 1/2] #2329 Add relocate of well path formation file --- ApplicationCode/ProjectDataModel/RimWellPath.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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; + } + } + } //-------------------------------------------------------------------------------------------------- From 561e20a37ea6935fa4bcefd27a3688f96ac1daf9 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Mon, 8 Jan 2018 10:37:57 +0100 Subject: [PATCH 2/2] #2329 Add relocate of RimWellLogFile --- ApplicationCode/ProjectDataModel/RimProject.cpp | 16 +++++++++++++--- .../ProjectDataModel/RimWellLogFile.cpp | 15 +++++++++++++++ .../ProjectDataModel/RimWellLogFile.h | 2 ++ 3 files changed, 30 insertions(+), 3 deletions(-) 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;