code_app/app/scanner/dialog_device_select.cpp

52 lines
1.2 KiB
C++

#include "dialog_device_select.h"
#include "ui_dialog_device_select.h"
#include <QMessageBox>
Dialog_Device_Select::Dialog_Device_Select(HGSaneManager saneMgr, QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog_Device_Select)
{
ui->setupUi(this);
m_saneMgr = saneMgr;
m_saneDev = nullptr;
HGUInt count = 0;
HGSane_GetDeviceCount(m_saneMgr, &count);
for (HGUInt i = 0; i < count; ++i)
{
HGChar name[256];
HGSane_GetDeviceName(m_saneMgr, i, name, 256);
ui->listWidget->addItem(name);
}
}
Dialog_Device_Select::~Dialog_Device_Select()
{
delete ui;
}
HGSaneDevice Dialog_Device_Select::getSaneDevice()
{
return m_saneDev;
}
void Dialog_Device_Select::on_buttonBox_accepted()
{
int index = ui->listWidget->currentRow();
if (index >= 0)
{
HGSaneDevice dev = nullptr;
HGChar errInfo[256];
HGSane_OpenDevice(m_saneMgr, index, &dev, errInfo, 256);
if (nullptr == dev)
{
QMessageBox msg(QMessageBox::Information, tr("tips"), tr(errInfo), QMessageBox::Ok, this);
msg.exec();
return;
}
m_saneDev = dev;
accept();
}
}