code_app/app/fwupgrade/mainwindow.h

111 lines
2.5 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTextBrowser>
#include <QCloseEvent>
#include "version/HGVersion.h"
#include "sane/sane_ex.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
struct VersionInfo
{
std::string version;
std::string url;
std::string md5;
};
union VIDPID
{
struct
{
unsigned short VID;
unsigned short PID;
};
unsigned int Value;
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
static QString passwordEncrypt(const QString& password);
static QString passwordDecrypt(const QString& transcode);
static QString GetDevType(const QString& fwVersion, bool *canLock);
protected:
virtual void closeEvent(QCloseEvent *event) override;
signals:
void sane_dev_arrive(QString devName, bool opened);
void sane_dev_remove(QString devName);
void correctInfo(QString info);
void scan_finish(void *data);
private slots:
void on_sane_dev_arrive(QString devName, bool opened);
void on_sane_dev_remove(QString devName);
void on_correctInfo(QString info);
void on_scan_finish(void *data);
void on_btnExit_clicked();
void on_comboDevList_currentIndexChanged(int index);
void on_btnGetVersionList_clicked();
void on_comboVersionList_currentIndexChanged(int index);
void on_editFilePath_textChanged(const QString &arg1);
void on_btnOpenFilePath_clicked();
void on_btnDownloadUpgrade_clicked();
void on_btnUpgrade_clicked();
void on_comboDevList2_currentIndexChanged(int index);
void on_btnClearRollCount_clicked();
void on_btnModifyPassword_clicked();
void on_pushButton_getDistortion_clicked();
void on_pushButton_setDistortion_clicked();
void on_pushButton_correct_clicked();
void on_pushButton_exportTestPaper_clicked();
void on_pushButton_countDistortion_clicked();
private:
static int sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigned int* len, void *param);
private:
void initColorAndDpi();
QString getSpeedMode();
void addContent(QTextBrowser *textBrowser, QString content, bool isNormal);
bool isAndroidDevice();
private:
Ui::MainWindow *ui;
HGVersionMgr m_versionMgr;
std::vector<VersionInfo> m_vVersion;
QString m_curDevName;
SANE_Handle m_curDevHandle;
QString m_curFwVersion;
QString m_curSerialNum;
bool m_isFlatCorrecting;
bool m_isDisCorrecting;
};
#endif // MAINWINDOW_H