#include "logindialog.h" #include "mainwindow.h" #include #include #include #include #include #include "base/HGBase.h" #if defined(HG_CMP_MSC) #include #else #include #include #include #include #endif HGResult GetConfigPath(HGChar* configPath, HGUInt maxLen) { if (NULL == configPath || 0 == maxLen) { return HGBASE_ERR_INVALIDARG; } const char *appName = "HuaGoScan"; #if defined(HG_CMP_MSC) 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\\"); #else char cfgPath[512] = { 0 }; struct passwd* pw = getpwuid(getuid()); strcpy(cfgPath, pw->pw_dir); if (cfgPath[strlen(cfgPath) - 1] != '/') strcat(cfgPath, "/"); strcat(cfgPath, "."); strcat(cfgPath, appName); strcat(cfgPath, "/Cfg/"); #endif 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); 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, nullptr); if (login.exec()) { MainWindow w; QScreen *screen = QGuiApplication::primaryScreen(); w.move((screen->size().width() - w.width()) / 2, (screen->size().height() - w.height()) / 2); w.show(); a.exec(); } return 0; }