#include "aoapplication.h" #include "courtroom.h" #include "datatypes.h" #include "lobby.h" #include "networkmanager.h" #include #include #include #include #include #include int main(int argc, char *argv[]) { qSetMessagePattern("%{type}: %{if-category}%{category}: %{endif}%{message}"); qRegisterMetaType(); AOApplication main_app(argc, argv); #ifdef ANDROID if (QtAndroid::checkPermission("android.permission.READ_EXTERNAL_STORAGE") == QtAndroid::PermissionResult::Denied) { QtAndroid::requestPermissionsSync({"android.permission.READ_EXTERNAL_STORAGE", "android.permission.WRITE_EXTERNAL_STORAGE"}); } #endif AOApplication::addLibraryPath(AOApplication::applicationDirPath() + "/lib"); QResource::registerResource(main_app.get_asset("themes/" + Options::getInstance().theme() + ".rcc")); QFont main_font = main_app.font(); main_app.default_font = main_font; QFont new_font = main_font; int new_font_size = main_app.default_font.pointSize() * Options::getInstance().themeScalingFactor(); new_font.setPointSize(new_font_size); main_app.setFont(new_font); QFontDatabase fontDatabase; QDirIterator it(get_base_path() + "fonts", QDirIterator::Subdirectories); while (it.hasNext()) { fontDatabase.addApplicationFont(it.next()); } QPluginLoader apngPlugin("qapng"); if (!apngPlugin.load()) { qCritical() << "QApng plugin could not be loaded"; } QPluginLoader webpPlugin("qwebp"); if (!webpPlugin.load()) { qCritical() << "QWebp plugin could not be loaded"; } QString p_language = Options::getInstance().language(); if (p_language.trimmed().isEmpty()) { p_language = QLocale::system().name(); } QTranslator qtTranslator; qtTranslator.load("qt_" + p_language, QLibraryInfo::location(QLibraryInfo::TranslationsPath)); main_app.installTranslator(&qtTranslator); QTranslator appTranslator; qDebug() << ":/data/translations/ao_" + p_language; appTranslator.load("ao_" + p_language, ":/data/translations/"); main_app.installTranslator(&appTranslator); main_app.construct_lobby(); main_app.net_manager->get_server_list(); main_app.net_manager->send_heartbeat(); main_app.w_lobby->show(); return main_app.exec(); }