code_app/app/upgrade/main.cpp

109 lines
3.1 KiB
C++
Raw Normal View History

2023-01-11 10:56:48 +00:00
2022-06-29 09:46:00 +00:00
#include "mainwindow.h"
#include <QApplication>
#include <QThread>
#include <QScreen>
2022-07-19 10:06:08 +00:00
#include <QTranslator>
2022-07-22 03:12:00 +00:00
#include <QMessageBox>
#include "version/HGVersion.h"
#include "HGUpgrade.h"
2022-06-29 09:46:00 +00:00
int main(int argc, char *argv[])
{
std::string type;
std::string appName;
2023-04-13 09:31:39 +00:00
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=");
2023-04-13 09:31:39 +00:00
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";
}
2023-04-13 09:31:39 +00:00
if ("postinstallinfo" == type && !appName.empty() && !oemName.empty())
{
HGVersionMgr mgr = nullptr;
HGVersion_CreateMgr(&mgr);
if (nullptr != mgr)
{
2023-04-13 09:31:39 +00:00
HGVersion_PostInstallInfo(mgr, appName.c_str(), oemName.c_str(), desc.c_str());
HGVersion_DestroyMgr(mgr);
}
}
2023-04-13 09:31:39 +00:00
else if ("postuninstallinfo" == type && !appName.empty() && !oemName.empty())
{
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());
HGVersion_DestroyMgr(mgr);
}
}
2023-04-13 09:31:39 +00:00
else if ("upgrade" == type && !appName.empty() && !oemName.empty() && !pkgPath.empty())
{
QApplication a(argc, argv);
2023-04-13 09:31:39 +00:00
while (AppIsRun(appName.c_str(), oemName.c_str()))
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);
2022-07-19 10:06:08 +00:00
2023-04-13 09:31:39 +00:00
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();
2022-07-22 03:12:00 +00:00
if (w.isInstallSuccess())
{
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 09:31:39 +00:00
if (!AppIsRun(appName.c_str(), oemName.c_str()))
RunApp(appName.c_str(), oemName.c_str());
2022-07-22 03:12:00 +00:00
}
else
{
QMessageBox msg(QMessageBox::Critical, QObject::tr("error"),
2023-01-11 10:56:48 +00:00
QObject::tr("install failed!") + "\n" + w.getUpgradeFailInfo(),
QMessageBox::Ok);
msg.exec();
2022-07-22 03:12:00 +00:00
}
}
return 0;
2022-06-29 09:46:00 +00:00
}