解决三方软件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;
|
m_originGammaData = m_gammaData;
|
||||||
|
|
||||||
connect(comb_, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_current_scheme_changed()));
|
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_status(QString,bool)),this, SLOT(on_scan_status(QString, bool)), Qt::QueuedConnection);
|
||||||
connect(this, SIGNAL(scan_finish()), this, SLOT(on_scan_finish()), Qt::QueuedConnection);
|
|
||||||
|
|
||||||
*notify = FuncNotify;
|
*notify = FuncNotify;
|
||||||
}
|
}
|
||||||
|
@ -191,13 +190,24 @@ void hg_settingdialog::FuncNotify(int event, void* msg, int flag)
|
||||||
{
|
{
|
||||||
case SANE_EVENT_WORKING:
|
case SANE_EVENT_WORKING:
|
||||||
{
|
{
|
||||||
emit p->scan_start();
|
QString finishInfo;
|
||||||
|
if (0 != flag)
|
||||||
|
{
|
||||||
|
finishInfo = (char*)msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
emit p->scan_status(finishInfo, true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SANE_EVENT_SCAN_FINISHED:
|
case SANE_EVENT_SCAN_FINISHED:
|
||||||
{
|
{
|
||||||
emit p->scan_finish();
|
QString finishInfo;
|
||||||
|
if (0 != flag)
|
||||||
|
{
|
||||||
|
finishInfo = (char*)msg;
|
||||||
|
}
|
||||||
|
emit p->scan_status(finishInfo, false);
|
||||||
}
|
}
|
||||||
break;
|
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;
|
if (!info.isEmpty())
|
||||||
this->setEnabled(false);
|
{
|
||||||
setAttribute(Qt::WA_DeleteOnClose, false);
|
QMessageBox::information(this, tr("Prompt"), info);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hg_settingdialog::on_scan_finish()
|
m_isScanning = status;
|
||||||
{
|
this->setEnabled(!status);
|
||||||
m_isScanning = false;
|
setAttribute(Qt::WA_DeleteOnClose, !status);
|
||||||
this->setEnabled(true);
|
|
||||||
setAttribute(Qt::WA_DeleteOnClose, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void hg_settingdialog::slot_checkedClicked()
|
void hg_settingdialog::slot_checkedClicked()
|
||||||
|
|
|
@ -137,12 +137,10 @@ private:
|
||||||
QVector<QWidget*> m_list_widgets;
|
QVector<QWidget*> m_list_widgets;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void scan_start();
|
void scan_status(QString info, bool status);
|
||||||
void scan_finish();
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_scan_start();
|
void on_scan_status(QString info, bool status);
|
||||||
void on_scan_finish();
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void slot_checkedClicked();
|
void slot_checkedClicked();
|
||||||
|
|
Loading…
Reference in New Issue