Esempio n. 1
0
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;
}
Esempio n. 2
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();
}
Esempio n. 3
0
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;
}