code_app/modules/saneui/dialog_device_scan.h

62 lines
1.4 KiB
C++

#ifndef DIALOG_DEVICE_SCAN_H
#define DIALOG_DEVICE_SCAN_H
#include "base/HGDef.h"
#include "base/HGThread.h"
#include "HGSaneUI.h"
#include <QDialog>
namespace Ui {
class Dialog_Device_Scan;
}
class Dialog_Device_Scan : public QDialog
{
Q_OBJECT
public:
Dialog_Device_Scan(const SANEAPI* saneApi, SANE_Handle dev, const char *devName,
show_scan_ui_event_callback eventCallback, void *eventParam,
show_scan_ui_image_callback imageCallback, void *imageParam, QWidget *parent = nullptr);
~Dialog_Device_Scan();
protected:
void keyPressEvent(QKeyEvent *e) override;
signals:
void eventFunc(int flag, QString errInfo);
void imageCount(int count);
private slots:
void on_eventFunc(int flag, QString errInfo);
void on_pushButton_Cancel_clicked();
void on_pushButton_Complete_clicked();
void on_imageCount(int count);
private:
void startScan();
protected:
virtual void closeEvent(QCloseEvent *e) override;
private:
static void HGAPI ThreadFunc(HGThread thread, HGPointer param);
private:
Ui::Dialog_Device_Scan *ui;
SANEAPI m_saneAPI;
SANE_Handle m_saneDev;
show_scan_ui_event_callback m_eventCallback;
void *m_eventParam;
show_scan_ui_image_callback m_imageCallback;
void *m_imageParam;
HGByte* m_buffer;
HGInt m_bufferSize;
volatile HGBool m_stopThread;
HGThread m_thread;
QTimer *m_timer;
};
#endif // DIALOG_DEVICE_SCAN_H