int SaveManager::SaveNetwork(const NeuralNetwork& nn, QString neuralNetworkName) { QString fileXmlName = neuralNetworkName; //savePath+neuralNetworkName+".xml"; QFile fileXml(fileXmlName); // Ouverture du fichier en écriture et en texte. (sort de la fonction si le fichier ne s'ouvre pas) if(!fileXml.open(QFile::WriteOnly | QFile::Text)) { return false; } QXmlStreamWriter writer(&fileXml); // Active l'indentation automatique du fichier XML pour une meilleur visibilite writer.setAutoFormatting(true); // Insert la norme de codification du fichier XML : writer.writeStartDocument(); SaveNetwork(nn,writer); writer.writeEndDocument(); fileXml.close(); return 0; }
void SaveManager::saveWorld(const World& world, QString savingPath) { QFile fileXml(savingPath); // Ouverture du fichier en écriture et en texte. (sort de la fonction si le fichier ne s'ouvre pas) if(!fileXml.open(QFile::WriteOnly | QFile::Text)) { std::cerr << "failed to open file: " << savingPath.toStdString() << std::endl; return; } QXmlStreamWriter writer(&fileXml); // Active l'indentation automatique du fichier XML pour une meilleur visibilite writer.setAutoFormatting(true); // Insert la norme de codification du fichier XML : writer.writeStartDocument(); writer.writeStartElement("World"); writer.writeTextElement("x", QString::number(world.getSizeX())); writer.writeTextElement("y", QString::number(world.getSizeY())); writer.writeTextElement("age", QString::number(world.getWorldAge())); writer.writeTextElement("generationNumber", QString::number(world.getGenerationNumber())); for(auto entity:world.getCopyOfEntities()) { if(auto r = std::dynamic_pointer_cast<Resource>(entity)) { saveResource(r,writer); } else if(auto a = std::dynamic_pointer_cast<Animal>(entity)) { saveAnimal(a,writer); } } writer.writeEndElement();//World writer.writeEndDocument(); fileXml.close(); }
bool CTextEditStyleList::loadHighlights() { QFile fileXml( HIGHLIGHT_FILEPATH ); if (!fileXml.open(QIODevice::ReadOnly | QIODevice::Text)) { fileXml.setFileName("xml/highlights.xml"); if (!fileXml.open(QIODevice::ReadOnly | QIODevice::Text)) { // no highlights - add one default highlight if (m_listTextStyle.size() == 0) { addTextStyleName(STRING_PLAIN_TEXT); } return false; } } QDomDocument mDocument; if (!mDocument.setContent(fileXml.readAll())) { // no highlights - add one default highlight if (m_listTextStyle.size() == 0) { addTextStyleName(STRING_PLAIN_TEXT); } return false; } QString strHighlightName; QString strColorR; QString strColorG; QString strColorB; int r,g,b; int i; QStringList listWord; QStringList listIgnoredWord; QDomElement pHighlightsElement = mDocument.firstChildElement(); if (pHighlightsElement.nodeName() == "highlights") { QDomElement pHighlightElement = pHighlightsElement.firstChildElement(); while ( !pHighlightElement.isNull() ) { if (pHighlightElement.nodeName() == "highlight" && pHighlightElement.attribute("name").isEmpty() == false) { // new highlight here strHighlightName = pHighlightElement.attribute("name"); addTextStyleName(strHighlightName); CTextEditStyle *pStyle = getTextEditStyle(strHighlightName); QDomElement pExtensionOrRuleElement = pHighlightElement.firstChildElement(); while ( !pExtensionOrRuleElement.isNull() ) { if (pExtensionOrRuleElement.nodeName() == "extension" && pExtensionOrRuleElement.text().isEmpty() == false) { addFileExtensionInTextStyle(pExtensionOrRuleElement.text(), strHighlightName); } if (pExtensionOrRuleElement.nodeName() == "rule" && pExtensionOrRuleElement.attribute("type").isEmpty() == false) { strColorR = pExtensionOrRuleElement.attribute("colorR"); strColorG = pExtensionOrRuleElement.attribute("colorG"); strColorB = pExtensionOrRuleElement.attribute("colorB"); if (strColorR.isEmpty() == false && strColorG.isEmpty() == false && strColorB.isEmpty() == false ) { r = atoi(qPrintable(strColorR)); g = atoi(qPrintable(strColorG)); b = atoi(qPrintable(strColorB)); listWord.clear(); listIgnoredWord.clear(); QDomElement pWordElement = pExtensionOrRuleElement.firstChildElement(); while ( !pWordElement.isNull() ) { if (pWordElement.nodeName() == "word") { listWord.append( pWordElement.text() ); } else if (pWordElement.nodeName() == "ignoredword") { listIgnoredWord.append( pWordElement.text() ); } pWordElement = pWordElement.nextSiblingElement(); } if (listWord.size() == 2 && pExtensionOrRuleElement.attribute("type") == "RuleWordsBetween") { if (listIgnoredWord.size() == 0) { CTextEditHighlightRule *pRule = new CTextEditHighlightRule(nullptr); pRule->setRuleWordsBetween(listWord.at(0), listWord.at(1), QColor(r, g, b)); pStyle->addTextEditHighlightRule(pRule); } else { CTextEditHighlightRule *pRule = new CTextEditHighlightRule(nullptr); pRule->setRuleWordsBetween(listWord.at(0), listWord.at(1), QColor(r, g, b), true, listIgnoredWord, listIgnoredWord); pStyle->addTextEditHighlightRule(pRule); } } else if (pExtensionOrRuleElement.attribute("type") == "RuleRegExp") { for (i=0;i<listWord.size();i++) { CTextEditHighlightRule *pRule = new CTextEditHighlightRule(nullptr); QStringList l; l << listWord.at(i); pRule->setRuleRegExp(l, QColor(r, g, b)); pStyle->addTextEditHighlightRule(pRule); } } else if (pExtensionOrRuleElement.attribute("type") == "RuleSimpleWord") { CTextEditHighlightRule *pRule = new CTextEditHighlightRule(nullptr); pRule->setRuleWord(listWord, QColor(r, g, b)); pStyle->addTextEditHighlightRule(pRule); } else if (pExtensionOrRuleElement.attribute("type") == "RuleEnlightOnCursor") { CTextEditHighlightRule *pRule = new CTextEditHighlightRule(nullptr); pRule->setRuleEnlightOnCursor(listWord, QColor(r, g, b)); pStyle->addTextEditHighlightRule(pRule); } } } pExtensionOrRuleElement = pExtensionOrRuleElement.nextSiblingElement(); } } pHighlightElement = pHighlightElement.nextSiblingElement(); } } // no highlights - add one default highlight if (m_listTextStyle.size() == 0) { addTextStyleName(STRING_PLAIN_TEXT); } fileXml.close(); return true; }