void TreeModel::checkDependentState(const QModelIndex dependee, Teuchos::RCP<Dependency> dependency){ Dependency::Type type = dependency->getType(); QModelIndex dependent; Teuchos::ParameterEntry *currentDependent; Dependency::ParameterParentMap dependents= dependency->getDependents(); for(Dependency::ParameterParentMap::iterator it = dependents.begin(); it != dependents.end(); ++it ){ currentDependent = it->second->getEntryPtr(it->first); dependent = findParameterEntryIndex(currentDependent, it->first); if(type == Dependency::NumberArrayLengthDep){ redrawArray(dependent.sibling(dependent.row(),1)); } else if(type == Dependency::VisualDep){ Teuchos::RCP<VisualDependency> visDep = Teuchos::rcp_static_cast<VisualDependency>(dependency); visDep->isDependentVisible() ? emit showData(dependent.row(), dependent.parent()) : emit hideData(dependent.row(), dependent.parent()); } if(!hasValidValue(dependent)){ QString message = "Because you recently modified the " + data(dependee, Qt::DisplayRole).toString() + " parameter, the valid values for the " + data(dependent, Qt::DisplayRole).toString() + " parameter have changed.\n\nPlease modify the " + data(dependent,Qt::DisplayRole).toString() + " value.\n"; emit badValue(dependent.sibling(dependent.row(), 1), message); } } }
//----------------------------------------------------------------------------- // Function: ParameterValidator2014::validate() //----------------------------------------------------------------------------- bool ParameterValidator2014::validate(Parameter const* parameter, QSharedPointer<QList<QSharedPointer<Choice> > > availableChoices) const { return hasValidName(parameter) && hasValidValue(parameter, availableChoices) && hasValidMinimumValue(parameter) && hasValidMaximumValue(parameter) && hasValidChoice(parameter, availableChoices) && hasValidResolve(parameter) && hasValidValueId(parameter); }