main.cpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <QApplication>
  2. #include <QMessageBox>
  3. #include <QLockFile>
  4. #include <QDir>
  5. #include "widgets/mainwindow.h"
  6. #include <QTextCodec>
  7. #include <QDebug>
  8. #include <QResource>
  9. #include <QFontDatabase>
  10. // Global. Should be updated only by MainWindow!!!
  11. double window_height = 1000;
  12. double window_width = 648;
  13. int main(int argc, char *argv[])
  14. {
  15. setlocale(LC_ALL,"Russian");
  16. QApplication a(argc, argv);
  17. QCoreApplication::setOrganizationName("LotroLegacy");
  18. QCoreApplication::setOrganizationDomain("translate.lotros.ru");
  19. QCoreApplication::setApplicationName("Legacy_v2");
  20. QSettings::setDefaultFormat(QSettings::IniFormat);
  21. QSettings::setPath(QSettings::IniFormat, QSettings::UserScope, QApplication::applicationDirPath());
  22. QSettings::setPath(QSettings::IniFormat, QSettings::SystemScope, QApplication::applicationDirPath());
  23. qDebug() << "Checking if there's another instance of Legacy";
  24. QLockFile lockFile(QDir::temp().absoluteFilePath("rulotro.lock"));
  25. if(!lockFile.tryLock(1)){
  26. QMessageBox msgBox;
  27. msgBox.setIcon(QMessageBox::Warning);
  28. msgBox.setText("Приложение уже запущено.\nРазрешено запускать только один экземпляр приложения.");
  29. msgBox.exec();
  30. return 1;
  31. }
  32. qDebug() << "Initialising fonts and resources";
  33. QResource::registerResource(QApplication::applicationDirPath() + "/data01.gtr");
  34. QResource::registerResource(QApplication::applicationDirPath() + "/data02.gtr");
  35. QFontDatabase::addApplicationFont(":/fonts/trpro.ttf");
  36. QFontDatabase::addApplicationFont(":/fonts/CrimsonText.ttf");
  37. QFontDatabase::addApplicationFont(":/fonts/EBGaramond.ttf");
  38. QFontDatabase::addApplicationFont(":/fonts/aniron.ttf");
  39. qDebug() << "Starting main frame initialisation...";
  40. MainWindow* main_window = new MainWindow(nullptr);
  41. main_window->setAttribute(Qt::WA_DeleteOnClose);
  42. qDebug() << "Finished initialisation, starting application...";
  43. return a.exec();
  44. }