4#include <QLoggingCategory>
7#include "FrmChineseChess.h"
8#include "RabbitCommonDir.h"
9#include "RabbitCommonTools.h"
10#include "FrmUpdater/FrmUpdater.h"
12#include "MainWindow.h"
14static Q_LOGGING_CATEGORY(log,
"App.Main")
15int main(
int argc,
char *argv[])
18#ifdef ChineseChessApp_VERSION
19 QApplication::setApplicationVersion(ChineseChessApp_VERSION);
21 QApplication::setApplicationName(
"ChineseChessControl");
22 QApplication app(argc, argv);
24 RabbitCommon::CTools::Instance()->Init();
25 QStringList lstPermissions;
26 lstPermissions <<
"android.permission.WRITE_EXTERNAL_STORAGE"
27 <<
"android.permission.READ_EXTERNAL_STORAGE";
28 RabbitCommon::CTools::AndroidRequestPermission(lstPermissions);
31 QSharedPointer<QTranslator> translator =
32 RabbitCommon::CTools::Instance()->InstallTranslator(
"ChineseChessApp");
34 app.setApplicationDisplayName(QObject::tr(
"Chinese chess"));
38 QScopedPointer<CFrmUpdater> pUpdater(
new CFrmUpdater());
39#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
40 if(qEnvironmentVariable(
"SNAP").isEmpty()
41 && qEnvironmentVariable(
"FLATPAK_ID").isEmpty())
43 if(qgetenv(
"SNAP").isEmpty()
44 && qgetenv(
"FLATPAK_ID").isEmpty())
48 pUpdater->setAttribute(Qt::WA_DeleteOnClose,
false);
49 QIcon icon = QIcon::fromTheme(
":/image/Chess");
51 auto sizeList = icon.availableSizes();
52 if(!sizeList.isEmpty()) {
53 QPixmap p = icon.pixmap(*sizeList.begin());
54 pUpdater->SetTitle(p.toImage());
57 if(app.arguments().length() > 1) {
59 pUpdater->GenerateUpdateJson();
60 pUpdater->GenerateUpdateXml();
62 qCritical(log) <<
"Generate update fail";
64 qInfo(log) << app.applicationName() +
" " + app.applicationVersion()
65 +
" " + QObject::tr(
"Generate update json file End");
69 qCritical(log) <<
"new CFrmUpdater() fail";
80 RabbitCommon::CTools::Instance()->RemoveTranslator(translator);
82 RabbitCommon::CTools::Instance()->Clean();
static int CleanResource()
清理资源,仅在程序结束时调用一次
static int InitResource(const QString szLanguage)
初始化资源,仅在程序开始时调用一次