#include "mainwindow.h" #include #include #include #include #include #include "version/HGVersion.h" #include "HGUpgrade.h" int main(int argc, char *argv[]) { std::string type; std::string appName; std::string desc; std::string pkgPath; std::string appLang; for (int i = 1; i < argc; i++) { char* z = argv[i]; if (z == strstr(z, "-type=")) type = z + strlen("-type="); else if (z == strstr(z, "-appName=")) appName = z + strlen("-appName="); else if (z == strstr(z, "-desc=")) desc = z + strlen("-desc="); else if (z == strstr(z, "-pkgpath=")) pkgPath = z + strlen("-pkgpath="); else if (z == strstr(z, "-language=")) appLang = z + strlen("-language="); } if (appLang != "english") { appLang = "chinese"; } const HGChar *oemName = nullptr; #if defined(OEM_HANWANG) oemName = HGVERSION_OEMNAME_HANVON; #elif defined(OEM_LISICHENG) oemName = HGVERSION_OEMNAME_LANXUM; #elif defined(OEM_CANGTIAN) oemName = HGVERSION_OEMNAME_CUMTENN; #elif defined(OEM_ZHONGJING) oemName = HGVERSION_OEMNAME_MICROTEK; #elif defined(OEM_ZIGUANG) oemName = HGVERSION_OEMNAME_UNIS; #else oemName = HGVERSION_OEMNAME_HUAGO; #endif if ("postinstallinfo" == type && !appName.empty()) { HGVersionMgr mgr = nullptr; HGVersion_CreateMgr(&mgr); if (nullptr != mgr) { HGVersion_PostInstallInfo(mgr, appName.c_str(), oemName, desc.c_str()); HGVersion_DestroyMgr(mgr); } } else if ("postuninstallinfo" == type && !appName.empty()) { HGVersionMgr mgr = nullptr; HGVersion_CreateMgr(&mgr); if (nullptr != mgr) { HGVersion_PostUninstallInfo(mgr, appName.c_str(), oemName, desc.c_str()); HGVersion_DestroyMgr(mgr); } } else if ("upgrade" == type && !appName.empty() && !pkgPath.empty()) { QApplication a(argc, argv); while (AppIsRun(appName)) QThread::msleep(20); QString translator_upgrade_name = ":translation/Upgrade_zh_CN.qm"; if (appLang == "english") { translator_upgrade_name = ":translation/Upgrade_zh_EN.qm"; } QTranslator translator_upgrade; if (translator_upgrade.load(translator_upgrade_name)) a.installTranslator(&translator_upgrade); MainWindow w(appName, pkgPath); QScreen *screen = QGuiApplication::primaryScreen(); w.move((screen->size().width() - w.width()) / 2, (screen->size().height() - w.height()) / 2); w.show(); a.exec(); if (w.isInstallSuccess()) { QMessageBox msg(QMessageBox::Information, QObject::tr("tip"), QObject::tr("install succeed!"), QMessageBox::Ok); msg.exec(); if (!AppIsRun(appName)) RunApp(appName); } else { QMessageBox msg(QMessageBox::Critical, QObject::tr("error"), QObject::tr("install failed!") + "\n" + w.getUpgradeFailInfo(), QMessageBox::Ok); msg.exec(); } } return 0; }