1
0
forked from BRT/arc
arc/views/bank/BankSetupWizard.h

70 lines
1.6 KiB
C++

#pragma once
#include <QButtonGroup>
#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QProgressBar>
#include <QPushButton>
#include <QStackedWidget>
#include <QTableWidget>
#include <QThread>
#include "db/BankProfileInfo.h"
class BankSetupWizard final : public QDialog {
Q_OBJECT
public:
BankSetupWizard(QWidget *parent, const QString &deviceId, const BankProfileInfo &app);
~BankSetupWizard() override;
private:
QString m_deviceId;
BankProfileInfo m_app;
QStackedWidget *m_stack;
// Step 2
QLineEdit *m_pinCodeEdit;
// Step 3
QLabel *m_progressLabel;
QProgressBar *m_progressBar;
QPushButton *m_backBtn3;
// Step 4
QLabel *m_resultLabel;
QTableWidget *m_cardsTable;
QWidget *m_successPage;
QWidget *m_errorPage;
QLabel *m_errorText;
QPushButton *m_finishBtn;
QButtonGroup *m_cardsGroup;
int m_selectedMaterialId = -1;
QThread *m_workerThread = nullptr;
QStringList m_pausedProfiles; // коды профилей, выключенных на время мастера
void pauseActiveProfiles();
void resumePausedProfiles();
QWidget *createStep1();
QWidget *createStep2();
QWidget *createStep3();
QWidget *createStep4Success();
QWidget *createStep4Error();
void startVerification();
void runPinCheck();
void runProfileCheck();
void runCardCheck();
void onVerificationSuccess();
void onVerificationError(const QString &error);
void stopWorkerThread();
void applyActiveCardSelection();
void setProgress(int value, const QString &text);
};