void ChordEdit::setHarmony(const Harmony* h) { _harmony = h->clone(); setRoot(h->rootTpc()); setBase(h->baseTpc()); setExtension(h->id()); for (int i = 0; i < h->numberOfDegrees(); ++i) addDegree(h->degree(i)); }
void XmlDataPersistance::loadDegrees(const QString &fileName) { QFile file(fileName); if(!file.open(QIODevice::ReadOnly)) throw UTProfilerException("Failed to open " + fileName + " in UVManager::loadDegrees."); QDomDocument dom; dom.setContent(&file); QDomElement degrees = dom.documentElement(); for(QDomElement degreeElement = degrees.firstChildElement("item"); !degreeElement.isNull(); degreeElement = degreeElement.nextSiblingElement("item")) { addDegree(degreeElement); } file.close(); }
void XmlDataPersistance::addDegree(QDomElement &element, Degree *parent) { Degree *degree = new Degree; degree->setTitle(element.firstChildElement("titre").text()); degree->setType(element.attribute("type","formation")); addUvs(degree,element); addQuotas(degree,element); for(QDomElement qElem = element.firstChildElement("quota");!qElem.isNull();qElem = qElem.nextSiblingElement("quota")) { degree->setQuota(qElem.attribute("categorie"),qElem.text().toInt()); } for(QDomElement childElement = element.firstChildElement("item"); !childElement.isNull(); childElement = childElement.nextSiblingElement("item")) { addDegree(childElement,degree); } degree->setParent(parent); degrees_.push_back(degree); }