#include "dialog_add.h" #include "ui_dialog_add.h" #include "mainwindow.h" #include 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()) + ")"); // TODO 通过devHandle获取支持的按钮,并添加到下拉列表 ui->comboBoxButtonType->addItem("Button 1"); ui->comboBoxButtonType->addItem("Button 2"); ui->comboBoxButtonType->addItem("Button 3"); m_scanParam.deviceType = deviceType; m_scanParam.buttonType = ButtonType(ui->comboBoxButtonType->currentIndex() + 1); 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()) + ")"); // TODO 通过devHandle获取支持的按钮,并添加到下拉列表 ui->comboBoxButtonType->addItem("Button 1"); ui->comboBoxButtonType->addItem("Button 2"); ui->comboBoxButtonType->addItem("Button 3"); m_scanParam = scanParam; ui->comboBoxButtonType->setCurrentIndex(m_scanParam.buttonType - 1); 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_comboBoxButtonType_currentIndexChanged(int index) { m_scanParam.buttonType = ButtonType(index + 1); } void Dialog_Add::on_pushButtonOK_clicked() { if (m_mainWnd->FindScanParam(m_scanParam.deviceType, m_scanParam.buttonType, 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(); }