2023-01-11 10:56:48 +00:00
|
|
|
|
2022-06-29 09:46:00 +00:00
|
|
|
#include "mainwindow.h"
|
|
|
|
|
|
|
|
#include <QApplication>
|
2022-07-02 06:51:58 +00:00
|
|
|
#include <QThread>
|
2022-07-01 05:57:27 +00:00
|
|
|
#include <QScreen>
|
2022-07-19 10:06:08 +00:00
|
|
|
#include <QTranslator>
|
2022-07-22 03:12:00 +00:00
|
|
|
#include <QMessageBox>
|
2022-07-14 03:52:11 +00:00
|
|
|
#include "version/HGVersion.h"
|
2024-08-01 09:31:44 +00:00
|
|
|
#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
|
2022-06-29 09:46:00 +00:00
|
|
|
|
|
|
|
int main(int argc, char *argv[])
|
|
|
|
{
|
2024-08-01 09:31:44 +00:00
|
|
|
g_hLog = EnableLog(nullptr, oem, "app");
|
|
|
|
|
2022-07-14 03:52:11 +00:00
|
|
|
std::string type;
|
|
|
|
std::string appName;
|
2023-04-13 09:31:39 +00:00
|
|
|
std::string oemName;
|
2022-06-30 08:42:46 +00:00
|
|
|
std::string desc;
|
|
|
|
std::string pkgPath;
|
2023-01-28 09:45:13 +00:00
|
|
|
std::string appLang;
|
2022-06-30 08:42:46 +00:00
|
|
|
|
|
|
|
for (int i = 1; i < argc; i++)
|
|
|
|
{
|
|
|
|
char* z = argv[i];
|
|
|
|
|
2022-07-14 03:52:11 +00:00
|
|
|
if (z == strstr(z, "-type="))
|
|
|
|
type = z + strlen("-type=");
|
|
|
|
else if (z == strstr(z, "-appName="))
|
|
|
|
appName = z + strlen("-appName=");
|
2023-04-13 09:31:39 +00:00
|
|
|
else if (z == strstr(z, "-oemName="))
|
|
|
|
oemName = z + strlen("-oemName=");
|
2022-06-30 08:42:46 +00:00
|
|
|
else if (z == strstr(z, "-desc="))
|
|
|
|
desc = z + strlen("-desc=");
|
2022-07-14 03:52:11 +00:00
|
|
|
else if (z == strstr(z, "-pkgpath="))
|
|
|
|
pkgPath = z + strlen("-pkgpath=");
|
2023-01-28 09:45:13 +00:00
|
|
|
else if (z == strstr(z, "-language="))
|
|
|
|
appLang = z + strlen("-language=");
|
|
|
|
}
|
|
|
|
|
|
|
|
if (appLang != "english")
|
|
|
|
{
|
|
|
|
appLang = "chinese";
|
2022-06-30 08:42:46 +00:00
|
|
|
}
|
|
|
|
|
2023-04-13 09:31:39 +00:00
|
|
|
if ("postinstallinfo" == type && !appName.empty() && !oemName.empty())
|
2022-07-14 03:52:11 +00:00
|
|
|
{
|
|
|
|
HGVersionMgr mgr = nullptr;
|
|
|
|
HGVersion_CreateMgr(&mgr);
|
2023-01-13 05:56:24 +00:00
|
|
|
|
2022-07-14 03:52:11 +00:00
|
|
|
if (nullptr != mgr)
|
|
|
|
{
|
2023-04-13 09:31:39 +00:00
|
|
|
HGVersion_PostInstallInfo(mgr, appName.c_str(), oemName.c_str(), desc.c_str());
|
2022-07-14 03:52:11 +00:00
|
|
|
HGVersion_DestroyMgr(mgr);
|
|
|
|
}
|
|
|
|
}
|
2023-04-13 09:31:39 +00:00
|
|
|
else if ("postuninstallinfo" == type && !appName.empty() && !oemName.empty())
|
2022-07-14 03:52:11 +00:00
|
|
|
{
|
|
|
|
HGVersionMgr mgr = nullptr;
|
|
|
|
HGVersion_CreateMgr(&mgr);
|
|
|
|
if (nullptr != mgr)
|
|
|
|
{
|
2023-04-13 09:31:39 +00:00
|
|
|
HGVersion_PostUninstallInfo(mgr, appName.c_str(), oemName.c_str(), desc.c_str());
|
2022-07-14 03:52:11 +00:00
|
|
|
HGVersion_DestroyMgr(mgr);
|
|
|
|
}
|
|
|
|
}
|
2023-04-13 09:31:39 +00:00
|
|
|
else if ("upgrade" == type && !appName.empty() && !oemName.empty() && !pkgPath.empty())
|
2022-06-30 08:42:46 +00:00
|
|
|
{
|
|
|
|
QApplication a(argc, argv);
|
2022-07-01 05:57:27 +00:00
|
|
|
|
2023-04-13 10:10:06 +00:00
|
|
|
while (1)
|
|
|
|
{
|
|
|
|
HGBool isRun = HGFALSE;
|
|
|
|
HGVersion_GetAppStatus(appName.c_str(), oemName.c_str(), &isRun);
|
|
|
|
if (!isRun)
|
|
|
|
{
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2022-07-02 06:51:58 +00:00
|
|
|
QThread::msleep(20);
|
2023-04-13 10:10:06 +00:00
|
|
|
}
|
2022-07-02 06:51:58 +00:00
|
|
|
|
2023-01-28 09:45:13 +00:00
|
|
|
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);
|
2022-07-19 10:06:08 +00:00
|
|
|
|
2023-04-13 09:31:39 +00:00
|
|
|
MainWindow w(pkgPath);
|
2022-07-01 05:57:27 +00:00
|
|
|
QScreen *screen = QGuiApplication::primaryScreen();
|
|
|
|
w.move((screen->size().width() - w.width()) / 2, (screen->size().height() - w.height()) / 2);
|
2022-06-30 08:42:46 +00:00
|
|
|
w.show();
|
|
|
|
a.exec();
|
2022-07-02 06:51:58 +00:00
|
|
|
|
2022-07-22 03:12:00 +00:00
|
|
|
if (w.isInstallSuccess())
|
|
|
|
{
|
2022-07-22 03:51:22 +00:00
|
|
|
QMessageBox msg(QMessageBox::Information, QObject::tr("tip"),
|
|
|
|
QObject::tr("install succeed!"),
|
|
|
|
QMessageBox::Ok);
|
|
|
|
msg.exec();
|
2022-07-22 03:12:00 +00:00
|
|
|
|
2023-04-13 10:10:06 +00:00
|
|
|
HGBool isRun = HGFALSE;
|
|
|
|
HGVersion_GetAppStatus(appName.c_str(), oemName.c_str(), &isRun);
|
|
|
|
if (!isRun)
|
|
|
|
{
|
|
|
|
HGVersion_RunApp(appName.c_str(), oemName.c_str());
|
|
|
|
}
|
2022-07-22 03:12:00 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2022-07-22 03:51:22 +00:00
|
|
|
QMessageBox msg(QMessageBox::Critical, QObject::tr("error"),
|
2023-01-11 10:56:48 +00:00
|
|
|
QObject::tr("install failed!") + "\n" + w.getUpgradeFailInfo(),
|
2022-07-22 03:51:22 +00:00
|
|
|
QMessageBox::Ok);
|
|
|
|
msg.exec();
|
2022-07-22 03:12:00 +00:00
|
|
|
}
|
2022-06-30 08:42:46 +00:00
|
|
|
}
|
|
|
|
|
2024-08-01 09:31:44 +00:00
|
|
|
DisableLog(g_hLog);
|
|
|
|
g_hLog = nullptr;
|
2022-06-30 08:42:46 +00:00
|
|
|
return 0;
|
2022-06-29 09:46:00 +00:00
|
|
|
}
|