Newer
Older
CasicBioRecNew / AddPersonForm.h
Tan Yue on 5 Jun 2022 2 KB 20220605 虹膜注册过程优化
#ifndef ADDPERSONFORM_H
#define ADDPERSONFORM_H

#include <QWidget>
#include <QFile>

#include "QDblClickLabel.h"
#include "OperationTipsDialog.h"

#include "casic/ProMemory.h"
#include "dao/util/CacheManager.h"
#include "utils/UtilInclude.h"

namespace Ui {
class AddPersonForm;
}

class AddPersonForm : public QWidget
{
    Q_OBJECT

public:
    explicit AddPersonForm(QWidget *parent = nullptr);
    ~AddPersonForm();

    void setPersonId(QString personId);
    void updateFormTitle(QString title);

    void loadPersonInfo(QString personId);
    void clearPersonInfo();

public slots:
    void drawImageOnForm(QImage imageDisp);
    void drawIrisImageOnFrame(QImage image, int leftOrRight);

    void onFailedCaptureFace(); // 采集人脸失败
    void onSuccessCaptureFace(QString personIdByFace); // 采集人脸成功 没有匹配/有匹配到

    void onFailedCaptureIris(); // 采集虹膜失败
    void onMatchedIris(QString personIdByIris); // 采集虹膜成功 有匹配
    void onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo); // 采集虹膜成功 没有匹配到

private slots:
    void on_btnBack_clicked();

    void on_btnHome_clicked();

    void on_btnSave_clicked();

    void onPhotoFaceDoubleClicked();
    void onPhotoIrisDoubleClicked();

private:
    Ui::AddPersonForm *ui;

    QString personId;

    QString face; // 人脸图像数据
    QByteArray faceCode; // 人脸特征编码数据
    bool faceReCaptured; // 编辑时是否需要更新人脸数据

    QString leftIris; // 左眼虹膜图像数据
    QString rightIris; // 右眼虹膜图像数据
    QByteArray leftIrisCode; // 左眼虹膜特征值编码数据
    QByteArray rightIrisCode; // 右眼虹膜特征值编码数据
    bool irisReCaptured; // 编辑时是否需要更新虹膜数据

    QLabel * faceLabel; // 采集人脸时显示的画面
    QLabel * leftIrisLabel; // 采集时左眼显示的画面
    QLabel * rightIrisLabel; // 采集时右眼显示的画面

    bool validateForm();
    void registPerson();
    void editPersonInfo();
    void updateIrisImage(CasicIrisInfo * irisInfo);

signals:
    void switchToUserListForm();
    void backToHomePage();
    void startCaptureFace();
};

#endif // ADDPERSONFORM_H