QTfrontend/ui/widget/selectWeapon.cpp
changeset 13195 7d9462d49d4c
parent 12923 305f3667af20
child 13196 f93658732448
equal deleted inserted replaced
13194:290815bbd4e1 13195:7d9462d49d4c
    83 
    83 
    84 SelWeaponWidget::SelWeaponWidget(int numItems, QWidget* parent) :
    84 SelWeaponWidget::SelWeaponWidget(int numItems, QWidget* parent) :
    85     QFrame(parent),
    85     QFrame(parent),
    86     m_numItems(numItems)
    86     m_numItems(numItems)
    87 {
    87 {
    88     if (!QDir(cfgdir->absolutePath() + "/Schemes").exists()) QDir().mkdir(cfgdir->absolutePath() + "/Schemes");
    88     if (!QDir(cfgdir->absolutePath() + "/Schemes").exists()) {
       
    89         QDir().mkdir(cfgdir->absolutePath() + "/Schemes");
       
    90     }
    89     if (!QDir(cfgdir->absolutePath() + "/Schemes/Ammo").exists()) {
    91     if (!QDir(cfgdir->absolutePath() + "/Schemes/Ammo").exists()) {
       
    92         qDebug("No /Schemes/Ammo directory found. Trying to import weapon schemes from weapons.ini.");
    90         QDir().mkdir(cfgdir->absolutePath() + "/Schemes/Ammo");
    93         QDir().mkdir(cfgdir->absolutePath() + "/Schemes/Ammo");
    91         wconf = new QSettings("Hedgewars", "Hedgewars");
    94         wconf = new QSettings("Hedgewars", "Hedgewars");
    92         wconf->clear();
    95         wconf->clear();
    93         QSettings old_wconf(cfgdir->absolutePath() + "/weapons.ini", QSettings::IniFormat);
    96         QSettings old_wconf(cfgdir->absolutePath() + "/weapons.ini", QSettings::IniFormat);
    94 
    97 
    95         QList<QVariant> defaultAmmos;
    98         QStringList defaultAmmos;
    96         for(int i = 0; i < cDefaultAmmos.size(); ++i) {
    99         for(int i = 0; i < cDefaultAmmos.size(); ++i) {
    97             wconf->setValue(cDefaultAmmos[i].first, cDefaultAmmos[i].second);
   100             wconf->setValue(cDefaultAmmos[i].first, cDefaultAmmos[i].second);
    98             defaultAmmos.append(cDefaultAmmos[i].first);
   101             defaultAmmos.append(cDefaultAmmos[i].first);
    99         }
   102         }
   100 
   103 
   101         QStringList keys = old_wconf.allKeys();
   104         QStringList keys = old_wconf.allKeys();
       
   105         int imported = 0;
   102         for(int i = 0; i < keys.size(); i++)
   106         for(int i = 0; i < keys.size(); i++)
   103         {
   107         {
   104             wconf->setValue(keys[i], fixWeaponSet(old_wconf.value(keys[i]).toString()));
       
   105 
       
   106             if (!defaultAmmos.contains(keys[i])) {
   108             if (!defaultAmmos.contains(keys[i])) {
       
   109                 wconf->setValue(keys[i], fixWeaponSet(old_wconf.value(keys[i]).toString()));
   107                 QFile file(cfgdir->absolutePath() + "/Schemes/Ammo/" + keys[i] + ".hwa");
   110                 QFile file(cfgdir->absolutePath() + "/Schemes/Ammo/" + keys[i] + ".hwa");
   108                 if (file.open(QIODevice::WriteOnly)) {
   111                 if (file.open(QIODevice::WriteOnly)) {
   109                     QTextStream stream( &file );
   112                     QTextStream stream( &file );
   110                     stream << old_wconf.value(keys[i]).toString() << endl;
   113                     stream << old_wconf.value(keys[i]).toString() << endl;
   111                 }
   114                 }
       
   115                 imported++;
   112             }
   116             }
   113         }
   117         }
       
   118         qDebug("%d weapon scheme(s) imported.", imported);
   114     } else {
   119     } else {
   115         wconf = new QSettings("Hedgewars", "Hedgewars");
   120         wconf = new QSettings("Hedgewars", "Hedgewars");
   116         wconf->clear();
   121         wconf->clear();
   117 
   122 
   118         for(int i = 0; i < cDefaultAmmos.size(); ++i)
   123         for(int i = 0; i < cDefaultAmmos.size(); ++i)