FaceAccess/Linguist/mainUi/mainUi.h
2024-07-11 11:27:12 +08:00

256 lines
9.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef MAINUI_H
#define MAINUI_H
#include <QWidget>
#include <QStackedWidget>
#include <QSplashScreen>
#include <QTime>
#include <QTranslator>
#include "UiInterfaceForBackstage.h"
#include "settingUi.h"
#include "recoUi.h"
#include "BackstageInterfaceForUi.h"
#include "UiCommon.h"
#include "UiConfig.h"
#include "SetupUi.h"
class SplashScreenWithMsg : public QSplashScreen
{
Q_OBJECT //多语言
public:
explicit SplashScreenWithMsg(const int languageType);
~SplashScreenWithMsg();
private:
QLabel* m_label_msg;
};
class mainUi : public UiInterfaceForBackstage
{
Q_OBJECT
public:
static const int START_SCREEN_TIMEOUT = UiConfig::START_SCREEN_TIMEOUT;
static const int PWD_ACCEPT_DELAY_TIME = UiConfig::PWD_ACCEPT_DELAY_TIME * 60 * 1000; //min to ms
static const int RETRY_TIMES_MAX_PER_GROUP = UiConfig::RETRY_TIMES_MAX_PER_GROUP;
explicit mainUi(const int languageType, bool needSetupWizard);
~mainUi();
void createSettingUi();
virtual void setBackstageUiinterface(BackstageInterfaceForUi* interface);
//UI提供给后台的接口
virtual long long getUiVersion();
virtual void showUnauthorizedPage();
virtual void showScreenSaverPage();
virtual void showRecoMsgReco();
virtual void showRecoMsgRetry();
virtual void showRecoMsgFail(int failType);
virtual void notifyFaceInfo(const bool faceAvailable);
virtual void showRecoSuccess(const char* name);
virtual void showRecoMsgIDFail();
virtual int showFaceImg(const unsigned char *imgData, const int imgLen);
virtual void updatePlatformConnectionStatus(const PLATFORM_CONNECTION_STATUS_E);
virtual void showRecoMsgMoveForehead(); //移动到额头区
virtual void showRecoMsgForeheadNormalTemp(const float temp, const bool isC); //显示正常温度
virtual void showRecoMsgForeheadAbnormalTemp(const float temp, const bool isHigh, const bool isC); //显示异常温度
virtual void showRecoMsgReadTempFailed(); //体温检测失败
virtual void showRecoMsgNoMaskWarn(); //请戴口罩
virtual void showRecoMsgMaskOk(); //口罩检测通过
virtual void showRecoMsgMaskWarn();
virtual void showRecoMsgNoEntry(const bool); //显示禁止通行
virtual void turnOffScanLine();
virtual void clearLocalFacePage();
virtual void updateLogo(const enLogo);
virtual void showQRCodeMsg(const QRCode_Msg_E);
virtual void showQRCodeReco();
virtual void showFaceReco();
virtual void updateRecoUiIp();
virtual void showFeatureUpdateProgress(const unsigned current, const unsigned all);
virtual void closeFeatureUpdateProgress();
virtual void showRecoUiMask(int maskType);
virtual void showNotiMsg(const char *msg, int color);
virtual void updateScreenSaver();
virtual int grabScreen(const QString& picName, int rotate = 0);
virtual int switchToRecoUi();
virtual int showCenterMsg(const char* msg, int type);
virtual int showUserPwd(const char* name);
void showDrawPage();
void showCursorSwitch(bool sw);
void setPwdButton(bool visible);
void showPwdUiPersonName(const char* name);
void showUserPwdError(int type, int color);
void showUserCandidate(const char* title, const char** opns, int opnsNum);
void showDevTestPage(const char* devCfgMsg);
void setDevTestMesAddrAndProdNoText(const char* text);
void setDevTestPcbSeqText(const char* text);
void setDevTestConfigInfo(const char* text);
void showOrHideFaceFrame(bool show);
void showPassResult(bool pass);
void showRecoUiColorFaceSnapshot(const char* path);
void showRecoUiColorFaceSnapshot(const unsigned char* jpgDate, int len);
void recoUiswitchToType(int type);
void qrcodeFastCfgResult(bool isSuccessed);
void icCardResult(const char* icCardNum);
bool isInSettingUi();
void updateAdScreen();
void showHealthMsg(int type, float temp, const char * msg, bool pass, const unsigned char* jpgDate,
int jpgLen, const char* tripCity, const char* failReason, int bgColor, int displayTime);
void showHealthCodeAuthStatus(int status);
void showAntiDismantleDetect(bool upload);
void showSceneResult(int result, const char* resultText, const char* businessInfo, int displayTime);
void updatePersonNumAccessed(int personAccess, int personAll);
bool isScenePassing();
void setSceneUiPersonCountType(int type);
void updateSceneUiPersonCount(int count);
void showCallDialPage();
void setCallConsoleStatus(int status, const char* tip);
void setDndMode(bool enabled, const std::chrono::system_clock::time_point &time) final;
void showRecoUiDevIdAndVer(bool show);
void showUserItemChoose(const std::vector<std::string>& items);
signals:
void signalShowRecoUiPage(const int);
void signalShowRecoState(const int);
void signalNoSuccessPage(const int);
void signalSuccessPage(const int nPage, const QString& name);
void signalDrawScanner(const int nPage, const bool faceAvailable);
void signalShowAddFaceImg(const unsigned char* imgData, int len);
void signalUpdatePlatformConnectionStatus(const int);
void signalInteraction(const INTERACION_OPTION& interaction, int nSelectRes); //后面去掉
void signalShowForeheadNormalTemp(const float temp, const bool isC);
void signalShowForeheadAbnormalTemp(const float temp, const bool isHigh, const bool isC);
void signalClearLocalFacePage();
void signalShowLogoChooseDialogBySpecialPwd();
void signalUpdateLogo(const int);
void signalShowQRCodeMsg(const int);
void signalResetRecoUi(); //在识别界面进入设置界面时复位识别界面,否则可能导致扫描线定时器一直在被调用
void signalShowFeatureUpdateProgress(const unsigned current, const unsigned all);
void signalCloseFeatureUpdateProgress();
void signalShowRecoUiMask(int maskType);
void signalNotiMsg(const int nPage, const QString& msg, int color);
void signalUpdateScreenSaver();
void signalCenterMsg(const int nPage, const QString& msg);
void signalShowUserPwd(const QString& name);
void signalShowUserPwdButton();
void signalSetUserPwdButton(bool visible);
void signalShowPwdUiPersonName(const QString& name);
void signalShowUserPwdError(int type, int color);
void signalShowUserCandidate(const QString& title, const QStringList& opns);
void signalCreateAndShowDevTestPage(const QString& devCfgMsg);
void signalDevTestMesAddrAndProdNoText(const QString& text);
void signalDevTestPcbSeqText(const QString& text);
void signalDevTestConfigInfo(const QString& text);
void signalShowOrHideFaceFrame(bool show);
void signalShowFinalResult(bool pass);
void signalShowDevTestPage();
void signalShowRecoUiColorFaceSnapshot(const QString& path);
void signalShowRecoUiColorFaceSnapshot(const unsigned char* jpgDate, int len);
void signalRecoUiswitchToType(int type);
void signalQrcodeFastCfgResult(bool isSuccessed);
void signalIcCardResult(const QString& icCard);
void signalUpdateAdWidget();
void signalShowHealthMsg(int type, float temp, const QString& msg, bool pass, const unsigned char* jpgDate,
int jpgLen, const QString& tripCity, const QString& failReason, int bgColor, int displayTime);
void signalShowHealthCodeAuthStatus(int status);
void signalDelayResetRecoUi();
void signalShowAntiDismantleDetect(bool);
void signalShowSceneResult(int result, const QString& resultText, const QString& businessInfo, int displayTime);
void signalUpdatePersonNumAccessed(int personAccess, int personAll);
void signalSetSceneUiPersonCountType(int type);
void signalUpdateSceneUiPersonCount(int count);
void signalShowCallDialPage();
void signalSetCallConsoleStatus(int status, const QString& text);
void signalShowCallBtn(bool callButton, bool videoButton);
void signalShowRecoUiDevIdAndVer(bool);
void signalShowUserItemChoose(const QStringList& opns);
public slots:
void slotCloseStartPage();
void slotShowRecoPage();
void slotShowSettingPage();
void slotPwdAcceptDelayUpdate();
void slotUpdateIp(); //刷新识别界面的IP设置界面没有IP显示了后面去掉
void slotShowUserCandidate(const QString& title, const QStringList& opns);
void slotShowSettingUi();
void slotSetupDone();
void slotScreenTouch();
void slotCreateAndShowDevTestPage(const QString& devCfgMsg);
void slotDelayResetRecoUi();
void slotShowAntiDismantleDetect(bool);
void slotShowUserItemChoose(const QStringList& opns);
private:
typedef enum
{
MAIN_UI_PAGE_RECOGNIZE,
MAIN_UI_PAGE_SETTING
}MAIN_UI_PAGE_E;
QStackedWidget* m_stackWidget_mainUi;
//QSplashScreen *m_splash_startPage;
SplashScreenWithMsg *m_splash_startPage;
QTime* m_time_startupCost;
SetupUi* m_setupUi = nullptr;
settingUi* m_settingUi = nullptr;;
recoUi* m_recoUi;
QTranslator *m_translatorEnglish;
//密码多次输错处理
QTimer *m_timer;
int m_reTryTimes;
bool pwdAcceptDelay;
bool m_isPasswordDialogShowed;
void updateAllOption();
int settingPageAuthentication(const QString& dialogTitle, const QString& okBtn, const QString& cancelBtn, bool overtimeClose);
//void getBackImgPath(QString& imgPath);
//void getSaverPath(QString &imgPath);
};
#endif // MAINUI_H