QTfrontend/main.cpp
changeset 5238 46ddaf14509d
parent 5095 15dd764b728c
child 5252 ded882439548
equal deleted inserted replaced
5237:963d787a25c2 5238:46ddaf14509d
   382                     arg(datadir->absolutePath()+"/hedgewars/Data"));
   382                     arg(datadir->absolutePath()+"/hedgewars/Data"));
   383         return 1;
   383         return 1;
   384     }
   384     }
   385 
   385 
   386     Themes = new QStringList();
   386     Themes = new QStringList();
       
   387     QFile userthemesfile(cfgdir->absolutePath() + "/Data/Themes/themes.cfg");
       
   388     if (userthemesfile.open(QIODevice::ReadOnly)) {
       
   389         QTextStream stream(&userthemesfile);
       
   390         while (!stream.atEnd()) Themes->append(stream.readLine());
       
   391         userthemesfile.close();
       
   392     }
   387     QFile themesfile(datadir->absolutePath() + "/Themes/themes.cfg");
   393     QFile themesfile(datadir->absolutePath() + "/Themes/themes.cfg");
       
   394     QString str;
   388     if (themesfile.open(QIODevice::ReadOnly)) {
   395     if (themesfile.open(QIODevice::ReadOnly)) {
   389         QTextStream stream(&themesfile);
   396         QTextStream stream(&themesfile);
   390         QString str;
   397         while (!stream.atEnd()) {
   391         while (!stream.atEnd())
   398             str = stream.readLine();
   392         {
   399             if (!Themes->contains(str)) Themes->append(str);
   393             Themes->append(stream.readLine());
       
   394         }
   400         }
   395         themesfile.close();
   401         themesfile.close();
   396     } else {
   402     } else {
   397         QMessageBox::critical(0, "Error", "Cannot access themes.cfg", "OK");
   403         QMessageBox::critical(0, "Error", "Cannot access themes.cfg", "OK");
   398     }
   404     }
   399 
   405 
   400     QDir tmpdir;
   406     QDir tmpdir;
       
   407     tmpdir.cd(cfgdir->absolutePath());
       
   408     tmpdir.cd("Data/Maps");
       
   409     tmpdir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
       
   410     mapList = new QStringList(tmpdir.entryList(QStringList("*")));
       
   411 
   401     tmpdir.cd(datadir->absolutePath());
   412     tmpdir.cd(datadir->absolutePath());
   402     tmpdir.cd("Maps");
   413     tmpdir.cd("Maps");
   403     tmpdir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
   414     tmpdir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
   404     mapList = new QStringList(tmpdir.entryList(QStringList("*")));
   415     QStringList tmplist = QStringList(tmpdir.entryList(QStringList("*")));
       
   416     for (QStringList::Iterator it = tmplist.begin(); it != tmplist.end(); ++it)
       
   417         if (!mapList->contains(*it,Qt::CaseInsensitive)) mapList->append(*it);
       
   418  
       
   419     tmpdir.cd(cfgdir->absolutePath());
       
   420     tmpdir.cd("Data/Scripts/Multiplayer");
       
   421     tmpdir.setFilter(QDir::Files | QDir::NoDotAndDotDot);
       
   422     scriptList = new QStringList(tmpdir.entryList(QStringList("*.lua")));
   405 
   423 
   406     tmpdir.cd(datadir->absolutePath());
   424     tmpdir.cd(datadir->absolutePath());
   407     tmpdir.cd("Scripts/Multiplayer");
   425     tmpdir.cd("Scripts/Multiplayer");
   408     tmpdir.setFilter(QDir::Files | QDir::NoDotAndDotDot);
   426     tmpdir.setFilter(QDir::Files | QDir::NoDotAndDotDot);
   409     scriptList = new QStringList(tmpdir.entryList(QStringList("*.lua")));
   427     tmplist = QStringList(tmpdir.entryList(QStringList("*.lua")));
   410 
   428     for (QStringList::Iterator it = tmplist.begin(); it != tmplist.end(); ++it)
       
   429         if (!scriptList->contains(*it,Qt::CaseInsensitive)) scriptList->append(*it);
   411 
   430 
   412     QTranslator Translator;
   431     QTranslator Translator;
   413     {
   432     {
   414         QSettings settings(cfgdir->absolutePath() + "/hedgewars.ini", QSettings::IniFormat);
   433         QSettings settings(cfgdir->absolutePath() + "/hedgewars.ini", QSettings::IniFormat);
   415         QString cc = settings.value("misc/locale", "").toString();
   434         QString cc = settings.value("misc/locale", "").toString();
   416         if(!cc.compare(""))
   435         if(!cc.compare(""))
   417             cc = QLocale::system().name();
   436             cc = QLocale::system().name();
   418         Translator.load(datadir->absolutePath() + "/Locale/hedgewars_" + cc);
   437         QFile tmpfile;
       
   438         tmpfile.setFileName(cfgdir->absolutePath() + "Data/Locale/hedgewars_" + cc);
       
   439         if (!tmpfile.exists()) tmpfile.setFileName(datadir->absolutePath() + "Locale/hedgewars_" + cc);
       
   440         Translator.load(QFileInfo(tmpfile).absoluteFilePath());
   419         app.installTranslator(&Translator);
   441         app.installTranslator(&Translator);
   420     }
   442     }
   421 
   443 
   422     // Win32 registry setup (used for xfire detection etc. - don't set it if we're running in "portable" mode with a custom config dir)
   444     // Win32 registry setup (used for xfire detection etc. - don't set it if we're running in "portable" mode with a custom config dir)
   423 #ifdef _WIN32
   445 #ifdef _WIN32