mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2369 Elm Props: Remove deleted field results from cache
This commit is contained in:
parent
27901f426c
commit
a8039b8569
@ -48,7 +48,7 @@ void RifElementPropertyReader::addFile(const std::string& fileName)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RifElementPropertyReader::removeFile(const std::string& fileName)
|
||||
{
|
||||
@ -61,18 +61,18 @@ void RifElementPropertyReader::removeFile(const std::string& fileName)
|
||||
tempMetaData[metaData.first] = metaData.second;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
m_fieldsMetaData.swap(tempMetaData);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::map<std::string, std::vector<std::string>> RifElementPropertyReader::scalarElementFields()
|
||||
std::map<std::string, std::vector<std::string>> RifElementPropertyReader::scalarElementFields() const
|
||||
{
|
||||
std::map<std::string, std::vector<std::string>> fields;
|
||||
|
||||
for (std::map<std::string, RifElementPropertyMetadata>::iterator field = m_fieldsMetaData.begin();
|
||||
for (std::map<std::string, RifElementPropertyMetadata>::const_iterator field = m_fieldsMetaData.begin();
|
||||
field != m_fieldsMetaData.end(); field++)
|
||||
{
|
||||
fields[field->first];
|
||||
@ -105,8 +105,8 @@ std::map<std::string, std::vector<float>>
|
||||
{
|
||||
for (size_t i = 0; i < table.data.size(); i++)
|
||||
{
|
||||
const std::string& currentFieldFromFile = m_fieldsMetaData[fieldName].dataColumns[i].toStdString();
|
||||
fieldAndData[currentFieldFromFile] = table.data[i];
|
||||
const std::string& currentFieldFromFile = m_fieldsMetaData[fieldName].dataColumns[i].toStdString();
|
||||
fieldAndData[currentFieldFromFile] = table.data[i];
|
||||
}
|
||||
}
|
||||
else if (elementIdsFromFile.size() > m_elementIdxToId.size() && elementIdsFromFile.size() > m_elementIdToIdx.size())
|
||||
@ -156,6 +156,27 @@ std::map<std::string, std::vector<float>>
|
||||
return fieldAndData;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<std::string> RifElementPropertyReader::fieldsInFile(const std::string& fileName) const
|
||||
{
|
||||
std::vector<std::string> fields;
|
||||
|
||||
for (std::pair<std::string, RifElementPropertyMetadata> metaData : m_fieldsMetaData)
|
||||
{
|
||||
if (metaData.second.fileName.toStdString() == fileName)
|
||||
{
|
||||
for (const QString& column : metaData.second.dataColumns)
|
||||
{
|
||||
fields.push_back(column.toStdString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return fields;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -173,7 +194,7 @@ void RifElementPropertyReader::makeElementIdToIdxMap()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RifElementPropertyReader::outputWarningAboutWrongFileData()
|
||||
{
|
||||
|
@ -42,10 +42,12 @@ public:
|
||||
void addFile(const std::string& fileName);
|
||||
void removeFile(const std::string& fileName);
|
||||
|
||||
std::map<std::string, std::vector<std::string>> scalarElementFields();
|
||||
std::map<std::string, std::vector<std::string>> scalarElementFields() const;
|
||||
|
||||
std::map<std::string, std::vector<float>> readAllElementPropertiesInFileContainingField(const std::string& fieldName);
|
||||
|
||||
std::vector<std::string> fieldsInFile(const std::string& fileName) const;
|
||||
|
||||
private:
|
||||
void makeElementIdToIdxMap();
|
||||
static void outputWarningAboutWrongFileData();
|
||||
|
@ -137,10 +137,24 @@ void RigFemPartResultsCollection::addElementPropertyFiles(const std::vector<QStr
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RigFemPartResultsCollection::removeElementPropertyFiles(const std::vector<QString>& filenames)
|
||||
{
|
||||
std::vector<RigFemResultAddress> addressesToRemove;
|
||||
|
||||
for (const QString filename : filenames)
|
||||
{
|
||||
std::vector<std::string> fields = m_elementPropertyReader->fieldsInFile(filename.toStdString());
|
||||
|
||||
for (std::string field : fields)
|
||||
{
|
||||
addressesToRemove.push_back(RigFemResultAddress(RIG_ELEMENT, field, ""));
|
||||
}
|
||||
|
||||
m_elementPropertyReader->removeFile(filename.toStdString());
|
||||
}
|
||||
|
||||
for (const RigFemResultAddress& address : addressesToRemove)
|
||||
{
|
||||
this->deleteResult(address);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user