Update file paths if project file is moved on disk

p4#: 21162
This commit is contained in:
Magne Sjaastad 2013-04-08 09:57:40 +02:00
parent 4ae9182fc6
commit 775b9e5bee
2 changed files with 48 additions and 8 deletions

View File

@ -419,3 +419,40 @@ QString RimInputCase::locationOnDisc() const
QFileInfo fi(m_gridFileName);
return fi.absolutePath();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimInputCase::initAfterRead()
{
RimCase::initAfterRead();
QString projPath = RiaApplication::instance()->project()->projectPath();
QString candidate;
if (!QFile::exists(m_gridFileName))
{
QString fileNameWithoutPath = QFileInfo(m_gridFileName).fileName();
candidate = QDir::fromNativeSeparators(projPath + QDir::separator() + fileNameWithoutPath);
if (QFile::exists(candidate))
{
m_gridFileName = candidate;
}
}
for (size_t i = 0; i < m_additionalFileNames().size(); i++)
{
QString additionalFileName = m_additionalFileNames()[i];
if (!QFile::exists(additionalFileName))
{
QString fileNameWithoutPath = QFileInfo(additionalFileName).fileName();
candidate = QDir::fromNativeSeparators(projPath + QDir::separator() + fileNameWithoutPath);
if (QFile::exists(candidate))
{
m_additionalFileNames.v()[i] = candidate;
}
}
}
}

View File

@ -64,10 +64,13 @@ public:
virtual QString locationOnDisc() const;
protected:
virtual void initAfterRead();
private:
void addFiles(const QStringList& newFileNames);
void removeFiles(const QStringList& obsoleteFileNames);
cvf::ref<RifReaderInterface> createMockModel(QString modelName);
cvf::ref<RifReaderInterface> createMockModel(QString modelName);
};