解决三方软件showUI并且无进度指示器时,不会报错的问题
This commit is contained in:
parent
bc80b1ea74
commit
f3989426bb
Binary file not shown.
|
@ -83,8 +83,7 @@ hg_settingdialog::hg_settingdialog(class Manager *mgr, SANE_Handle handle, const
|
|||
m_originGammaData = m_gammaData;
|
||||
|
||||
connect(comb_, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_current_scheme_changed()));
|
||||
connect(this, SIGNAL(scan_start()),this, SLOT(on_scan_start()), Qt::QueuedConnection);
|
||||
connect(this, SIGNAL(scan_finish()), this, SLOT(on_scan_finish()), Qt::QueuedConnection);
|
||||
connect(this, SIGNAL(scan_status(QString,bool)),this, SLOT(on_scan_status(QString, bool)), Qt::QueuedConnection);
|
||||
|
||||
*notify = FuncNotify;
|
||||
}
|
||||
|
@ -191,13 +190,24 @@ void hg_settingdialog::FuncNotify(int event, void* msg, int flag)
|
|||
{
|
||||
case SANE_EVENT_WORKING:
|
||||
{
|
||||
emit p->scan_start();
|
||||
QString finishInfo;
|
||||
if (0 != flag)
|
||||
{
|
||||
finishInfo = (char*)msg;
|
||||
}
|
||||
|
||||
emit p->scan_status(finishInfo, true);
|
||||
}
|
||||
break;
|
||||
|
||||
case SANE_EVENT_SCAN_FINISHED:
|
||||
{
|
||||
emit p->scan_finish();
|
||||
QString finishInfo;
|
||||
if (0 != flag)
|
||||
{
|
||||
finishInfo = (char*)msg;
|
||||
}
|
||||
emit p->scan_status(finishInfo, false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -1200,18 +1210,16 @@ void hg_settingdialog::updateUIStatus()
|
|||
}
|
||||
}
|
||||
|
||||
void hg_settingdialog::on_scan_start()
|
||||
void hg_settingdialog::on_scan_status(QString info, bool status)
|
||||
{
|
||||
m_isScanning = true;
|
||||
this->setEnabled(false);
|
||||
setAttribute(Qt::WA_DeleteOnClose, false);
|
||||
}
|
||||
if (!info.isEmpty())
|
||||
{
|
||||
QMessageBox::information(this, tr("Prompt"), info);
|
||||
}
|
||||
|
||||
void hg_settingdialog::on_scan_finish()
|
||||
{
|
||||
m_isScanning = false;
|
||||
this->setEnabled(true);
|
||||
setAttribute(Qt::WA_DeleteOnClose, true);
|
||||
m_isScanning = status;
|
||||
this->setEnabled(!status);
|
||||
setAttribute(Qt::WA_DeleteOnClose, !status);
|
||||
}
|
||||
|
||||
void hg_settingdialog::slot_checkedClicked()
|
||||
|
|
|
@ -137,12 +137,10 @@ private:
|
|||
QVector<QWidget*> m_list_widgets;
|
||||
|
||||
signals:
|
||||
void scan_start();
|
||||
void scan_finish();
|
||||
void scan_status(QString info, bool status);
|
||||
|
||||
private slots:
|
||||
void on_scan_start();
|
||||
void on_scan_finish();
|
||||
void on_scan_status(QString info, bool status);
|
||||
|
||||
private slots:
|
||||
void slot_checkedClicked();
|
||||
|
|
Loading…
Reference in New Issue