QTfrontend/model/ammoSchemeModel.cpp
changeset 13195 7d9462d49d4c
parent 13188 16b375b21af1
child 13196 f93658732448
equal deleted inserted replaced
13194:290815bbd4e1 13195:7d9462d49d4c
   730     schemes.append(kingmode);
   730     schemes.append(kingmode);
   731     schemes.append(construction);
   731     schemes.append(construction);
   732     schemes.append(spaceinvasion);
   732     schemes.append(spaceinvasion);
   733     schemes.append(hedgeeditor);
   733     schemes.append(hedgeeditor);
   734 
   734 
   735     if (!QDir(cfgdir->absolutePath() + "/Schemes").exists()) QDir().mkdir(cfgdir->absolutePath() + "/Schemes");
   735     if (!QDir(cfgdir->absolutePath() + "/Schemes").exists()) {
       
   736         QDir().mkdir(cfgdir->absolutePath() + "/Schemes");
       
   737     }
   736     if (!QDir(directory).exists()) {
   738     if (!QDir(directory).exists()) {
   737         QDir().mkdir(directory);
   739         QDir().mkdir(directory);
   738 
   740 
       
   741         qDebug("No /Schemes/Game directory found. Trying to import game schemes from schemes.ini.");
       
   742 
   739         int size = fileConfig.beginReadArray("schemes");
   743         int size = fileConfig.beginReadArray("schemes");
       
   744         int imported = 0;
   740         for (int i = 0; i < size; ++i)
   745         for (int i = 0; i < size; ++i)
   741         {
   746         {
   742             fileConfig.setArrayIndex(i);
   747             fileConfig.setArrayIndex(i);
   743 
   748 
   744             if (!predefSchemesNames.contains(fileConfig.value(spNames[0]).toString()))
   749             QString schemeName = fileConfig.value(spNames[0]).toString();
       
   750             if (!predefSchemesNames.contains(schemeName))
   745             {
   751             {
   746                 QList<QVariant> scheme;
   752                 QList<QVariant> scheme;
   747                 QSettings file(directory + "/" + fileConfig.value(spNames[0]).toString() + ".hwg", QSettings::IniFormat);
   753                 QSettings file(directory + "/" + schemeName + ".hwg", QSettings::IniFormat);
   748 
   754 
   749                 for (int k = 0; k < spNames.size(); ++k) {
   755                 for (int k = 0; k < spNames.size(); ++k) {
   750                     scheme << fileConfig.value(spNames[k], defaultScheme[k]);
   756                     scheme << fileConfig.value(spNames[k], defaultScheme[k]);
   751                     file.setValue(spNames[k], fileConfig.value(spNames[k], defaultScheme[k]));
   757                     file.setValue(spNames[k], fileConfig.value(spNames[k], defaultScheme[k]));
   752                 }
   758                 }
   753                 file.sync();
   759                 file.sync();
       
   760                 imported++;
   754 
   761 
   755                 schemes.append(scheme);
   762                 schemes.append(scheme);
   756             }
   763             }
   757         }
   764         }
       
   765         qDebug("%d game scheme(s) imported.", imported);
   758         fileConfig.endArray();
   766         fileConfig.endArray();
   759     } else {
   767     } else {
   760         QStringList scheme_dir = QDir(directory).entryList();
   768         QStringList scheme_dir = QDir(directory).entryList();
   761 
   769 
   762         for(int i = 0; i < scheme_dir.size(); i++)
   770         for(int i = 0; i < scheme_dir.size(); i++)