main.cpp 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "mainwindow.h"
  2. #include <QCoreApplication>
  3. #include <QApplication>
  4. #include <QObject>
  5. #include <QSettings>
  6. #include <QTranslator>
  7. #include <QString>
  8. #include <QLocale>
  9. #include <QCommandLineParser>
  10. #include <QFileInfo>
  11. #ifdef _WEBBOX
  12. #include <QtWebEngine>
  13. #include "url_schemes.h"
  14. #endif
  15. int main(int argc, char *argv[])
  16. {
  17. QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
  18. QApplication a(argc, argv);
  19. a.setApplicationName("Qqsp");
  20. a.setOrganizationName("Qqsp");
  21. a.setApplicationVersion("1.9");
  22. a.setDoubleClickInterval(1);
  23. QObject::tr("__LANGNAME__");
  24. QObject::tr("__LANGID__");
  25. QString langid;
  26. QFileInfo settingsFile(QApplication::applicationDirPath() + "/" + QSP_CUSTOM_CONFIG);
  27. if(settingsFile.exists() && settingsFile.isFile())
  28. {
  29. QSettings settings(QApplication::applicationDirPath() + "/" + QSP_CUSTOM_CONFIG, QSettings::IniFormat);
  30. langid = settings.value("application/language", QLocale::system().name()).toString();
  31. }
  32. else
  33. {
  34. QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), QApplication::applicationName());
  35. langid = settings.value("application/language", QLocale::system().name()).toString();
  36. }
  37. QTranslator qtTranslator;
  38. if(qtTranslator.load(QApplication::applicationName() + "." + langid, QApplication::applicationDirPath()))
  39. a.installTranslator(&qtTranslator);
  40. else
  41. if(qtTranslator.load(QApplication::applicationName() + "." + langid, ":/translations/"))
  42. a.installTranslator(&qtTranslator);
  43. QCommandLineParser parser;
  44. parser.setApplicationDescription("Qqsp");
  45. parser.addPositionalArgument("file", QCoreApplication::translate("main", "Game file to open."));
  46. parser.addHelpOption();
  47. parser.addVersionOption();
  48. parser.process(a);
  49. #ifdef _WEBBOX
  50. register_url_schemes();
  51. QtWebEngine::initialize();
  52. #endif
  53. MainWindow w;
  54. if(parser.positionalArguments().size() != 0)
  55. {
  56. QFileInfo file(parser.positionalArguments().at(0));
  57. w.OpenGameFile(file.filePath());
  58. }
  59. w.show();
  60. return a.exec();
  61. }