解决三方调用showUI,扫描完成后设置界面没有关闭的问题

This commit is contained in:
yangjiaxuan 2023-12-01 11:36:12 +08:00
parent f3989426bb
commit 11175fa485
2 changed files with 21 additions and 7 deletions

View File

@ -38,6 +38,7 @@ hg_settingdialog::hg_settingdialog(class Manager *mgr, SANE_Handle handle, const
, cur_cfg_(cfg)
, m_isMultiOutMode(false)
, m_isScanning(false)
, m_isAutoFinish(false)
{
m_mgr = mgr;
@ -95,8 +96,14 @@ hg_settingdialog::~hg_settingdialog()
//cur_cfg_->release();
m_mgr->m_settingUi = NULL;
if(!quit_)
if (m_isAutoFinish)
{
m_callback(UI_RESULT_CLOSE_NORMAL);
}
else if (!quit_)
{
m_callback(UI_RESULT_CLOSE_SETTING);
}
}
void hg_settingdialog::apply_scheme(SANE_Handle dev, LPSANEAPI api, gb::sane_config_schm* schm)
@ -1210,16 +1217,22 @@ void hg_settingdialog::updateUIStatus()
}
}
void hg_settingdialog::on_scan_status(QString info, bool status)
void hg_settingdialog::on_scan_status(QString info, bool isScanning)
{
if (!info.isEmpty())
{
QMessageBox::information(this, tr("Prompt"), info);
}
m_isScanning = status;
this->setEnabled(!status);
setAttribute(Qt::WA_DeleteOnClose, !status);
m_isScanning = isScanning;
this->setEnabled(!isScanning);
setAttribute(Qt::WA_DeleteOnClose, !isScanning);
if (!isScanning)
{
m_isAutoFinish = true;
close();
}
}
void hg_settingdialog::slot_checkedClicked()

View File

@ -137,10 +137,10 @@ private:
QVector<QWidget*> m_list_widgets;
signals:
void scan_status(QString info, bool status);
void scan_status(QString info, bool isScanning);
private slots:
void on_scan_status(QString info, bool status);
void on_scan_status(QString info, bool isScanning);
private slots:
void slot_checkedClicked();
@ -187,6 +187,7 @@ private:
bool m_isRefreshUi;
bool m_isMultiOutMode;
bool m_isScanning;
bool m_isAutoFinish;
};
#endif // HG_SETTING_DIALOG_H