120 lines
3.8 KiB
C++
120 lines
3.8 KiB
C++
#include "dialog_add.h"
|
|
#include "ui_dialog_add.h"
|
|
#include "mainwindow.h"
|
|
#include <QMessageBox>
|
|
|
|
Dialog_Add::Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const std::string &deviceType, int curButtonId)
|
|
: QDialog(mainWnd)
|
|
, ui(new Ui::Dialog_Add)
|
|
, m_mainWnd(mainWnd)
|
|
, m_index(-1)
|
|
{
|
|
ui->setupUi(this);
|
|
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
|
this->setWindowTitle(tr("Add") + " (" + QString(deviceType.c_str()) + ")");
|
|
|
|
ui->comboBoxButtonId->addItem(tr("Manual"));
|
|
SANE_Int buttonCount = 0;
|
|
sane_control_option(devHandle, (SANE_Int)0x886E, SANE_ACTION_GET_VALUE, &buttonCount, NULL);
|
|
for (SANE_Int i = 0; i < buttonCount; ++i)
|
|
ui->comboBoxButtonId->addItem(tr("Button ") + QString::number(i + 1));
|
|
|
|
if (buttonCount >= curButtonId)
|
|
ui->comboBoxButtonId->setCurrentIndex(curButtonId);
|
|
|
|
m_scanParam.deviceType = deviceType;
|
|
m_scanParam.buttonId = ui->comboBoxButtonId->currentIndex();
|
|
m_scanParam.deviceConfigs.clear();
|
|
m_scanParam.saveParam = Form_SaveParam::GetDefSaveParam();
|
|
|
|
m_formDeviceConfig = new Form_DeviceConfig(devHandle, m_scanParam.deviceConfigs, this);
|
|
connect(this, SIGNAL(closeDevice()), m_formDeviceConfig, SLOT(on_closeDevice()));
|
|
m_formSaveParam = new Form_SaveParam(m_scanParam.saveParam, this);
|
|
ui->stackedWidget->addWidget(m_formDeviceConfig);
|
|
ui->stackedWidget->addWidget(m_formSaveParam);
|
|
ui->stackedWidget->setCurrentIndex(0);
|
|
}
|
|
|
|
Dialog_Add::Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const ScanParam &scanParam, int index)
|
|
: QDialog(mainWnd)
|
|
, ui(new Ui::Dialog_Add)
|
|
, m_mainWnd(mainWnd)
|
|
, m_index(index)
|
|
{
|
|
ui->setupUi(this);
|
|
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
|
this->setWindowTitle(tr("Modify") + " (" + QString(scanParam.deviceType.c_str()) + ")");
|
|
|
|
ui->comboBoxButtonId->addItem(tr("Manual"));
|
|
SANE_Int buttonCount = 0;
|
|
sane_control_option(devHandle, (SANE_Int)0x886E, SANE_ACTION_GET_VALUE, &buttonCount, NULL);
|
|
for (SANE_Int i = 0; i < buttonCount; ++i)
|
|
ui->comboBoxButtonId->addItem(tr("Button ") + QString::number(i + 1));
|
|
|
|
m_scanParam = scanParam;
|
|
ui->comboBoxButtonId->setCurrentIndex(m_scanParam.buttonId);
|
|
|
|
m_formDeviceConfig = new Form_DeviceConfig(devHandle, m_scanParam.deviceConfigs, this);
|
|
connect(this, SIGNAL(closeDevice()), m_formDeviceConfig, SLOT(on_closeDevice()));
|
|
m_formSaveParam = new Form_SaveParam(m_scanParam.saveParam, this);
|
|
ui->stackedWidget->addWidget(m_formDeviceConfig);
|
|
ui->stackedWidget->addWidget(m_formSaveParam);
|
|
ui->stackedWidget->setCurrentIndex(0);
|
|
}
|
|
|
|
Dialog_Add::~Dialog_Add()
|
|
{
|
|
delete m_formSaveParam;
|
|
m_formSaveParam = nullptr;
|
|
disconnect(this, SIGNAL(closeDevice()), m_formDeviceConfig, SLOT(on_closeDevice()));
|
|
delete m_formDeviceConfig;
|
|
m_formDeviceConfig = nullptr;
|
|
|
|
delete ui;
|
|
}
|
|
|
|
ScanParam Dialog_Add::GetScanParam()
|
|
{
|
|
return m_scanParam;
|
|
}
|
|
|
|
void Dialog_Add::on_closeDevice()
|
|
{
|
|
emit closeDevice();
|
|
reject();
|
|
}
|
|
|
|
void Dialog_Add::on_pushButtonDeviceConfig_clicked()
|
|
{
|
|
ui->stackedWidget->setCurrentIndex(0);
|
|
}
|
|
|
|
void Dialog_Add::on_pushButtonSaveParam_clicked()
|
|
{
|
|
ui->stackedWidget->setCurrentIndex(1);
|
|
}
|
|
|
|
void Dialog_Add::on_comboBoxButtonId_currentIndexChanged(int index)
|
|
{
|
|
if (index >= 0)
|
|
m_scanParam.buttonId = index;
|
|
}
|
|
|
|
void Dialog_Add::on_pushButtonOK_clicked()
|
|
{
|
|
if (m_mainWnd->FindScanParam(m_scanParam.deviceType, m_scanParam.buttonId, m_index))
|
|
{
|
|
QMessageBox::information(this, tr("Tips"), tr("Item find in list"));
|
|
return;
|
|
}
|
|
|
|
m_scanParam.deviceConfigs = m_formDeviceConfig->GetDeviceConfigs();
|
|
m_scanParam.saveParam = m_formSaveParam->GetSaveParam();
|
|
accept();
|
|
}
|
|
|
|
void Dialog_Add::on_pushButtonCancel_clicked()
|
|
{
|
|
reject();
|
|
}
|