52 lines
1.2 KiB
C++
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();
|
||
|
}
|
||
|
}
|