1.scantool定时器调整、增加按键通知支持
This commit is contained in:
parent
7872497479
commit
ab009f3e54
|
@ -15,9 +15,6 @@ Dialog_Add::Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const s
|
|||
|
||||
ui->comboBoxButtonId->addItem("Manual");
|
||||
// TODO 通过devHandle获取支持的按钮,并添加到下拉列表
|
||||
ui->comboBoxButtonId->addItem("Button 1");
|
||||
ui->comboBoxButtonId->addItem("Button 2");
|
||||
ui->comboBoxButtonId->addItem("Button 3");
|
||||
|
||||
m_scanParam.deviceType = deviceType;
|
||||
m_scanParam.buttonId = ui->comboBoxButtonId->currentIndex();
|
||||
|
@ -43,9 +40,6 @@ Dialog_Add::Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const S
|
|||
|
||||
ui->comboBoxButtonId->addItem("Manual");
|
||||
// TODO 通过devHandle获取支持的按钮,并添加到下拉列表
|
||||
ui->comboBoxButtonId->addItem("Button 1");
|
||||
ui->comboBoxButtonId->addItem("Button 2");
|
||||
ui->comboBoxButtonId->addItem("Button 3");
|
||||
|
||||
m_scanParam = scanParam;
|
||||
ui->comboBoxButtonId->setCurrentIndex(m_scanParam.buttonId);
|
||||
|
|
|
@ -481,6 +481,11 @@ int Dialog_Scan::sane_ex_callback(SANE_Handle hdev, int code, void* data, unsign
|
|||
//emit p->scanInfo((const char*)data, (0 != *len));
|
||||
}
|
||||
break;
|
||||
case SANE_EVENT_DEV_KEY_PRESSED:
|
||||
{
|
||||
emit p->keyPress(*len);
|
||||
}
|
||||
break;
|
||||
case SANE_EVENT_IMAGE_OK:
|
||||
{
|
||||
++p->m_aquireIntoPageIndex;
|
||||
|
|
|
@ -2,18 +2,16 @@
|
|||
#include "ui_dialog_scaninfo.h"
|
||||
#include "dialog_scan.h"
|
||||
#include <QDesktopWidget>
|
||||
#include <QTimer>
|
||||
|
||||
Dialog_ScanInfo::Dialog_ScanInfo(class Dialog_Scan *dlgScan)
|
||||
: QDialog(nullptr)
|
||||
, ui(new Ui::Dialog_ScanInfo)
|
||||
, m_dlgScan(dlgScan)
|
||||
, m_timer(nullptr)
|
||||
, m_timerId(-1)
|
||||
, m_error(false)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
|
||||
m_timer = new QTimer(this);
|
||||
|
||||
QDesktopWidget *desktop = QApplication::desktop();
|
||||
QRect workArea = desktop->availableGeometry();
|
||||
|
@ -27,6 +25,12 @@ Dialog_ScanInfo::~Dialog_ScanInfo()
|
|||
|
||||
void Dialog_ScanInfo::Start()
|
||||
{
|
||||
if (-1 != m_timerId)
|
||||
{
|
||||
this->killTimer(m_timerId);
|
||||
m_timerId = -1;
|
||||
}
|
||||
|
||||
m_error = false;
|
||||
ui->labelScanInfo->setText("");
|
||||
ui->labelScanCount->setText(tr("Scan count: 0"));
|
||||
|
@ -54,14 +58,34 @@ void Dialog_ScanInfo::Finish()
|
|||
|
||||
if (!m_error)
|
||||
{
|
||||
m_timer->start(1000);
|
||||
connect(m_timer, &QTimer::timeout, this, &Dialog_ScanInfo::on_pushButtonOK_clicked);
|
||||
if (-1 != m_timerId)
|
||||
{
|
||||
this->killTimer(m_timerId);
|
||||
m_timerId = -1;
|
||||
}
|
||||
|
||||
m_timerId = this->startTimer(1000);
|
||||
}
|
||||
}
|
||||
|
||||
void Dialog_ScanInfo::timerEvent(QTimerEvent* e)
|
||||
{
|
||||
if (e->timerId() == m_timerId)
|
||||
{
|
||||
this->killTimer(m_timerId);
|
||||
m_timerId = -1;
|
||||
hide();
|
||||
}
|
||||
}
|
||||
|
||||
void Dialog_ScanInfo::on_pushButtonOK_clicked()
|
||||
{
|
||||
disconnect(m_timer, &QTimer::timeout, this, &Dialog_ScanInfo::on_pushButtonOK_clicked);
|
||||
if (-1 != m_timerId)
|
||||
{
|
||||
this->killTimer(m_timerId);
|
||||
m_timerId = -1;
|
||||
}
|
||||
|
||||
hide();
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,9 @@ public:
|
|||
void SetScanCount(unsigned int count);
|
||||
void Finish();
|
||||
|
||||
protected:
|
||||
virtual void timerEvent(QTimerEvent* e) override;
|
||||
|
||||
private slots:
|
||||
void on_pushButtonOK_clicked();
|
||||
|
||||
|
@ -28,7 +31,7 @@ private slots:
|
|||
private:
|
||||
Ui::Dialog_ScanInfo *ui;
|
||||
class Dialog_Scan *m_dlgScan;
|
||||
QTimer *m_timer;
|
||||
int m_timerId;
|
||||
bool m_error;
|
||||
};
|
||||
|
||||
|
|
|
@ -64,11 +64,12 @@ std::vector<DeviceConfig> Form_DeviceConfig::GetDeviceConfigs()
|
|||
const DeviceConfigEx &deviceConfig = m_baseDeviceConfigsGroups[i].deviceConfigs[j];
|
||||
|
||||
QWidget *ctrl = nullptr;
|
||||
for (int k = 0; k < (int)m_ctrlList.size(); ++k)
|
||||
QList<QWidget*> widgets = this->findChildren<QWidget*>();
|
||||
foreach (QWidget* widget, widgets)
|
||||
{
|
||||
if (deviceConfig.name == m_ctrlList[k]->property("config_name").toString().toStdString())
|
||||
if (deviceConfig.name == widget->property("config_name").toString().toStdString())
|
||||
{
|
||||
ctrl = m_ctrlList[k];
|
||||
ctrl = widget;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -484,7 +485,6 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
|||
if (nullptr != ctrl)
|
||||
{
|
||||
ctrl->setProperty("config_name", QString::fromStdString(deviceConfig.name));
|
||||
m_ctrlList.push_back(ctrl);
|
||||
}
|
||||
|
||||
if (nullptr != ctrlWidget)
|
||||
|
@ -506,11 +506,12 @@ void Form_DeviceConfig::Update(std::vector<DeviceConfigsGroup> &deviceConfigsGro
|
|||
const DeviceConfigEx &deviceConfig = deviceConfigsGroups[i].deviceConfigs[j];
|
||||
|
||||
QWidget *ctrl = nullptr;
|
||||
for (int k = 0; k < (int)m_ctrlList.size(); ++k)
|
||||
QList<QWidget*> widgets = this->findChildren<QWidget*>();
|
||||
foreach (QWidget* widget, widgets)
|
||||
{
|
||||
if (deviceConfig.name == m_ctrlList[k]->property("config_name").toString().toStdString())
|
||||
if (deviceConfig.name == widget->property("config_name").toString().toStdString())
|
||||
{
|
||||
ctrl = m_ctrlList[k];
|
||||
ctrl = widget;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -584,7 +585,7 @@ void Form_DeviceConfig::on_sliderClicked(int value)
|
|||
QString sliderProverty = slider->property("config_name").toString();
|
||||
|
||||
QList<QAbstractSpinBox*> buttons = this->findChildren<QAbstractSpinBox*>();
|
||||
foreach(QAbstractSpinBox* abstractSpinBox, buttons)
|
||||
foreach (QAbstractSpinBox* abstractSpinBox, buttons)
|
||||
{
|
||||
QString spinBoxProverty = abstractSpinBox->property("config_name").toString();
|
||||
if (spinBoxProverty == sliderProverty)
|
||||
|
@ -611,7 +612,7 @@ void Form_DeviceConfig::on_spinBoxClicked(int value)
|
|||
QString spinBoxProverty = spinBox->property("config_name").toString();
|
||||
|
||||
QList<QSlider*> buttons = this->findChildren<QSlider*>();
|
||||
foreach(QSlider* slider, buttons)
|
||||
foreach (QSlider* slider, buttons)
|
||||
{
|
||||
QString sliderProverty = slider->property("config_name").toString();
|
||||
if (sliderProverty == spinBoxProverty)
|
||||
|
@ -628,7 +629,7 @@ void Form_DeviceConfig::on_doubleSpinboxClicked(double value)
|
|||
QString spinBoxProverty = spinBox->property("config_name").toString();
|
||||
|
||||
QList<QSlider*> buttons = this->findChildren<QSlider*>();
|
||||
foreach(QSlider* slider, buttons)
|
||||
foreach (QSlider* slider, buttons)
|
||||
{
|
||||
QString sliderProverty = slider->property("config_name").toString();
|
||||
if (sliderProverty == spinBoxProverty)
|
||||
|
|
|
@ -95,7 +95,6 @@ private slots:
|
|||
|
||||
private:
|
||||
std::vector<DeviceConfigsGroup> m_baseDeviceConfigsGroups;
|
||||
std::vector<QWidget*> m_ctrlList;
|
||||
};
|
||||
|
||||
#endif // FORM_DEVICECONFIG_H
|
||||
|
|
Loading…
Reference in New Issue