#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #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 m_vVersion; QString m_curDevName; SANE_Handle m_curDevHandle; QString m_curFwVersion; QString m_curSerialNum; bool m_isFlatCorrecting; bool m_isDisCorrecting; }; #endif // MAINWINDOW_H