code_app/app/scantool/dialog_add.cpp

104 lines
3.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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)
: 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("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();
m_scanParam.deviceConfigs.clear();
m_scanParam.saveParam = Form_SaveParam::GetDefSaveParam();
m_formDeviceConfig = new Form_DeviceConfig(devHandle, m_scanParam.deviceConfigs, this);
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("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);
m_formDeviceConfig = new Form_DeviceConfig(devHandle, m_scanParam.deviceConfigs, this);
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;
delete m_formDeviceConfig;
delete ui;
}
ScanParam Dialog_Add::GetScanParam()
{
return m_scanParam;
}
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)
{
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();
}