解决设备断开时,部分模态子窗口没有关闭的问题;
This commit is contained in:
parent
397076c9d3
commit
a70931d5c1
|
@ -30,6 +30,7 @@ Dialog_Add::Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const s
|
|||
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);
|
||||
connect(this, SIGNAL(closeDevice()), m_formSaveParam, SLOT(on_closeDevice()));
|
||||
ui->stackedWidget->addWidget(m_formDeviceConfig);
|
||||
ui->stackedWidget->addWidget(m_formSaveParam);
|
||||
ui->stackedWidget->setCurrentIndex(0);
|
||||
|
@ -58,6 +59,7 @@ Dialog_Add::Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const S
|
|||
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);
|
||||
connect(this, SIGNAL(closeDevice()), m_formSaveParam, SLOT(on_closeDevice()));
|
||||
ui->stackedWidget->addWidget(m_formDeviceConfig);
|
||||
ui->stackedWidget->addWidget(m_formSaveParam);
|
||||
ui->stackedWidget->setCurrentIndex(0);
|
||||
|
|
|
@ -12,12 +12,12 @@
|
|||
#include <QSpacerItem>
|
||||
#include <QPushButton>
|
||||
#include <QEvent>
|
||||
#include <QMessageBox>
|
||||
#include "lang/app_language.h"
|
||||
|
||||
Form_DeviceConfig::Form_DeviceConfig(SANE_Handle devHandle, const std::vector<DeviceConfig>& deviceConfigs, QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, m_clrToolDlg(nullptr)
|
||||
, m_qMessageBoxDlg(nullptr)
|
||||
, m_devHandle(devHandle)
|
||||
, m_defButtonId(-1)
|
||||
{
|
||||
|
@ -27,6 +27,7 @@ Form_DeviceConfig::Form_DeviceConfig(SANE_Handle devHandle, const std::vector<De
|
|||
Form_DeviceConfig::~Form_DeviceConfig()
|
||||
{
|
||||
assert(nullptr == m_clrToolDlg);
|
||||
assert(nullptr == m_qMessageBoxDlg);
|
||||
}
|
||||
|
||||
std::vector<DeviceConfig> Form_DeviceConfig::GetDeviceConfigs()
|
||||
|
@ -810,6 +811,16 @@ void Form_DeviceConfig::Update(int ignoreId)
|
|||
}
|
||||
}
|
||||
|
||||
void Form_DeviceConfig::PopupMsgBox(QString content)
|
||||
{
|
||||
assert(nullptr == m_qMessageBoxDlg);
|
||||
m_qMessageBoxDlg = new QMessageBox(QMessageBox::Information, tr("Prompt"), content, QMessageBox::Ok, this);
|
||||
m_qMessageBoxDlg->exec();
|
||||
|
||||
delete m_qMessageBoxDlg;
|
||||
m_qMessageBoxDlg = nullptr;
|
||||
}
|
||||
|
||||
bool Form_DeviceConfig::eventFilter(QObject *target, QEvent *event)
|
||||
{
|
||||
if (typeid(*target) == typeid(QSlider) || typeid(*target) == typeid(QComboBox) || typeid(*target) == typeid(QSpinBox) ||
|
||||
|
@ -828,6 +839,8 @@ void Form_DeviceConfig::on_closeDevice()
|
|||
{
|
||||
if (nullptr != m_clrToolDlg)
|
||||
m_clrToolDlg->reject();
|
||||
if (nullptr != m_qMessageBoxDlg)
|
||||
m_qMessageBoxDlg->reject();
|
||||
}
|
||||
|
||||
void Form_DeviceConfig::on_defaultBtn_clicked()
|
||||
|
@ -856,7 +869,10 @@ void Form_DeviceConfig::on_string_list_comboBoxClicked()
|
|||
disconnect(comboBox, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_string_list_comboBoxClicked()));
|
||||
comboBox->setCurrentText(QString::fromUtf8(v));
|
||||
connect(comboBox, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_string_list_comboBoxClicked()));
|
||||
QMessageBox::information(this, tr("Prompt"), tr("The funtion is unsupported"));
|
||||
|
||||
QString content("The funtion is unsupported");
|
||||
PopupMsgBox(content);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -883,7 +899,10 @@ void Form_DeviceConfig::on_int_list_comboBoxClicked()
|
|||
disconnect(comboBox, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_int_list_comboBoxClicked()));
|
||||
comboBox->setCurrentText(QString::number(v));
|
||||
connect(comboBox, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_int_list_comboBoxClicked()));
|
||||
QMessageBox::information(this, tr("Prompt"), tr("The funtion is unsupported"));
|
||||
|
||||
QString content("The funtion is unsupported");
|
||||
PopupMsgBox(content);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -910,7 +929,10 @@ void Form_DeviceConfig::on_double_list_comboBoxClicked()
|
|||
disconnect(comboBox, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_double_list_comboBoxClicked()));
|
||||
comboBox->setCurrentText(QString::number(SANE_UNFIX(v)));
|
||||
connect(comboBox, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_double_list_comboBoxClicked()));
|
||||
QMessageBox::information(this, tr("Prompt"), tr("The funtion is unsupported"));
|
||||
|
||||
QString content("The funtion is unsupported");
|
||||
PopupMsgBox(content);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -945,7 +967,10 @@ void Form_DeviceConfig::on_int_sliderClicked(int value)
|
|||
spinBox->setValue(v);
|
||||
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(on_int_sliderClicked(int)));
|
||||
connect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(on_relate_spinBoxClicked(int)));
|
||||
QMessageBox::information(this, tr("Prompt"), tr("The funtion is unsupported"));
|
||||
|
||||
QString content("The funtion is unsupported");
|
||||
PopupMsgBox(content);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -980,7 +1005,10 @@ void Form_DeviceConfig::on_double_sliderClicked(int value)
|
|||
doubleSpinBox->setValue(SANE_UNFIX(v));
|
||||
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(on_double_sliderClicked(int)));
|
||||
connect(doubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(on_relate_doubleSpinboxClicked(double)));
|
||||
QMessageBox::information(this, tr("Prompt"), tr("The funtion is unsupported"));
|
||||
|
||||
QString content("The funtion is unsupported");
|
||||
PopupMsgBox(content);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1021,7 +1049,10 @@ void Form_DeviceConfig::on_string_comboBoxClicked()
|
|||
disconnect(comboBox, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_string_comboBoxClicked()));
|
||||
comboBox->setCurrentText(QString::fromUtf8(v));
|
||||
connect(comboBox, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_string_comboBoxClicked()));
|
||||
QMessageBox::information(this, tr("Prompt"), tr("The funtion is unsupported"));
|
||||
|
||||
QString content("The funtion is unsupported");
|
||||
PopupMsgBox(content);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1048,7 +1079,10 @@ void Form_DeviceConfig::on_spinBoxClicked(int value)
|
|||
disconnect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(on_spinBoxClicked(int)));
|
||||
spinBox->setValue(v);
|
||||
connect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(on_spinBoxClicked(int)));
|
||||
QMessageBox::information(this, tr("Prompt"), tr("The funtion is unsupported"));
|
||||
|
||||
QString content("The funtion is unsupported");
|
||||
PopupMsgBox(content);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1083,7 +1117,10 @@ void Form_DeviceConfig::on_customGamma_checkedClicked()
|
|||
button->setEnabled((bool)value);
|
||||
connect(checkBox, SIGNAL(stateChanged(int)), this, SLOT(on_checkedClicked()));
|
||||
connect(button, &QPushButton::clicked, this, &Form_DeviceConfig::on_customGammaBtn_clicked);
|
||||
QMessageBox::information(this, tr("Prompt"), tr("The funtion is unsupported"));
|
||||
|
||||
QString content("The funtion is unsupported");
|
||||
PopupMsgBox(content);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1324,7 +1361,10 @@ void Form_DeviceConfig::on_checkedClicked()
|
|||
disconnect(checkBox, SIGNAL(stateChanged(int)), this, SLOT(on_checkedClicked()));
|
||||
checkBox->setCheckState(value ? Qt::Checked : Qt::Unchecked);
|
||||
connect(checkBox, SIGNAL(stateChanged(int)), this, SLOT(on_checkedClicked()));
|
||||
QMessageBox::information(this, tr("Prompt"), tr("The funtion is unsupported"));
|
||||
|
||||
QString content("The funtion is unsupported");
|
||||
PopupMsgBox(content);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <QWidget>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <QMessageBox>
|
||||
#include "base/HGDef.h"
|
||||
#include "sane/sane_ex.h"
|
||||
#include "sane/sane_option_definitions.h"
|
||||
|
@ -122,6 +123,7 @@ public:
|
|||
private:
|
||||
void Init(const std::vector<DeviceConfig>& deviceConfigs);
|
||||
void Update(int ignoreId);
|
||||
void PopupMsgBox(QString content);
|
||||
|
||||
protected:
|
||||
virtual bool eventFilter(QObject *target, QEvent *event) override;
|
||||
|
@ -144,6 +146,7 @@ private slots:
|
|||
|
||||
private:
|
||||
setPicClrTool *m_clrToolDlg;
|
||||
QMessageBox *m_qMessageBoxDlg;
|
||||
SANE_Handle m_devHandle;
|
||||
int m_defButtonId;
|
||||
std::vector<DeviceConfigsGroup> m_deviceConfigsGroups; // 当前配置信息
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#include "form_saveparam.h"
|
||||
#include "ui_form_saveparam.h"
|
||||
#include <QFileDialog>
|
||||
#include "base/HGDef.h"
|
||||
#include "base/HGInc.h"
|
||||
#include "base/HGUtility.h"
|
||||
|
@ -9,6 +8,8 @@
|
|||
Form_SaveParam::Form_SaveParam(const SaveParam &saveParam, QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::Form_SaveParam)
|
||||
, m_writeSettingsDlg(nullptr)
|
||||
, m_qFileDialog(nullptr)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
|
@ -56,6 +57,8 @@ Form_SaveParam::Form_SaveParam(const SaveParam &saveParam, QWidget *parent)
|
|||
|
||||
Form_SaveParam::~Form_SaveParam()
|
||||
{
|
||||
assert(nullptr == m_writeSettingsDlg);
|
||||
assert(nullptr == m_qFileDialog);
|
||||
delete ui;
|
||||
}
|
||||
|
||||
|
@ -200,27 +203,51 @@ int Form_SaveParam::getFormatIndex(const std::string &ext, bool ocr)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void Form_SaveParam::on_closeDevice()
|
||||
{
|
||||
if (nullptr != m_writeSettingsDlg)
|
||||
m_writeSettingsDlg->reject();
|
||||
if (nullptr != m_qFileDialog)
|
||||
m_qFileDialog->reject();
|
||||
}
|
||||
|
||||
void Form_SaveParam::on_btn_directory_clicked()
|
||||
{
|
||||
QString save_dir = QFileDialog::getExistingDirectory(this, tr("Browse directory"), ui->lineEdit_directory->text());
|
||||
if (!save_dir.isEmpty())
|
||||
assert(nullptr == m_qFileDialog);
|
||||
m_qFileDialog = new QFileDialog(this);
|
||||
m_qFileDialog->setFileMode(QFileDialog::Directory);
|
||||
m_qFileDialog->setViewMode(QFileDialog::Detail);
|
||||
m_qFileDialog->setWindowTitle("Browse directory");
|
||||
m_qFileDialog->setDirectory(ui->lineEdit_directory->text());
|
||||
if (m_qFileDialog->exec())
|
||||
{
|
||||
if (save_dir[save_dir.size() - 1] != '/')
|
||||
save_dir += "/";
|
||||
QString save_dir = m_qFileDialog->directory().absolutePath();
|
||||
if (!save_dir.isEmpty())
|
||||
{
|
||||
if (save_dir[save_dir.size() - 1] != '/')
|
||||
save_dir += "/";
|
||||
|
||||
char result[512] = {0};
|
||||
HGBase_StandardiseFileName(save_dir.toStdString().c_str(), result, 512);
|
||||
ui->lineEdit_directory->setText(QString::fromStdString(result));
|
||||
char result[512] = {0};
|
||||
HGBase_StandardiseFileName(save_dir.toStdString().c_str(), result, 512);
|
||||
ui->lineEdit_directory->setText(QString::fromStdString(result));
|
||||
}
|
||||
}
|
||||
|
||||
delete m_qFileDialog;
|
||||
m_qFileDialog = nullptr;
|
||||
}
|
||||
|
||||
void Form_SaveParam::on_btn_option_clicked()
|
||||
{
|
||||
Dialog_WriteSettings dlg(ui->cbox_format->currentIndex(), m_writeParam, this);
|
||||
if (dlg.exec())
|
||||
assert(nullptr == m_writeSettingsDlg);
|
||||
m_writeSettingsDlg = new Dialog_WriteSettings(ui->cbox_format->currentIndex(), m_writeParam, this);
|
||||
if (m_writeSettingsDlg->exec())
|
||||
{
|
||||
m_writeParam = dlg.GetWriteParam();
|
||||
m_writeParam = m_writeSettingsDlg->GetWriteParam();
|
||||
}
|
||||
|
||||
delete m_writeSettingsDlg;
|
||||
m_writeSettingsDlg = nullptr;
|
||||
}
|
||||
|
||||
void Form_SaveParam::on_cbox_format_currentIndexChanged(int index)
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include <QWidget>
|
||||
#include <string>
|
||||
#include <QFileDialog>
|
||||
#include "dialog_writesettings.h"
|
||||
|
||||
namespace Ui {
|
||||
|
@ -45,6 +46,8 @@ private:
|
|||
int getFormatIndex(const std::string &ext, bool ocr);
|
||||
|
||||
private slots:
|
||||
void on_closeDevice();
|
||||
|
||||
void on_btn_directory_clicked();
|
||||
|
||||
void on_btn_option_clicked();
|
||||
|
@ -66,6 +69,8 @@ private slots:
|
|||
private:
|
||||
Ui::Form_SaveParam *ui;
|
||||
WriteParam m_writeParam;
|
||||
Dialog_WriteSettings *m_writeSettingsDlg;
|
||||
QFileDialog *m_qFileDialog;
|
||||
};
|
||||
|
||||
#endif // FORM_SAVEPARAM_H
|
||||
|
|
Loading…
Reference in New Issue