From eb0be5d72925370185a92cbdf62df474a1d5bb51 Mon Sep 17 00:00:00 2001 From: yangjiaxuan <171295266@qq.com> Date: Wed, 28 Dec 2022 14:57:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=A4=A7=E5=AD=97=E4=BD=93=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9B=BE=E7=89=87=E6=97=8B=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/HGProductionTool/ProductionTool_zh_CN.qm | Bin 8873 -> 9103 bytes app/HGProductionTool/ProductionTool_zh_CN.ts | 108 ++++++---- app/HGProductionTool/dialog_accountmanage.cpp | 4 + app/HGProductionTool/dialog_accountmanage.ui | 4 +- app/HGProductionTool/dialog_changepwd.cpp | 4 + app/HGProductionTool/dialog_changepwd.ui | 202 +++++++++--------- app/HGProductionTool/dialog_excepdesc.cpp | 5 + .../dialog_inputserialnum.cpp | 4 + app/HGProductionTool/dialog_inputserialnum.ui | 10 +- app/HGProductionTool/dialog_login.cpp | 4 + app/HGProductionTool/dialog_rootfuntion.cpp | 4 + app/HGProductionTool/dialog_rootfuntion.ui | 4 +- app/HGProductionTool/dialog_uploadcfgfile.cpp | 4 + app/HGProductionTool/dialog_uploadcfgfile.ui | 4 +- app/HGProductionTool/dialog_userinput.cpp | 7 + app/HGProductionTool/dialog_userinput.ui | 79 +++++-- app/HGProductionTool/form_maininterface.cpp | 37 +++- app/HGProductionTool/form_maininterface.h | 6 + app/HGProductionTool/form_maininterface.ui | 26 ++- app/HGProductionTool/form_texttips.cpp | 2 +- app/HGProductionTool/hgscanner.cpp | 5 + app/HGProductionTool/mainwindow.cpp | 7 +- 22 files changed, 351 insertions(+), 179 deletions(-) diff --git a/app/HGProductionTool/ProductionTool_zh_CN.qm b/app/HGProductionTool/ProductionTool_zh_CN.qm index 322408dd59d65e5cff23a9ebbedc41d3e2663c7e..5712cb7fcc2eee6bdedaf4eb860f8aa10e1be6c4 100644 GIT binary patch delta 710 zcmY*WZAepL6h7~E-+Oo8?cV&Db9Y-SLt93KXeLThRMQ_7<|ry+}d2c#<~S)P7{E+ z9_aaPI28t|5~t$pLApAEs$HCt40#Hqa1B;t+)Z4Wekfj~02T{5meP#aNotQQ0Yt@; z4E; zfc4S)4|M2sfIi=_3BbOOzA~bgBSNQG686{8B{wG46^hBF=&4SNsoAy23yNu<%MeeB z-s%YM^g;B77BNSTSZkQZTvOsu^*HLRkVu{xAm*Xut!o56r(*|$($jPwK(t>Pf0T<< zhe6i^7~`5@YYWD+mdd;dEzGLiIm7^z47qa{(KsQ0FDStN3|pnPVf^kOBxjGiiQ<-epfEkK35nzniVS{vaz63o2cuJyLr Q$_S4nXjsJcF4@E49}euoRsaA1 delta 602 zcmXAmT}V@L7{;IfJpXgHvz>#w%}t#vA{$B{Vu=`78Od7t+k@Qrx~ZLEFB zUSIBd4V-)m@G+pd2(V>=mM4G|0>X2Eva+QmT|*=O9gYxq{dJ;_f!{g;*z2IQ6J3yn za&I1R{SbCmZSp~hcLOCxaf*3rH2Bv!u~F7l(MPP#f)_V{Tr0a&FhkT`_OVF<3j5f~ zYMc^l*vj7~pr~BDV7m;?j96k0W)r{Jjj(f4`cmrw3=g?=I1Q*1d~(`Axr6+}?gKQ_ z&p(;T%e9AR)Kbz`zTv%0e6w8EN|}0AuB;6bw=D1f)<*hL4s@>3PIYo1x=uPS2aQ?U zwMU-qOaa9W3Tw0h`LC2f=qkjfL2bxa-c|Jgc~_Lw8y}q_W;8ql)kql+4^TZv#56jq z0$R0cbdJ=#q;AtksP0#_B052q8|vxCDvI`tmK=AbV_6+{ZvvL|mg+I}dG0c85>lrk z3xFGHa;l8}b5Q-f-9$0_L@dWs)@@EksXt#bCuhjCaN2@&KlNO-$Wbycwp&c8$E5S( zPma6X>C?{L-wDW%wDa!?%dgaK9v!B!TJ6qHI#=GB_V1dP@Lu7SJWLlI(q6?GzCiIF uamZLIB3w@_O5d&Gm-B&mTR3bo_AUg@b{xOGD9#kkCr%W%u|&odm;VFJ=A?lD diff --git a/app/HGProductionTool/ProductionTool_zh_CN.ts b/app/HGProductionTool/ProductionTool_zh_CN.ts index 45b7dfd..0b805fd 100644 --- a/app/HGProductionTool/ProductionTool_zh_CN.ts +++ b/app/HGProductionTool/ProductionTool_zh_CN.ts @@ -490,29 +490,39 @@ - + Privious Step 上一步 - + PASS 通过 - + FAIL 不通过 - + START 开始测试 - + + LeftRotate + 左旋转 + + + + RightRotate + 右旋转 + + + STOP - 结束测试 + 关闭 @@ -520,7 +530,7 @@ 加载图片 - + Next Step 下一步 @@ -556,47 +566,57 @@ - + tips 提示 - + + yes + 确定 + + + + no + 取消 + + + ID 序号 - + Test items 测试项 - + status 测试状态 - + not test 未测试 - + not pass 不通过 - + not support 不支持 - + pass 通过 - + no image 无图 @@ -662,7 +682,7 @@ 上传配置文件 - + Account login elsewhere 账户在其他地方登录 @@ -671,94 +691,94 @@ 网络连接断开 - + You have been forced offline by the administrator account 你已被管理员账户强制下线 - + Data base error 数据库错误 - - - - - - - + + + + + + + tips 提示 - + Are you sure to connect the new device 检测到设备连接,是否启动测试? - + yes 确定 - + no 取消 - - + + cannot create more table 不能创建更多项目 - + The device has disconnected 设备已断开连接 - + save 保存 - + xls(*.xls) xls表格(*.xls) - + export succeed 导出成功 - + export failed 导出失败 - + Illegal user 非法的用户 - + Wrong password 密码错误 - + Database error 数据库错误 - + connect error 连接错误 - + Failed 错误 @@ -766,17 +786,17 @@ QObject - + success 成功 - + failed: 失败: - + Not find test item 没有找到该测试项 diff --git a/app/HGProductionTool/dialog_accountmanage.cpp b/app/HGProductionTool/dialog_accountmanage.cpp index b8d7227..94c9104 100644 --- a/app/HGProductionTool/dialog_accountmanage.cpp +++ b/app/HGProductionTool/dialog_accountmanage.cpp @@ -14,6 +14,10 @@ Dialog_accountManage::Dialog_accountManage(HGPdtToolDbUserMgr pdtToolDbuserMgr, setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); + QFont ft; + ft.setPointSize(15); + this->setFont(ft); + HGChar* userNameList[100]; HGUInt count = 0; HGPdtToolDb_GetUserList(pdtToolDbuserMgr, userNameList, 100, &count); diff --git a/app/HGProductionTool/dialog_accountmanage.ui b/app/HGProductionTool/dialog_accountmanage.ui index 31bac7b..cbf9833 100644 --- a/app/HGProductionTool/dialog_accountmanage.ui +++ b/app/HGProductionTool/dialog_accountmanage.ui @@ -6,8 +6,8 @@ 0 0 - 425 - 209 + 485 + 264 diff --git a/app/HGProductionTool/dialog_changepwd.cpp b/app/HGProductionTool/dialog_changepwd.cpp index 0ea9e3c..b96bd14 100644 --- a/app/HGProductionTool/dialog_changepwd.cpp +++ b/app/HGProductionTool/dialog_changepwd.cpp @@ -12,6 +12,10 @@ Dialog_changePwd::Dialog_changePwd(HGPdtToolDbUserMgr pdtToolDbuserMgr, QWidget setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); + QFont ft; + ft.setPointSize(15); + this->setFont(ft); + ui->lineEdit_oldPwd->setEchoMode(QLineEdit::EchoMode::Password); ui->lineEdit_newPwd->setEchoMode(QLineEdit::EchoMode::Password); ui->lineEdit_confirmNewPwd->setEchoMode(QLineEdit::EchoMode::Password); diff --git a/app/HGProductionTool/dialog_changepwd.ui b/app/HGProductionTool/dialog_changepwd.ui index f9b0c52..71c1ddc 100644 --- a/app/HGProductionTool/dialog_changepwd.ui +++ b/app/HGProductionTool/dialog_changepwd.ui @@ -6,8 +6,8 @@ 0 0 - 440 - 213 + 454 + 243 @@ -19,7 +19,7 @@ 310 160 75 - 23 + 31 @@ -32,126 +32,126 @@ 200 160 75 - 23 + 31 OK - + - 110 - 20 - 219 - 22 + 195 + 101 + 150 + 20 - - - - - Qt::RightToLeft - - - old password: - - - - - - - - 133 - 0 - - - - - 133 - 16777215 - - - - - + + + 150 + 0 + + + + + 133 + 16777215 + + - + + + + 70 + 100 + 111 + 20 + + + + Qt::LeftToRight + + + cfm password: + + + + + + 111 + 21 + 78 + 21 + + + + Qt::RightToLeft + + + old password: + + + + + + 195 + 21 + 150 + 20 + + + + + 150 + 0 + + + + + 133 + 16777215 + + + + 110 60 - 219 - 22 + 78 + 21 - - - - - Qt::RightToLeft - - - new password: - - - - - - - - 133 - 0 - - - - - 133 - 16777215 - - - - - + + Qt::LeftToRight + + + new password: + - + - 110 - 100 - 219 - 22 + 195 + 61 + 150 + 20 - - - - - Qt::RightToLeft - - - cfm password: - - - - - - - - 133 - 0 - - - - - 133 - 16777215 - - - - - + + + 150 + 0 + + + + + 133 + 16777215 + + diff --git a/app/HGProductionTool/dialog_excepdesc.cpp b/app/HGProductionTool/dialog_excepdesc.cpp index 76136cb..af41ed5 100644 --- a/app/HGProductionTool/dialog_excepdesc.cpp +++ b/app/HGProductionTool/dialog_excepdesc.cpp @@ -6,6 +6,11 @@ Dialog_ExcepDesc::Dialog_ExcepDesc(QWidget *parent) : ui(new Ui::Dialog_ExcepDesc) { ui->setupUi(this); + + QFont ft; + ft.setPointSize(15); + this->setFont(ft); + ui->label->setText(tr("input excep desc: ")); } diff --git a/app/HGProductionTool/dialog_inputserialnum.cpp b/app/HGProductionTool/dialog_inputserialnum.cpp index 1984243..b158d37 100644 --- a/app/HGProductionTool/dialog_inputserialnum.cpp +++ b/app/HGProductionTool/dialog_inputserialnum.cpp @@ -13,6 +13,10 @@ Dialog_InputSerialNum::Dialog_InputSerialNum(class MainWindow *mainWnd, const QS setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); + QFont ft; + ft.setPointSize(15); + this->setFont(ft); + ui->lineEdit_sn->setValidator(new QRegExpValidator(QRegExp("[a-zA-Z0-9]+$"))); ui->lineEdit_sn->setText(m_serialNum); if (m_devType.isEmpty() || m_serialNum.isEmpty()) diff --git a/app/HGProductionTool/dialog_inputserialnum.ui b/app/HGProductionTool/dialog_inputserialnum.ui index c22e8af..a3cfa21 100644 --- a/app/HGProductionTool/dialog_inputserialnum.ui +++ b/app/HGProductionTool/dialog_inputserialnum.ui @@ -6,7 +6,7 @@ 0 0 - 474 + 511 206 @@ -19,7 +19,7 @@ 210 150 75 - 23 + 31 @@ -32,7 +32,7 @@ 330 150 75 - 23 + 31 @@ -44,7 +44,7 @@ 190 80 - 150 + 191 20 @@ -106,7 +106,7 @@ 190 30 - 150 + 191 20 diff --git a/app/HGProductionTool/dialog_login.cpp b/app/HGProductionTool/dialog_login.cpp index a1550e3..ff73a60 100644 --- a/app/HGProductionTool/dialog_login.cpp +++ b/app/HGProductionTool/dialog_login.cpp @@ -16,6 +16,10 @@ Dialog_logIn::Dialog_logIn(QWidget *parent) : setWindowFlags(Qt::FramelessWindowHint); + QFont ft; + ft.setPointSize(15); + this->setFont(ft); + ui->pbtn_setting->setToolTip(tr("Set host and port")); ui->pbtn_minum->setToolTip(tr("Minimize")); ui->pbtn_close->setToolTip(tr("Close")); diff --git a/app/HGProductionTool/dialog_rootfuntion.cpp b/app/HGProductionTool/dialog_rootfuntion.cpp index c01c7b2..c2a4e5d 100644 --- a/app/HGProductionTool/dialog_rootfuntion.cpp +++ b/app/HGProductionTool/dialog_rootfuntion.cpp @@ -11,6 +11,10 @@ Dialog_rootFuntion::Dialog_rootFuntion(bool resetPassword, QWidget *parent) : setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); setWindowTitle(tr("Create account")); + QFont ft; + ft.setPointSize(15); + this->setFont(ft); + ui->lineEdit_password->setEchoMode(QLineEdit::EchoMode::Password); if (m_resetPassword) diff --git a/app/HGProductionTool/dialog_rootfuntion.ui b/app/HGProductionTool/dialog_rootfuntion.ui index 445a59f..d368879 100644 --- a/app/HGProductionTool/dialog_rootfuntion.ui +++ b/app/HGProductionTool/dialog_rootfuntion.ui @@ -6,8 +6,8 @@ 0 0 - 425 - 117 + 427 + 137 diff --git a/app/HGProductionTool/dialog_uploadcfgfile.cpp b/app/HGProductionTool/dialog_uploadcfgfile.cpp index 8d88a59..95418ed 100644 --- a/app/HGProductionTool/dialog_uploadcfgfile.cpp +++ b/app/HGProductionTool/dialog_uploadcfgfile.cpp @@ -13,6 +13,10 @@ Dialog_uploadCfgFile::Dialog_uploadCfgFile(HGPdtToolDbUserMgr pdtToolDbuserMgr, { ui->setupUi(this); setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); + + QFont ft; + ft.setPointSize(15); + this->setFont(ft); } Dialog_uploadCfgFile::~Dialog_uploadCfgFile() diff --git a/app/HGProductionTool/dialog_uploadcfgfile.ui b/app/HGProductionTool/dialog_uploadcfgfile.ui index 02225d1..d9465b1 100644 --- a/app/HGProductionTool/dialog_uploadcfgfile.ui +++ b/app/HGProductionTool/dialog_uploadcfgfile.ui @@ -6,8 +6,8 @@ 0 0 - 371 - 133 + 479 + 181 diff --git a/app/HGProductionTool/dialog_userinput.cpp b/app/HGProductionTool/dialog_userinput.cpp index 86ae7c7..fbeb7ed 100644 --- a/app/HGProductionTool/dialog_userinput.cpp +++ b/app/HGProductionTool/dialog_userinput.cpp @@ -1,5 +1,6 @@ #include "dialog_userinput.h" #include "ui_dialog_userinput.h" +#include Dialog_UserInput::Dialog_UserInput(ui_helper::value_type type, const QString &title, const QString &desc, QWidget *parent) : QDialog(parent), @@ -24,7 +25,13 @@ Dialog_UserInput::Dialog_UserInput(ui_helper::value_type type, const QString &ti } setWindowTitle(m_title); + + QFont ft; + ft.setPointSize(15); + this->setFont(ft); + ui->label->setText(m_desc); + ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("[0-9]+$"))); } Dialog_UserInput::~Dialog_UserInput() diff --git a/app/HGProductionTool/dialog_userinput.ui b/app/HGProductionTool/dialog_userinput.ui index 48c621d..af70dee 100644 --- a/app/HGProductionTool/dialog_userinput.ui +++ b/app/HGProductionTool/dialog_userinput.ui @@ -6,8 +6,8 @@ 0 0 - 408 - 164 + 426 + 147 @@ -39,25 +39,78 @@ - + - - - YES - - + + + + + + 87 + 0 + + + + YES + + + + + + + + 86 + 0 + + + + NO + + + + - - - NO + + + Qt::Horizontal - + + + 40 + 20 + + + - + + + + + + 171 + 0 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + diff --git a/app/HGProductionTool/form_maininterface.cpp b/app/HGProductionTool/form_maininterface.cpp index 5d5bb96..cf1fdd6 100644 --- a/app/HGProductionTool/form_maininterface.cpp +++ b/app/HGProductionTool/form_maininterface.cpp @@ -73,6 +73,10 @@ Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, SANE_Handle ha { ui->setupUi(this); + QFont ft; + ft.setPointSize(15); + this->setFont(ft); + connect(this, SIGNAL(testResult(QString)), this, SLOT(on_testResult(QString)), Qt::QueuedConnection); connect(this, SIGNAL(testResultImg(void*)), this, SLOT(on_testResultImg(void*)), Qt::QueuedConnection); @@ -84,8 +88,8 @@ Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, SANE_Handle ha ui->label_sn->setText(tr("Device type:") + m_devType + tr(" SerialNum:") + m_serialNum + tr(" connect status:") + str); setMinimumWidth(500); - ui->tableWidget->setMinimumWidth(300); - ui->tableWidget->setMaximumWidth(300); + ui->tableWidget->setMinimumWidth(400); + ui->tableWidget->setMaximumWidth(400); m_textTips = new Form_textTips(); m_view = new HGImgView(); ui->stackedWidget->addWidget(m_textTips); @@ -155,6 +159,8 @@ void Form_mainInterface::on_testResultImg(void *img) HGImage image = (HGImage)img; ui->stackedWidget->setCurrentWidget(m_view); m_view->addImage(image); + ui->pbtn_leftRotate->setVisible(true); + ui->pbtn_rightRotate->setVisible(true); QString fileName = getCacheFileName(); HGResult ret = HGImgFmt_SaveImage(image, 0, 0, getStdString(fileName).c_str()); @@ -174,6 +180,19 @@ void Form_mainInterface::on_testResultImg(void *img) HGBase_DestroyImage(image); } +void Form_mainInterface::on_testDistortion(QString name, void *data) +{ + QString info = QString::fromStdWString((const wchar_t*)data); + QMessageBox msg(QMessageBox::Question, name, info, QMessageBox::Yes | QMessageBox::No, this); + msg.setButtonText(QMessageBox::Yes, tr("yes")); + msg.setButtonText(QMessageBox::No, tr("no")); + msg.exec(); + if (msg.clickedButton() == msg.button(QMessageBox::Yes)) + { + func_test_go(HGPDTTOOLDB_NAME_SINGLE_PAGE_TEST_1, L"null", m_hg); + } +} + void Form_mainInterface::on_pbtn_preStep_clicked() { int row = ui->tableWidget->currentRow(); @@ -424,6 +443,8 @@ void Form_mainInterface::on_tableWidget_currentItemChanged(QTableWidgetItem *cur { (void)previous; ui->pbtn_showImg->setVisible(false); + ui->pbtn_leftRotate->setVisible(false); + ui->pbtn_rightRotate->setVisible(false); int row = current->row(); int count = ui->tableWidget->rowCount(); ui->pbtn_preStep->setEnabled(row != 0); @@ -465,6 +486,8 @@ void Form_mainInterface::on_pbtn_showImg_clicked() m_mainwnd->m_ftpPort, fileName.toStdString().c_str()); if(ret == HGBASE_ERR_OK) { + ui->pbtn_leftRotate->setVisible(true); + ui->pbtn_rightRotate->setVisible(true); ui->stackedWidget->setCurrentWidget(m_view); HGImage img; HGImgFmt_LoadImage(fileName.toStdString().c_str(), 0, 0, 0, 0, &img); @@ -477,3 +500,13 @@ void Form_mainInterface::on_pbtn_showImg_clicked() QMessageBox::information(this, tr("tips"), tr("no image")); } } + +void Form_mainInterface::on_pbtn_leftRotate_clicked() +{ + m_view->rotateLeft(); +} + +void Form_mainInterface::on_pbtn_rightRotate_clicked() +{ + m_view->rotateRight(); +} diff --git a/app/HGProductionTool/form_maininterface.h b/app/HGProductionTool/form_maininterface.h index 59db03c..32880d4 100644 --- a/app/HGProductionTool/form_maininterface.h +++ b/app/HGProductionTool/form_maininterface.h @@ -35,10 +35,12 @@ protected: signals: void testResult(QString text); void testResultImg(void* img); + void testDistortion(QString title, void *data); private slots: void on_testResult(QString text); void on_testResultImg(void* img); + void on_testDistortion(QString title, void *data); private slots: void on_pbtn_preStep_clicked(); @@ -57,6 +59,10 @@ private slots: void on_pbtn_showImg_clicked(); + void on_pbtn_leftRotate_clicked(); + + void on_pbtn_rightRotate_clicked(); + private: void initTableWidgetUi(); HGUInt getTestItem(const QString &title); diff --git a/app/HGProductionTool/form_maininterface.ui b/app/HGProductionTool/form_maininterface.ui index 1dca20d..ece8e75 100644 --- a/app/HGProductionTool/form_maininterface.ui +++ b/app/HGProductionTool/form_maininterface.ui @@ -6,8 +6,8 @@ 0 0 - 691 - 401 + 716 + 407 @@ -36,6 +36,13 @@ + + + + STOP + + + @@ -103,16 +110,23 @@ - + - STOP + SHOWIMG - + - SHOWIMG + LeftRotate + + + + + + + RightRotate diff --git a/app/HGProductionTool/form_texttips.cpp b/app/HGProductionTool/form_texttips.cpp index cfbabd6..34762ee 100644 --- a/app/HGProductionTool/form_texttips.cpp +++ b/app/HGProductionTool/form_texttips.cpp @@ -7,7 +7,7 @@ Form_textTips::Form_textTips(QWidget *parent) { ui->setupUi(this); QFont ft; - ft.setPointSize(35); + ft.setPointSize(20); ui->textBrowser->setFont(ft); } diff --git a/app/HGProductionTool/hgscanner.cpp b/app/HGProductionTool/hgscanner.cpp index 3b3241a..7b7da71 100644 --- a/app/HGProductionTool/hgscanner.cpp +++ b/app/HGProductionTool/hgscanner.cpp @@ -50,6 +50,11 @@ void hgscanner::test_callback(const wchar_t* name, test_event ev, void* data, si QString info = QObject::tr("Not find test item"); emit m_interface->testResult(info); } + else if (ev == TEST_EVENT_DISTORTION) + { + QString title = QString::fromStdWString(name); + emit m_interface->testDistortion(title, data); + } else if (ev == TEST_EVENT_HAVE_IMAGE) { SANE_Image *sane_img = (SANE_Image *)data; diff --git a/app/HGProductionTool/mainwindow.cpp b/app/HGProductionTool/mainwindow.cpp index f02e582..27df5b0 100644 --- a/app/HGProductionTool/mainwindow.cpp +++ b/app/HGProductionTool/mainwindow.cpp @@ -22,6 +22,11 @@ MainWindow::MainWindow(HGPdtToolDbUserMgr pdtToolDbuserMgr, const QString &ftpHo , m_isLogOut(false) { ui->setupUi(this); + + QFont ft; + ft.setPointSize(15); + this->setFont(ft); + setWindowIcon(QIcon(":image/image_rsc/logo/logo.ico")); HGBase_CreateLock(&m_lock); @@ -242,7 +247,7 @@ int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigne emit p->sane_dev_remove(sane_dev->name); } - if (code == SANE_EVENT_IMAGE_OK || code == SANE_EVENT_SCAN_FINISHED) + if (code == SANE_EVENT_IMAGE_OK || code == SANE_EVENT_SCAN_FINISHED || code == SANE_EVENT_ERROR) { HGBase_EnterLock(p->m_lock); Form_mainInterface* interface = p->FindInterface(hdev);