code_app/app/fwupgrade/main.cpp

69 lines
1.7 KiB
C++

#include "logindialog.h"
#include "mainwindow.h"
#include <QApplication>
#include <QThread>
#include <QScreen>
#include <QTranslator>
#include <QMessageBox>
#include "base/HGBase.h"
#include <shlobj.h>
HGResult GetConfigPath(HGChar* configPath, HGUInt maxLen)
{
if (NULL == configPath || 0 == maxLen)
{
return HGBASE_ERR_INVALIDARG;
}
const char *appName = "HuaGoScan";
CHAR cfgPath[MAX_PATH] = { 0 };
BOOL ret = SHGetSpecialFolderPathA(NULL, cfgPath, CSIDL_APPDATA, FALSE);
if (!ret)
return HGBASE_ERR_FAIL;
if (cfgPath[strlen(cfgPath) - 1] != '\\')
strcat(cfgPath, "\\");
strcat(cfgPath, appName);
strcat(cfgPath, "\\Cfg\\");
if (maxLen < strlen(cfgPath) + 1)
return HGBASE_ERR_FAIL;
strcpy(configPath, cfgPath);
return HGBASE_ERR_OK;
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator_app;
if (translator_app.load(":translation/FWUpgrade_zh_CN.qm"))
a.installTranslator(&translator_app);
QTranslator translator_qt;
if (translator_qt.load(":translation/qt_zh_CN.qm"))
a.installTranslator(&translator_qt);
MainWindow w;
QScreen *screen = QGuiApplication::primaryScreen();
w.move((screen->size().width() - w.width()) / 2, (screen->size().height() - w.height()) / 2);
HGChar cfgPath[256]= {0};
GetConfigPath(cfgPath, 256);
strcat(cfgPath, "config.ini");
HGChar str[256] = {0};
HGBase_GetProfileString(cfgPath, "login", "password", "", str, 256);
QString password = (0 == *str) ? "huagoscan" : MainWindow::passwordDecrypt(str);
LoginDialog login("admin", password, &w);
if (login.exec())
{
w.show();
a.exec();
}
return 0;
}