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 |