#2369 Elm props: Clear cell results on deletion

This commit is contained in:
Rebecca Cox
2018-01-15 14:48:00 +01:00
parent 277bd496f1
commit 4bf8de2787
5 changed files with 32 additions and 9 deletions

View File

@@ -48,9 +48,9 @@ void RicImportElementPropertyFeature::onActionTriggered(bool isChecked)
QString defaultDir = app->lastUsedDialogDirectory("ELM_PROPS"); QString defaultDir = app->lastUsedDialogDirectory("ELM_PROPS");
QStringList fileNames = QStringList fileNames =
QFileDialog::getOpenFileNames(NULL, "Import Element Property Table", defaultDir, "Property Table (*.inp)"); QFileDialog::getOpenFileNames(nullptr, "Import Element Property Table", defaultDir, "Property Table (*.inp)");
if (fileNames.size()) if (!fileNames.empty())
{ {
defaultDir = QFileInfo(fileNames.last()).absolutePath(); defaultDir = QFileInfo(fileNames.last()).absolutePath();
} }

View File

@@ -87,6 +87,13 @@ std::map<std::string, std::vector<std::string>> RifElementPropertyReader::scalar
std::map<std::string, std::vector<float>> std::map<std::string, std::vector<float>>
RifElementPropertyReader::readAllElementPropertiesInFileContainingField(const std::string& fieldName) RifElementPropertyReader::readAllElementPropertiesInFileContainingField(const std::string& fieldName)
{ {
std::map<std::string, std::vector<float>> fieldAndData;
if (m_fieldsMetaData.find(fieldName) == m_fieldsMetaData.end())
{
return fieldAndData;
}
RifElementPropertyTable table; RifElementPropertyTable table;
RifElementPropertyTableReader::readData(&m_fieldsMetaData[fieldName], &table); RifElementPropertyTableReader::readData(&m_fieldsMetaData[fieldName], &table);
@@ -97,8 +104,6 @@ std::map<std::string, std::vector<float>>
CVF_ASSERT(table.data[i].size() == table.elementIds.size()); CVF_ASSERT(table.data[i].size() == table.elementIds.size());
} }
std::map<std::string, std::vector<float>> fieldAndData;
const std::vector<int>& elementIdsFromFile = table.elementIds; const std::vector<int>& elementIdsFromFile = table.elementIds;
if (elementIdsFromFile == m_elementIdxToId) if (elementIdsFromFile == m_elementIdxToId)

View File

@@ -29,6 +29,13 @@
class RigFemResultAddress class RigFemResultAddress
{ {
public: public:
RigFemResultAddress()
{
resultPosType = RIG_NODAL;
fieldName = "";
componentName = "";
}
RigFemResultAddress(RigFemResultPosEnum resPosType, RigFemResultAddress(RigFemResultPosEnum resPosType,
const std::string& aFieldName, const std::string& aFieldName,
const std::string& aComponentName) const std::string& aComponentName)

View File

@@ -561,6 +561,17 @@ void RimGeoMechCase::closeSelectedElementPropertyFiles()
{ {
geoMechData()->femPartResults()->removeElementPropertyFiles(filesToClose); geoMechData()->femPartResults()->removeElementPropertyFiles(filesToClose);
} }
for (RimGeoMechView* view : geoMechViews())
{
view->cellResult()->setResultAddress(RigFemResultAddress());
for (RimGeoMechPropertyFilter* propertyFilter : view->geoMechPropertyFilterCollection()->propertyFilters())
{
propertyFilter->resultDefinition().p()->setResultAddress(RigFemResultAddress());
}
view->loadDataAndUpdate();
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@@ -45,14 +45,14 @@ public:
caf::PdmChildArrayField<RimGeoMechPropertyFilter*> propertyFilters; caf::PdmChildArrayField<RimGeoMechPropertyFilter*> propertyFilters;
// Methods // Methods
bool hasActiveFilters() const; bool hasActiveFilters() const override;
bool hasActiveDynamicFilters() const; bool hasActiveDynamicFilters() const override;
bool isUsingFormationNames() const; bool isUsingFormationNames() const;
void loadAndInitializePropertyFilters(); void loadAndInitializePropertyFilters() override;
void updateIconState(); void updateIconState() override;
protected: protected:
// Overridden methods // Overridden methods
virtual void initAfterRead(); virtual void initAfterRead() override;
}; };