From dc4846e9987174734e1f083c3d9bb68c02722b67 Mon Sep 17 00:00:00 2001 From: yangjiaxuan <171295266@qq.com> Date: Fri, 6 Jan 2023 13:39:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=BE=E7=BD=AE=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8F=B7=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/HGProductionTool/ProductionTool_zh_CN.qm | Bin 11418 -> 11773 bytes app/HGProductionTool/ProductionTool_zh_CN.ts | 187 +++++++++++------- .../dialog_inputserialnum.cpp | 41 +++- app/HGProductionTool/dialog_inputserialnum.h | 8 +- app/HGProductionTool/dialog_inputserialnum.ui | 15 +- app/HGProductionTool/form_burnmode.cpp | 82 ++++---- app/HGProductionTool/form_burnmode.h | 2 +- app/HGProductionTool/form_burnmode.ui | 24 --- app/HGProductionTool/form_maininterface.cpp | 39 ++++ app/HGProductionTool/form_maininterface.h | 2 + app/HGProductionTool/form_maininterface.ui | 14 ++ app/HGProductionTool/mainwindow.cpp | 41 ++-- app/HGProductionTool/mainwindow.h | 1 + 13 files changed, 301 insertions(+), 155 deletions(-) diff --git a/app/HGProductionTool/ProductionTool_zh_CN.qm b/app/HGProductionTool/ProductionTool_zh_CN.qm index 6536b2f556af17008d5fd134be192c86054d4dcb..401c2e4388be889c779ad0548a88085739207564 100644 GIT binary patch delta 1876 zcmZXT2~1OW9LImJeMjGWZC?)x2(&yZhp3ydi8|-C7+mI}LV+P37>9@cp3mR3V=rai8vVq?634kV%FnAx(I}-pX7ol+%(7OWX zZG^_t$R2>O`#?7Y>^~D4p8~x*aDGG>G!p1NedyN@^x0}GSoe%x2p>ia@&GW?Rscj; zf%$j}W?BW@Ld;Zt54gGxfY>hJc4IZBIl%3AW4D?KnZF4+7ol)~P(u^yM-rMg5{7yR z<(2@w==dJ+Y$bsB7HC%=0~itq)5mPWOtT4tFG0$*WB^G4X>*?dXiH%BY7Zuu3E6iT zfJh5ecI08Zt&}Ta6`q$-Ws4pH1Z7c6f{y^it)zZQrvZkJrTTB~#}SRD`k$oZxrZ7k z@D}04t%`a*CNRXQXn%DbUhGqxnVEw23yQwW1^}x~nP=GyptdPj`+o(n6e`c1!dZs3 zD9^hK@%?YgYbj{w`{^<5`2dCrx_rP65d9Bb_s;i#KSGKoq^}XO5pb86&h%yXA?4IY#e zHn9x#pRup^V8zi6HtAa@*7-hLSb7^r(99M#-ND_7V#`!luwx1Ao-Q0|$N<|~+6@ph zmhGL8j`|T^j!F%})?ek`Sa=MDz1);}IKv?axa8~0u!1#QVRtT;JkE6=eH-ofxj!G*;?DG_6bDcqcU(2O2K7;r>cRS@0HIU);`7)6>m%N` z0uv9f`lWnB8&c}#f2_crU=Hy&GBVKd5B#kH?1+>oL~5}DlSN2q zYQ_rsg*mB7Sh-FpEy7*UDTO7D0LKc;FQQ|9x=`PNfub^ny_QF4e@tk&EgaPKVTT5U z&cpHe$*Yot(=v~lm_>cxN?fYN;w)z)URWfipT$5@k(gN;IPVZYe>@(y{;pWxqsCSq z78@@qv15D1j*6R@=qj ze)Wj2qrnTICUxoqd=a!uy&xwLphdmjf)~`C>dhxScyXb+--HgshN~auZo<}G*Nkby z3V4lX&fLXVVT&ebYc!s}&=j1+d!gGj>;Iy$Q+G8_mnCB$r`G<=-v&a%A#L^IAS|Fj zqUzeSFu*lQOijnH;JRczRg0szBH8gXhwwwv+JHl4qx7luLo`$qvYmudqtxoEzMJEuFDJ_E@3ov!T7<#CFTx6GfuQLa)7NUTmfpJh__WP~<{C^mR*(Cq~ delta 1704 zcmZvbdr(wW9LImVdmnr6-6ybsAnXdP`AB6-DNWNE#WEY@<=`tDU6&O_U|hgaYZkN= zLBd*e$U&S5(*z$R=47PitR!kdIcScoTE>V{Ih2-Qp5OQU&i8jt z|NQN9w}km>h`3Io@aGt#wh{4TF!C{8Afm;L+F^{`R7M_o>VLU~(K?+-oJAz9Wi+=l zI#&^;@4@#DqB&7SgA0gWt4GeSM7{uq)Wtq5DU3r$5?A{UkzoX*?IYrLB@$^07(?oa z`%s<#!;o{B2Z^F45Vu>6f5jMbpSV5h{2^nglem4|(A`Je#Y!AldQ2ZhEoTAy5#pz> zCyI6xziA38Z6|RlDz(RxSkp@6tR-ry10)G0uyO*ulC%{SW-;0>Q|k0&BIBQwF@FH`(3}m0C~P||yvq~C{6rFH}iYes2$1~M_#2Dh@+O&s>9Di`%O?rw*yOWpp?t)_qA6k7CoXFRD>WCr^@kc(> z!tt5>nWx91V2Ss2D6lBuCVx$K;ztbsAbB+e<}h-3!tlkgG$c-VW>OInT*9+KoH#y7 z824!|?!Yp^lYa-+mkOT7yWnl1NdF^R)GzGoKr179g_HT6(C0)=S{NK0CXQeF1srV@ zlYc3NlbJrzQ(OWETEub>dKg_THdF*~>C(m1;|g)vTEx!dFF|mEc==H^?#2bZ_G2s` zTBV;{h4uEJ{{H4Si6W;-E4pyvA*Ut(dK4NJkZOYkSl1%$J}DDfilyBF(Db$R5;rD2Q(+j>#jjq zKUJ=8#YT<<`9SPL#D8bB{wyD|bi;`w^4X)q@$N^<=N%H9?NzMZZ^402lv%kASieNc zyoh~#CYO?xuLj;%>VpPYwoYmIK?jT0DuGK0c&CSy)-`=_rcF89h+c}{Drb)&F>bta z{pe)$_FV&AEl11x3_>Fcj;}UIogd%;C5DmvkslduNV|`CXq{nmEY>LjLyrylgH{+G zEZ#~!icT~p1yHeGFwUF55+~YdT(kp;`f6i#8xkUS8aMZHaOSr0uhL`)k2kp=3vFVw zHkm3{hM~~c%}QD(p79NHMDEnfApMB=y`MUJh|@wi24r>j`Z)0 oNpx6L1y#3Z^}p&8GSuDGh0Pr?FKYZ2huD1H-mYs7Pw0{U204?y*#H0l diff --git a/app/HGProductionTool/ProductionTool_zh_CN.ts b/app/HGProductionTool/ProductionTool_zh_CN.ts index 92afcff..a0e903b 100644 --- a/app/HGProductionTool/ProductionTool_zh_CN.ts +++ b/app/HGProductionTool/ProductionTool_zh_CN.ts @@ -74,6 +74,11 @@ serialNum: 序列号: + + + Set Sn + 设置序列号 + OK @@ -85,27 +90,45 @@ 取消 - - - + + + + + + tips 提示 - + + device is lost + 设备已丢失 + + + Serial num is empty 序列号为空 - + sn is illegal 序列号不合法 - + The device is testing 该设备正在进行测试 + + + set sn failed + 设置序列号失败 + + + + set sn succeed + 设置序列号成功 + Dialog_SetBurnSn @@ -582,12 +605,11 @@ 进入烧录模式 - Set sn - 设置勾选项序列号 + 设置勾选项序列号 - + Close 关闭设备 @@ -613,8 +635,6 @@ - - tips 提示 @@ -626,14 +646,12 @@ 请至少勾选一台设备 - Please check single devices to set sn - 请只勾选一台设备再进行设置序列号 + 请只勾选一台设备再进行设置序列号 - Please check a devices to set sn at least - 请至少勾选一台设备再设置序列号 + 请至少勾选一台设备再设置序列号 @@ -654,57 +672,67 @@ - + + SpeedMode: + 速度模式: + + + + SleepTime: + 休眠时间: + + + Privious Step 上一步 - + PASS 通过 - + FAIL 不通过 - + START 开始测试 - + PrePage 上一张 - + NextPage 下一张 - + LeftRotate 左旋转 - + RightRotate 右旋转 - + STOP 关闭 - + SHOWIMG 加载图片 - + Next Step 下一步 @@ -730,28 +758,38 @@ - + connect status: 设备连接状态: - + + speed mode: + 速度模式: + + + + sleep time: + 休眠时间: + + + load last image which uploaded last time 加载上一次上传的图片 - + Device has disconnected 设备已断开 - - + + tips 提示 - + destortion value: 畸变修正值: @@ -764,47 +802,52 @@ 取消 - + ID 序号 - + Test items 测试项 - + status 测试状态 - + not test 未测试 - + not pass 不通过 - + not support 不支持 - + pass 通过 - + image pixel: 图像像素: - + + minute + 分钟 + + + no image 无图 @@ -875,7 +918,7 @@ 刷新设备列表 - + Account login elsewhere 账户在其他地方登录 @@ -884,56 +927,56 @@ 网络连接断开 - + You have been forced offline by the administrator account 你已被管理员账户强制下线 - + Data base error 数据库错误 - - - - - - - - - + + + + + + + + - + + tips 提示 - - + + Is testing, do not close! 测试中,请勿关闭! - + Are you sure to connect the new device 检测到设备连接,是否启动测试? - + yes 确定 - + no 取消 - - - + + + cannot create more table 不能创建更多项目 @@ -942,52 +985,52 @@ 设备已断开连接 - + Open device failed 打开设备失败 - + save 保存 - + xls(*.xls) xls表格(*.xls) - + export succeed 导出成功 - + export failed 导出失败 - + Illegal user 非法的用户 - + Wrong password 密码错误 - + Database error 数据库错误 - + connect error 连接错误 - + Failed 错误 diff --git a/app/HGProductionTool/dialog_inputserialnum.cpp b/app/HGProductionTool/dialog_inputserialnum.cpp index a84d04b..64f6c1d 100644 --- a/app/HGProductionTool/dialog_inputserialnum.cpp +++ b/app/HGProductionTool/dialog_inputserialnum.cpp @@ -2,12 +2,15 @@ #include "ui_dialog_inputserialnum.h" #include "mainwindow.h" -Dialog_InputSerialNum::Dialog_InputSerialNum(class MainWindow *mainWnd, SANE_Handle handle, const QString &serialNum, const QString &devType) : +Dialog_InputSerialNum::Dialog_InputSerialNum(class MainWindow *mainWnd, const QString &devName, SANE_Handle handle, const QString &serialNum, const QString &devType) : QDialog(mainWnd), ui(new Ui::Dialog_InputSerialNum), m_mainWnd(mainWnd), + m_handle(handle), + m_valid(true), m_serialNum(serialNum), m_devType(devType) + , m_devName(devName) { ui->setupUi(this); @@ -21,15 +24,16 @@ Dialog_InputSerialNum::Dialog_InputSerialNum(class MainWindow *mainWnd, SANE_Han if (handle != nullptr) { - ui->lineEdit_sn->setEnabled(false); ui->cbox_devType->setEnabled(false); ui->cbox_devType->setCurrentText(devType); ui->lineEdit_sn->setText(serialNum); + ui->lineEdit_sn->selectAll(); } else { ui->cbox_devType->setCurrentIndex(0); ui->lineEdit_sn->setText(""); + ui->pbtn_setSn->setEnabled(false); } } @@ -48,8 +52,26 @@ QString Dialog_InputSerialNum::GetDevType() return ui->cbox_devType->currentText(); } +void Dialog_InputSerialNum::Invalid(const QString &devName) +{ + if (devName == m_devName) + { + sane_close(m_handle); + m_handle = nullptr; + m_valid = false; + reject(); + } +} + void Dialog_InputSerialNum::on_pbtn_ok_clicked() { + if (!m_valid) + { + QMessageBox::information(this, tr("tips"), tr("device is lost")); + reject(); + return; + } + if (ui->lineEdit_sn->text().isEmpty()) { QMessageBox::information(this, tr("tips"), tr("Serial num is empty")); @@ -78,3 +100,18 @@ void Dialog_InputSerialNum::on_pbtn_cancel_clicked() { reject(); } + +void Dialog_InputSerialNum::on_pbtn_setSn_clicked() +{ + QString sn = ui->lineEdit_sn->text(); + std::string serialNum = sn.toStdString(); + if(SANE_STATUS_GOOD != sane_io_control(m_handle, IO_CTRL_CODE_SET_SERIAL, &serialNum[0], nullptr)) + { + QMessageBox::information(this, tr("tips"), tr("set sn failed")); + } + else + { + ui->lineEdit_sn->setText(m_mainWnd->getDevSn(m_handle)); + QMessageBox::information(this, tr("tips"), tr("set sn succeed")); + } +} diff --git a/app/HGProductionTool/dialog_inputserialnum.h b/app/HGProductionTool/dialog_inputserialnum.h index 23e9ff7..b1ce6d8 100644 --- a/app/HGProductionTool/dialog_inputserialnum.h +++ b/app/HGProductionTool/dialog_inputserialnum.h @@ -13,23 +13,29 @@ class Dialog_InputSerialNum : public QDialog Q_OBJECT public: - explicit Dialog_InputSerialNum(class MainWindow *mainWnd, SANE_Handle handle, const QString &serialNum, const QString &devType); + explicit Dialog_InputSerialNum(class MainWindow *mainWnd, const QString &devName, SANE_Handle handle, const QString &serialNum, const QString &devType); ~Dialog_InputSerialNum(); QString GetSn(); QString GetDevType(); + void Invalid(const QString &devName); private slots: void on_pbtn_ok_clicked(); void on_pbtn_cancel_clicked(); + void on_pbtn_setSn_clicked(); + private: Ui::Dialog_InputSerialNum *ui; class MainWindow *m_mainWnd; + SANE_Handle m_handle; + bool m_valid; QString m_serialNum; QString m_devType; + QString m_devName; }; #endif // DIALOG_INPUTSERIALNUM_H diff --git a/app/HGProductionTool/dialog_inputserialnum.ui b/app/HGProductionTool/dialog_inputserialnum.ui index 42e4332..1a85ecc 100644 --- a/app/HGProductionTool/dialog_inputserialnum.ui +++ b/app/HGProductionTool/dialog_inputserialnum.ui @@ -6,7 +6,7 @@ 0 0 - 511 + 536 206 @@ -117,6 +117,19 @@ + + + + 400 + 30 + 75 + 23 + + + + Set Sn + + diff --git a/app/HGProductionTool/form_burnmode.cpp b/app/HGProductionTool/form_burnmode.cpp index 7967ddd..3614e38 100644 --- a/app/HGProductionTool/form_burnmode.cpp +++ b/app/HGProductionTool/form_burnmode.cpp @@ -167,49 +167,49 @@ void Form_BurnMode::on_pbtn_burn_clicked() } } -void Form_BurnMode::on_pbtn_setSn_clicked() -{ - int select = 0; - for(int i = 0; i < ui->tableWidget->rowCount(); i++) - { - QTableWidgetItem *item = ui->tableWidget->item(i, 1); - if (item != nullptr && Qt::Checked == item->checkState()) - { - select++; - } - } +//void Form_BurnMode::on_pbtn_setSn_clicked() +//{ +// int select = 0; +// for(int i = 0; i < ui->tableWidget->rowCount(); i++) +// { +// QTableWidgetItem *item = ui->tableWidget->item(i, 1); +// if (item != nullptr && Qt::Checked == item->checkState()) +// { +// select++; +// } +// } - if (select == 0) - { - QMessageBox::information(this, tr("tips"), tr("Please check a devices to set sn at least")); - return; - } - else if (select > 1) - { - QMessageBox::information(this, tr("tips"), tr("Please check single devices to set sn")); - return; - } - else if (select == 1) - { - for(int i = 0; i < ui->tableWidget->rowCount(); i++) - { - QTableWidgetItem *item = ui->tableWidget->item(i, 1); - QTableWidgetItem *item2 = ui->tableWidget->item(i, 3); - if (item != nullptr && Qt::Checked == item->checkState()) - { - Dialog_SetBurnSn dlg(item2->text(), this); - if (dlg.exec()) - { - DeviceManager *devManager = (DeviceManager*)item->data(Qt::UserRole).value(); - devManager->setSn(dlg.getSn()); +// if (select == 0) +// { +// QMessageBox::information(this, tr("tips"), tr("Please check a devices to set sn at least")); +// return; +// } +// else if (select > 1) +// { +// QMessageBox::information(this, tr("tips"), tr("Please check single devices to set sn")); +// return; +// } +// else if (select == 1) +// { +// for(int i = 0; i < ui->tableWidget->rowCount(); i++) +// { +// QTableWidgetItem *item = ui->tableWidget->item(i, 1); +// QTableWidgetItem *item2 = ui->tableWidget->item(i, 3); +// if (item != nullptr && Qt::Checked == item->checkState()) +// { +// Dialog_SetBurnSn dlg(item2->text(), this); +// if (dlg.exec()) +// { +// DeviceManager *devManager = (DeviceManager*)item->data(Qt::UserRole).value(); +// devManager->setSn(dlg.getSn()); - item2->setText(devManager->getUpdatedSn()); - break; - } - } - } - } -} +// item2->setText(devManager->getUpdatedSn()); +// break; +// } +// } +// } +// } +//} DeviceManager::DeviceManager(class MainWindow *mainwnd, HGPdtToolDbUserMgr pdtToolDbuserMgr, class Form_BurnMode *burnMode, SANE_Handle handle, const QString & devName, const QString & sn, const QString &devType) diff --git a/app/HGProductionTool/form_burnmode.h b/app/HGProductionTool/form_burnmode.h index c458ba9..6a6fb57 100644 --- a/app/HGProductionTool/form_burnmode.h +++ b/app/HGProductionTool/form_burnmode.h @@ -70,7 +70,7 @@ private slots: void on_pbtn_burn_clicked(); - void on_pbtn_setSn_clicked(); +// void on_pbtn_setSn_clicked(); void on_tableWidget_itemDoubleClicked(QTableWidgetItem *item); diff --git a/app/HGProductionTool/form_burnmode.ui b/app/HGProductionTool/form_burnmode.ui index 608b634..13045db 100644 --- a/app/HGProductionTool/form_burnmode.ui +++ b/app/HGProductionTool/form_burnmode.ui @@ -39,19 +39,6 @@ - - - - - 91 - 31 - - - - Set sn - - - @@ -86,17 +73,6 @@ - - - - - - - - - - - diff --git a/app/HGProductionTool/form_maininterface.cpp b/app/HGProductionTool/form_maininterface.cpp index b335806..8207e31 100644 --- a/app/HGProductionTool/form_maininterface.cpp +++ b/app/HGProductionTool/form_maininterface.cpp @@ -56,6 +56,16 @@ Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, Dialog_logIn:: ui->label_sn->setText(tr("Device type:") + m_devType + tr(" SerialNum:") + m_serialNum); ui->label_devStatus->setText(tr(" connect status:") + str); + SANE_Int speedMode = 0; + unsigned int len = sizeof(SANE_Int); + sane_io_control(m_handle, IO_CTRL_CODE_GET_SPEED_MODE, &speedMode, &len); + ui->label_speedMode->setText(tr(" speed mode: ") + getSpeedMode(speedMode)); + + int sleepTime = SANE_POWER_FIRST; + unsigned int len2 = sizeof(int); + sane_io_control(m_handle, IO_CTRL_CODE_GET_POWER_LEVEL, &sleepTime, &len2); + ui->label_sleepTime->setText(tr(" sleep time: ") + getSleepTime(sleepTime)); + ui->label_imgInfo->setVisible(false); ui->label_destortionInfo->setVisible(false); @@ -450,6 +460,35 @@ void Form_mainInterface::updateImgPixelInfo() ui->label_imgInfo->setText(tr("image pixel: ") + QString::number(imgWidth) + " * " + QString::number(imgHeight) + " "); } +QString Form_mainInterface::getSpeedMode(SANE_Int speedMode) +{ + const wchar_t G100[6] = { 70,80,90,110 }; + const wchar_t G200[6] = { 100,110,120,130 }; + const wchar_t G300[6] = { 40,50,60,70 }; + const wchar_t G400[6] = { 40,50,60,70,80 }; + + int speed = 0; + + if (m_devType == "G100") + speed = G100[(int)speedMode]; + else if (m_devType == "G200") + speed = G200[(int)speedMode]; + else if (m_devType == "G300") + speed = G300[(int)speedMode]; + else if (m_devType == "G400") + speed = G400[(int)speedMode]; + + return QString::number(speed) + "PPM"; +} + +QString Form_mainInterface::getSleepTime(int sleepTime) +{ + if (sleepTime > 99999 || sleepTime == -1) + return QString::number(0); + + return QString::number(sleepTime / 60) + tr(" minute"); +} + void Form_mainInterface::on_tableWidget_currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous) { (void)previous; diff --git a/app/HGProductionTool/form_maininterface.h b/app/HGProductionTool/form_maininterface.h index 22fc8e5..4a34812 100644 --- a/app/HGProductionTool/form_maininterface.h +++ b/app/HGProductionTool/form_maininterface.h @@ -81,6 +81,8 @@ private: QString getCacheFileName(); void updateUiEnabled(bool enable); void updateImgPixelInfo(); + QString getSpeedMode(SANE_Int speedMode); + QString getSleepTime(int sleepTime); private: Ui::Form_mainInterface *ui; diff --git a/app/HGProductionTool/form_maininterface.ui b/app/HGProductionTool/form_maininterface.ui index b743c46..99a030a 100644 --- a/app/HGProductionTool/form_maininterface.ui +++ b/app/HGProductionTool/form_maininterface.ui @@ -30,6 +30,20 @@ + + + + SpeedMode: + + + + + + + SleepTime: + + + diff --git a/app/HGProductionTool/mainwindow.cpp b/app/HGProductionTool/mainwindow.cpp index 05c41a7..f57ff0f 100644 --- a/app/HGProductionTool/mainwindow.cpp +++ b/app/HGProductionTool/mainwindow.cpp @@ -23,6 +23,7 @@ MainWindow::MainWindow(HGPdtToolDbUserMgr pdtToolDbuserMgr, Dialog_logIn::LogInT , m_top_splitter(nullptr) , m_bot_splitter(nullptr) , m_isLogOut(false) + , m_inputSnDlg(nullptr) { ui->setupUi(this); @@ -417,14 +418,14 @@ void MainWindow::on_sane_dev_arrive(QString devName) sane_open(devName.toStdString().c_str(), &devHandle); if (nullptr != devHandle) { - Dialog_InputSerialNum dlg(this, devHandle, getDevSn(devHandle), getDevType(devHandle)); - if (dlg.exec()) + m_inputSnDlg = new Dialog_InputSerialNum(this, devName, devHandle, getDevSn(devHandle), getDevType(devHandle)); + if (m_inputSnDlg->exec()) { HGPdtToolDbDevice pdtToolDbDevice = nullptr; - HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, dlg.GetSn().toStdString().c_str(), &pdtToolDbDevice); + HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, m_inputSnDlg->GetSn().toStdString().c_str(), &pdtToolDbDevice); Form_mainInterface *mainInterface = new Form_mainInterface(this, m_loginType, devHandle, m_pdtToolDbuserMgr, pdtToolDbDevice, - dlg.GetSn(), dlg.GetDevType(), devName, getDevFwNum(devHandle)); + m_inputSnDlg->GetSn(), m_inputSnDlg->GetDevType(), devName, getDevFwNum(devHandle)); if (!AddInterface(mainInterface)) { QMessageBox::information(this, tr("tips"), tr("cannot create more table")); @@ -435,6 +436,9 @@ void MainWindow::on_sane_dev_arrive(QString devName) { sane_close(devHandle); } + + delete m_inputSnDlg; + m_inputSnDlg = nullptr; } else { @@ -452,6 +456,11 @@ void MainWindow::on_sane_dev_remove(QString devName) } else { + if (nullptr != m_inputSnDlg) + { + m_inputSnDlg->Invalid(devName); + } + Form_mainInterface * mainInterface = FindInterfaceByDevName(devName); if (mainInterface != nullptr) { @@ -498,21 +507,24 @@ void MainWindow::on_update_userStatus() void MainWindow::on_act_newDevice_triggered() { - Dialog_InputSerialNum dlg(this, nullptr, "", ""); - if (dlg.exec()) + m_inputSnDlg = new Dialog_InputSerialNum(this, "", nullptr, "", ""); + if (m_inputSnDlg->exec()) { HGPdtToolDbDevice pdtToolDbDevice = nullptr; - HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, dlg.GetSn().toStdString().c_str(), &pdtToolDbDevice); + HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, m_inputSnDlg->GetSn().toStdString().c_str(), &pdtToolDbDevice); - Form_mainInterface *mainInterface = new Form_mainInterface(this, m_loginType, nullptr, m_pdtToolDbuserMgr, pdtToolDbDevice, dlg.GetSn(), dlg.GetDevType(), nullptr, nullptr); + Form_mainInterface *mainInterface = new Form_mainInterface(this, m_loginType, nullptr, m_pdtToolDbuserMgr, pdtToolDbDevice, + m_inputSnDlg->GetSn(), m_inputSnDlg->GetDevType(), nullptr, nullptr); if (!AddInterface(mainInterface)) { QMessageBox::information(this, tr("tips"), tr("cannot create more table")); delete mainInterface; } } -} + delete m_inputSnDlg; + m_inputSnDlg = nullptr; +} void MainWindow::on_act_manage_triggered() { Dialog_accountManage dlg(m_pdtToolDbuserMgr, this); @@ -607,14 +619,14 @@ void MainWindow::on_act_refreshDevice_triggered() sane_open(name[i].c_str(), &devHandle); if (nullptr != devHandle) { - Dialog_InputSerialNum dlg(this, devHandle, getDevSn(devHandle), getDevType(devHandle)); - if (dlg.exec()) + m_inputSnDlg = new Dialog_InputSerialNum(this, name[i].c_str(), devHandle, getDevSn(devHandle), getDevType(devHandle)); + if (m_inputSnDlg->exec()) { HGPdtToolDbDevice pdtToolDbDevice = nullptr; - HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, dlg.GetSn().toStdString().c_str(), &pdtToolDbDevice); + HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, m_inputSnDlg->GetSn().toStdString().c_str(), &pdtToolDbDevice); Form_mainInterface *mainInterface = new Form_mainInterface(this, m_loginType, devHandle, m_pdtToolDbuserMgr, pdtToolDbDevice, - dlg.GetSn(), dlg.GetDevType(), name[i].c_str(), getDevFwNum(devHandle)); + m_inputSnDlg->GetSn(), m_inputSnDlg->GetDevType(), name[i].c_str(), getDevFwNum(devHandle)); if (!AddInterface(mainInterface)) { QMessageBox::information(this, tr("tips"), tr("cannot create more table")); @@ -625,6 +637,9 @@ void MainWindow::on_act_refreshDevice_triggered() { sane_close(devHandle); } + + delete m_inputSnDlg; + m_inputSnDlg = nullptr; } } } diff --git a/app/HGProductionTool/mainwindow.h b/app/HGProductionTool/mainwindow.h index 0da4b33..fb673cf 100644 --- a/app/HGProductionTool/mainwindow.h +++ b/app/HGProductionTool/mainwindow.h @@ -84,6 +84,7 @@ private: HGLock m_lock; int m_testingRef; Dialog_logIn::LogInType m_loginType; + class Dialog_InputSerialNum *m_inputSnDlg; Form_BurnMode *m_formBurnMode;