for (int iField = 0; iField < exposedReader->GetNumberOfFieldsTreeArrays(); iField++)
{
- const char* name = exposedReader->GetFieldsTreeArrayName(iField);
+ const char* name = exposedReader->GetFieldsTreeArrayName(iField);
localReader->SetFieldsStatus(name, exposedReader->GetFieldsTreeArrayStatus(name));
}
for (int iTimes = 0; iTimes < exposedReader->GetNumberOfTimesFlagsArrays(); iTimes++)
{
- const char* name = exposedReader->GetTimesFlagsArrayName(iTimes);
+ const char* name = exposedReader->GetTimesFlagsArrayName(iTimes);
localReader->SetTimesFlagsStatus(name, exposedReader->GetTimesFlagsArrayStatus(name));
}
localReader->GenerateVectors(exposedReader->GetGenerateVect());
//------------------------------------------------------------------------------
int vtkMEDReader::GetFieldsTreeArrayStatus(const char* name)
-{
+{// EDF30038 : This method can alterate this->FieldSelection !
return this->FieldSelection->ArrayIsEnabled(name);
}
//------------------------------------------------------------------------------
void vtkMEDReader::SetFieldsStatus(const char* name, int status)
{
+ // EDF30038 : GetFieldsTreeArrayStatus does not inform if the name entry already exists. So start to deal with this
+ if( ! this->FieldSelection->ArrayExists( name ) )
+ {
+ this->FieldSelection->SetArraySetting( name, status );
+ this->Modified();
+ return ;
+ }
if (this->GetFieldsTreeArrayStatus(name) != status)
{
if (status)