code_app/app/scantool/dialog_add.cpp

116 lines
3.6 KiB
C++
Raw Normal View History

2024-04-23 09:44:22 +00:00
#include "dialog_add.h"
#include "ui_dialog_add.h"
2024-04-24 06:57:44 +00:00
#include "mainwindow.h"
2024-04-23 09:44:22 +00:00
#include <QMessageBox>
Dialog_Add::Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const std::string &deviceType)
2024-04-24 06:57:44 +00:00
: QDialog(mainWnd)
2024-04-23 09:44:22 +00:00
, ui(new Ui::Dialog_Add)
2024-04-24 06:57:44 +00:00
, m_mainWnd(mainWnd)
2024-04-23 09:44:22 +00:00
, m_index(-1)
{
ui->setupUi(this);
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
this->setWindowTitle(tr("Add") + " (" + QString(deviceType.c_str()) + ")");
2024-04-23 09:44:22 +00:00
2024-04-26 05:15:43 +00:00
ui->comboBoxButtonId->addItem("Manual");
2024-04-28 10:15:51 +00:00
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));
2024-04-23 09:44:22 +00:00
m_scanParam.deviceType = deviceType;
2024-04-26 05:15:43 +00:00
m_scanParam.buttonId = ui->comboBoxButtonId->currentIndex();
m_scanParam.deviceConfigs.clear();
2024-04-24 03:57:56 +00:00
m_scanParam.saveParam = Form_SaveParam::GetDefSaveParam();
m_formDeviceConfig = new Form_DeviceConfig(devHandle, m_scanParam.deviceConfigs, this);
2024-05-07 08:09:36 +00:00
connect(this, SIGNAL(closeDevice()), m_formDeviceConfig, SLOT(on_closeDevice()));
2024-04-24 03:57:56 +00:00
m_formSaveParam = new Form_SaveParam(m_scanParam.saveParam, this);
ui->stackedWidget->addWidget(m_formDeviceConfig);
ui->stackedWidget->addWidget(m_formSaveParam);
ui->stackedWidget->setCurrentIndex(0);
2024-04-23 09:44:22 +00:00
}
Dialog_Add::Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const ScanParam &scanParam, int index)
2024-04-24 06:57:44 +00:00
: QDialog(mainWnd)
2024-04-23 09:44:22 +00:00
, ui(new Ui::Dialog_Add)
2024-04-24 06:57:44 +00:00
, m_mainWnd(mainWnd)
2024-04-23 09:44:22 +00:00
, m_index(index)
{
ui->setupUi(this);
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
this->setWindowTitle(tr("Modify") + " (" + QString(scanParam.deviceType.c_str()) + ")");
2024-04-23 09:44:22 +00:00
2024-04-26 05:15:43 +00:00
ui->comboBoxButtonId->addItem("Manual");
2024-04-28 10:15:51 +00:00
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));
2024-04-23 09:44:22 +00:00
m_scanParam = scanParam;
2024-04-26 05:15:43 +00:00
ui->comboBoxButtonId->setCurrentIndex(m_scanParam.buttonId);
2024-04-24 03:57:56 +00:00
m_formDeviceConfig = new Form_DeviceConfig(devHandle, m_scanParam.deviceConfigs, this);
2024-05-07 08:09:36 +00:00
connect(this, SIGNAL(closeDevice()), m_formDeviceConfig, SLOT(on_closeDevice()));
2024-04-24 03:57:56 +00:00
m_formSaveParam = new Form_SaveParam(m_scanParam.saveParam, this);
ui->stackedWidget->addWidget(m_formDeviceConfig);
ui->stackedWidget->addWidget(m_formSaveParam);
ui->stackedWidget->setCurrentIndex(0);
2024-04-23 09:44:22 +00:00
}
Dialog_Add::~Dialog_Add()
{
2024-04-24 03:57:56 +00:00
delete m_formSaveParam;
2024-05-07 08:09:36 +00:00
m_formSaveParam = nullptr;
disconnect(this, SIGNAL(closeDevice()), m_formDeviceConfig, SLOT(on_closeDevice()));
2024-04-24 03:57:56 +00:00
delete m_formDeviceConfig;
2024-05-07 08:09:36 +00:00
m_formDeviceConfig = nullptr;
2024-04-23 09:44:22 +00:00
delete ui;
}
ScanParam Dialog_Add::GetScanParam()
{
return m_scanParam;
}
2024-05-07 08:09:36 +00:00
void Dialog_Add::on_closeDevice()
{
emit closeDevice();
reject();
}
2024-04-23 09:44:22 +00:00
void Dialog_Add::on_pushButtonDeviceConfig_clicked()
{
2024-04-24 03:57:56 +00:00
ui->stackedWidget->setCurrentIndex(0);
2024-04-23 09:44:22 +00:00
}
void Dialog_Add::on_pushButtonSaveParam_clicked()
{
2024-04-24 03:57:56 +00:00
ui->stackedWidget->setCurrentIndex(1);
2024-04-23 09:44:22 +00:00
}
2024-04-26 05:15:43 +00:00
void Dialog_Add::on_comboBoxButtonId_currentIndexChanged(int index)
2024-04-23 09:44:22 +00:00
{
2024-04-26 05:15:43 +00:00
m_scanParam.buttonId = index;
2024-04-23 09:44:22 +00:00
}
void Dialog_Add::on_pushButtonOK_clicked()
{
2024-04-26 05:15:43 +00:00
if (m_mainWnd->FindScanParam(m_scanParam.deviceType, m_scanParam.buttonId, m_index))
2024-04-23 09:44:22 +00:00
{
QMessageBox::information(this, tr("Tips"), tr("Item find in list"));
return;
}
m_scanParam.deviceConfigs = m_formDeviceConfig->GetDeviceConfigs();
2024-04-24 03:57:56 +00:00
m_scanParam.saveParam = m_formSaveParam->GetSaveParam();
2024-04-23 09:44:22 +00:00
accept();
}
void Dialog_Add::on_pushButtonCancel_clicked()
{
reject();
}