#include "mainwindow.h" #include #include #include #include #include #include "version/HGVersion.h" #include "log/log.h" HLOG g_hLog = nullptr; #if defined(OEM_HANWANG) const char* oem = "HanvonScan"; #elif defined(OEM_LISICHENG) const char* oem = "LanxumScan"; #elif defined(OEM_CANGTIAN) const char* oem = "CumtennScan"; #elif defined(OEM_ZHONGJING) const char* oem = "MicrotekScan"; #elif defined(OEM_ZIGUANG) const char* oem = "UniScan"; #elif defined(OEM_NEUTRAL) const char* oem = "NeuScan"; #elif defined(OEM_DELI) const char* oem = "DeliScan"; #else const char* oem = "HuaGoScan"; #endif int main(int argc, char *argv[]) { g_hLog = EnableLog(nullptr, oem, "app"); std::string type; std::string appName; std::string oemName; 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, "-oemName=")) oemName = z + strlen("-oemName="); 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"; } if ("postinstallinfo" == type && !appName.empty() && !oemName.empty()) { HGVersionMgr mgr = nullptr; HGVersion_CreateMgr(&mgr); if (nullptr != mgr) { HGVersion_PostInstallInfo(mgr, appName.c_str(), oemName.c_str(), desc.c_str()); HGVersion_DestroyMgr(mgr); } } else if ("postuninstallinfo" == type && !appName.empty() && !oemName.empty()) { HGVersionMgr mgr = nullptr; HGVersion_CreateMgr(&mgr); if (nullptr != mgr) { HGVersion_PostUninstallInfo(mgr, appName.c_str(), oemName.c_str(), desc.c_str()); HGVersion_DestroyMgr(mgr); } } else if ("upgrade" == type && !appName.empty() && !oemName.empty() && !pkgPath.empty()) { QApplication a(argc, argv); while (1) { HGBool isRun = HGFALSE; HGVersion_GetAppStatus(appName.c_str(), oemName.c_str(), &isRun); if (!isRun) { break; } 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(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(); HGBool isRun = HGFALSE; HGVersion_GetAppStatus(appName.c_str(), oemName.c_str(), &isRun); if (!isRun) { HGVersion_RunApp(appName.c_str(), oemName.c_str()); } } else { QMessageBox msg(QMessageBox::Critical, QObject::tr("error"), QObject::tr("install failed!") + "\n" + w.getUpgradeFailInfo(), QMessageBox::Ok); msg.exec(); } } DisableLog(g_hLog); g_hLog = nullptr; return 0; }