void ComponentTypesFile::setComponentType(OovStringRef const compName, OovStringRef const typeName) { eCompTypes newType = getComponentTypeFromTypeName(typeName); if(newType != CT_Unknown && newType != getComponentType(compName)) { coerceParentComponents(compName); coerceChildComponents(compName); } setComponentType(compName, getComponentTypeFromTypeName(typeName)); }
void ComponentTypesFile::coerceChildComponents(OovStringRef const compName) { OovStringVec names = getComponentNames(); OovString parentName = compName; for(auto const &name : names) { if(name != parentName) { if(compareComponentNames(parentName, name)) { setComponentType(name, CT_Unknown); } } } }
void ComponentTypesFile::coerceParentComponents(OovStringRef const compName) { OovString name = compName; while(1) { size_t pos = name.rfind('/'); if(pos != std::string::npos) { name.erase(pos); } if(compName != name.getStr()) { setComponentType(name, CT_Unknown); } if(pos == std::string::npos) { break; } } }
Noter::Noter(QWidget *parent) : Component(parent) { resize(50,50); setComponentType(6); setValue(0); }