#ifndef MAINUI_H #define MAINUI_H #include #include #include #include #include #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& 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