diff --git a/app/HGProductionTool/ProductionTool_zh_CN.qm b/app/HGProductionTool/ProductionTool_zh_CN.qm
index 69bc9ae..665de74 100644
Binary files a/app/HGProductionTool/ProductionTool_zh_CN.qm and b/app/HGProductionTool/ProductionTool_zh_CN.qm differ
diff --git a/app/HGProductionTool/ProductionTool_zh_CN.ts b/app/HGProductionTool/ProductionTool_zh_CN.ts
index 2a69151..e4f69be 100644
--- a/app/HGProductionTool/ProductionTool_zh_CN.ts
+++ b/app/HGProductionTool/ProductionTool_zh_CN.ts
@@ -124,22 +124,22 @@
否
-
+
确定
-
+
取消
-
+
提示
-
+
请输入有效内容
@@ -545,88 +545,88 @@
下一步
-
+
设备已连接
-
+
设备未连接
-
+
设备型号:
-
+
序列号:
-
+
设备连接状态:
-
+
加载上一次上传的图片
-
-
+
+
提示
-
+
确定
-
+
取消
-
+
序号
-
+
测试项
-
+
测试状态
-
+
未测试
-
+
不通过
-
+
不支持
-
+
通过
-
+
无图
@@ -692,7 +692,7 @@
上传配置文件
-
+
账户在其他地方登录
@@ -701,94 +701,104 @@
网络连接断开
-
+
你已被管理员账户强制下线
-
+
数据库错误
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
提示
-
+
+
+
+
+ 测试中,请勿关闭!
+
+
+
检测到设备连接,是否启动测试?
-
+
确定
-
+
取消
-
-
+
+
不能创建更多项目
-
+
设备已断开连接
-
+
保存
-
+
xls表格(*.xls)
-
+
导出成功
-
+
导出失败
-
+
非法的用户
-
+
密码错误
-
+
数据库错误
-
+
连接错误
-
+
错误
@@ -796,18 +806,19 @@
QObject
-
+
success
成功:
-
+
+
失败:
-
+
没有找到该测试项
diff --git a/app/HGProductionTool/dialog_login.cpp b/app/HGProductionTool/dialog_login.cpp
index ff73a60..486e366 100644
--- a/app/HGProductionTool/dialog_login.cpp
+++ b/app/HGProductionTool/dialog_login.cpp
@@ -23,17 +23,21 @@ Dialog_logIn::Dialog_logIn(QWidget *parent) :
ui->pbtn_setting->setToolTip(tr("Set host and port"));
ui->pbtn_minum->setToolTip(tr("Minimize"));
ui->pbtn_close->setToolTip(tr("Close"));
-
ui->label_title->setText(tr("LogIn"));
+ ui->lineEdit_password->setEchoMode(QLineEdit::EchoMode::Password);
QString account("root");
+ QString dbHost("192.168.1.70");
+ QString dbPort("3306");
+ QString ftpHost("192.168.1.70");
+ QString ftpPort("21");
+
ui->lineEdit_account->setText(getCfgValue("login", "account", account));
-// ui->lineEdit_password->setText("123456");
- ui->lineEdit_password->setEchoMode(QLineEdit::EchoMode::Password);
- ui->lineEdit_dbHost->setText("192.168.1.70");
- ui->lineEdit_dbPort->setText("3306");
- ui->lineEdit_ftpHost->setText("192.168.1.70");
- ui->lineEdit_ftpPort->setText("21");
+
+ ui->lineEdit_dbHost->setText(getCfgValue("login", "dbHost", dbHost));
+ ui->lineEdit_dbPort->setText(getCfgValue("login", "dbPort", dbPort));
+ ui->lineEdit_ftpHost->setText(getCfgValue("login", "ftpHost", ftpHost));
+ ui->lineEdit_ftpPort->setText(getCfgValue("login", "ftpPort", ftpPort));
ui->label_dbHost->setVisible(false);
ui->label_dbPort->setVisible(false);
@@ -96,12 +100,19 @@ void Dialog_logIn::on_pbtn_login_clicked()
{
QString account = ui->lineEdit_account->text();
QString password = ui->lineEdit_password->text();
- QString host = ui->lineEdit_dbHost->text();
- QString port = ui->lineEdit_dbPort->text();
+ QString dbHost = ui->lineEdit_dbHost->text();
+ QString dbPort = ui->lineEdit_dbPort->text();
+ QString ftpHost = ui->lineEdit_ftpHost->text();
+ QString ftpPort = ui->lineEdit_ftpPort->text();
+
saveCfgValue("login", "account", account);
+ saveCfgValue("login", "dbHost", dbHost);
+ saveCfgValue("login", "dbPort", dbPort);
+ saveCfgValue("login", "ftpHost", ftpHost);
+ saveCfgValue("login", "ftpPort", ftpPort);
HGPdtToolDbUserMgr pdtToolDbuserMgr = nullptr;
- HGResult ret = HGPdtToolDb_CreateUserMgr(host.toStdString().c_str(), port.toInt(), account.toStdString().c_str(), password.toStdString().c_str(),
+ HGResult ret = HGPdtToolDb_CreateUserMgr(dbHost.toStdString().c_str(), dbPort.toInt(), account.toStdString().c_str(), password.toStdString().c_str(),
&pdtToolDbuserMgr);
if (NULL != pdtToolDbuserMgr)
{
diff --git a/app/HGProductionTool/form_maininterface.cpp b/app/HGProductionTool/form_maininterface.cpp
index a4b4683..dab538f 100644
--- a/app/HGProductionTool/form_maininterface.cpp
+++ b/app/HGProductionTool/form_maininterface.cpp
@@ -70,6 +70,7 @@ Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, SANE_Handle ha
, m_devType(devType)
, m_devName(devName)
, m_devFwNum(devFwNum)
+ , m_isTesting(false)
{
ui->setupUi(this);
@@ -79,6 +80,7 @@ Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, SANE_Handle ha
connect(this, SIGNAL(testResult(QString)), this, SLOT(on_testResult(QString)), Qt::QueuedConnection);
connect(this, SIGNAL(testResultImg(void*)), this, SLOT(on_testResultImg(void*)), Qt::QueuedConnection);
+ connect(this, SIGNAL(testFinish()), this, SLOT(on_testFinish()), Qt::QueuedConnection);
QString str;
if (m_handle)
@@ -121,6 +123,11 @@ Form_mainInterface::~Form_mainInterface()
delete ui;
}
+bool Form_mainInterface::isTesting()
+{
+ return m_isTesting;
+}
+
QString Form_mainInterface::getSn()
{
return m_serialNum;
@@ -178,6 +185,12 @@ void Form_mainInterface::on_testDistortion(QString name, void *data)
}
}
+void Form_mainInterface::on_testFinish()
+{
+ updateUiEnabled(true);
+ m_isTesting = false;
+}
+
void Form_mainInterface::on_pbtn_preStep_clicked()
{
int row = ui->tableWidget->currentRow();
@@ -445,6 +458,20 @@ QString Form_mainInterface::getCacheFileName()
return fileName;
}
+void Form_mainInterface::updateUiEnabled(bool enable)
+{
+ ui->tableWidget->setEnabled(enable);
+ ui->pbtn_preStep->setEnabled(enable);
+ ui->pbtn_nextStep->setEnabled(enable);
+ ui->pbtn_pass->setEnabled(enable);
+ ui->pbtn_fail->setEnabled(enable);
+ ui->pbtn_start->setEnabled(enable);
+ ui->pbtn_showImg->setEnabled(enable);
+ ui->pbtn_leftRotate->setEnabled(enable);
+ ui->pbtn_rightRotate->setEnabled(enable);
+ ui->pbtn_stop->setEnabled(enable);
+}
+
void Form_mainInterface::on_tableWidget_currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous)
{
(void)previous;
@@ -480,6 +507,11 @@ void Form_mainInterface::on_pbtn_start_clicked()
QString title = item->text();
QString name = m_map_title_name.value(title).name;
int ret = func_test_go(name.toStdWString().c_str(), L"null", m_hg);
+ if (ret == 0)
+ {
+ updateUiEnabled(false);
+ m_isTesting = true;
+ }
}
void Form_mainInterface::on_pbtn_showImg_clicked()
diff --git a/app/HGProductionTool/form_maininterface.h b/app/HGProductionTool/form_maininterface.h
index 32880d4..47610cb 100644
--- a/app/HGProductionTool/form_maininterface.h
+++ b/app/HGProductionTool/form_maininterface.h
@@ -24,6 +24,7 @@ public:
const QString &serialNum, const QString &devType, const QString &devName, const QString &devFwNum);
~Form_mainInterface();
+ bool isTesting();
QString getSn();
QString getDevName();
SANE_Handle getDevHandle();
@@ -36,11 +37,13 @@ signals:
void testResult(QString text);
void testResultImg(void* img);
void testDistortion(QString title, void *data);
+ void testFinish();
private slots:
void on_testResult(QString text);
void on_testResultImg(void* img);
void on_testDistortion(QString title, void *data);
+ void on_testFinish();
private slots:
void on_pbtn_preStep_clicked();
@@ -71,6 +74,7 @@ private:
QString getItemStatusStr(HGUInt status);
QString getCachePath();
QString getCacheFileName();
+ void updateUiEnabled(bool enable);
private:
Ui::Form_mainInterface *ui;
@@ -88,6 +92,7 @@ private:
QString m_devType;
QString m_devName;
QString m_devFwNum;
+ bool m_isTesting;
QMap m_map_title_name;
};
diff --git a/app/HGProductionTool/hgscanner.cpp b/app/HGProductionTool/hgscanner.cpp
index cb49541..25b324f 100644
--- a/app/HGProductionTool/hgscanner.cpp
+++ b/app/HGProductionTool/hgscanner.cpp
@@ -34,22 +34,37 @@ void hgscanner::test_callback(const wchar_t* name, test_event ev, void* data, si
if (ev == TEST_EVENT_TIPS)
{
- }
- else if (ev == TEST_EVENT_RESULT)
- {
- QString ret;
- QString info = QString::fromStdWString((const wchar_t*)data);
- if (flag)
- ret = QObject::tr("success: ") + info;
- else
- ret = QObject::tr("failed: ") + info;
-
- emit m_interface->testResult(ret);
}
else if (ev == TEST_EVENT_NOT_FIND_TEST)
{
QString info = QObject::tr("Not find test item");
emit m_interface->testResult(info);
+ emit m_interface->testFinish();
+ }
+ else if (ev == TEST_EVENT_IO_FAIL)
+ {
+ QString info = QString::fromStdWString((const wchar_t*)data);
+ info = QObject::tr("failed: ") + info;
+
+ emit m_interface->testResult(info);
+ emit m_interface->testFinish();
+ }
+ else if (ev == TEST_EVENT_MANUAL_CONFIRMATION)
+ {
+ QString info = QString::fromStdWString((const wchar_t*)data);
+ emit m_interface->testResult(info);
+ emit m_interface->testFinish();
+ }
+ else if (ev == TEST_EVENT_RESULT)
+ {
+ QString info = QString::fromStdWString((const wchar_t*)data);
+ if (flag)
+ info = QObject::tr("success: ") + info;
+ else
+ info = QObject::tr("failed: ") + info;
+
+ emit m_interface->testResult(info);
+ emit m_interface->testFinish();
}
else if (ev == TEST_EVENT_DISTORTION)
{
diff --git a/app/HGProductionTool/mainwindow.cpp b/app/HGProductionTool/mainwindow.cpp
index 27df5b0..307b7ff 100644
--- a/app/HGProductionTool/mainwindow.cpp
+++ b/app/HGProductionTool/mainwindow.cpp
@@ -232,6 +232,42 @@ bool MainWindow::RemoveInterface(Form_mainInterface *interface)
return true;
}
+bool MainWindow::isTesting()
+{
+ bool isTesting = false;
+ for (int i = 0; i < m_top_splitter->count(); ++i)
+ {
+ Form_mainInterface *interface = (Form_mainInterface *)m_top_splitter->widget(i);
+ if (interface->isTesting())
+ {
+ isTesting = true;
+ break;
+ }
+ }
+ if (!isTesting)
+ {
+ for (int i = 0; i < m_bot_splitter->count(); ++i)
+ {
+ Form_mainInterface *interface = (Form_mainInterface *)m_bot_splitter->widget(i);
+ if (interface->isTesting())
+ {
+ isTesting = true;
+ break;
+ }
+ }
+ }
+ return isTesting;
+}
+
+void MainWindow::closeEvent(QCloseEvent *event)
+{
+ if (isTesting())
+ {
+ QMessageBox::information(this, tr("tips"), tr("Is testing, do not close!"));
+ event->ignore();
+ }
+}
+
int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigned int *len, void *param)
{
MainWindow* p = (MainWindow*)param;
@@ -387,9 +423,12 @@ void MainWindow::on_update_userStatus()
if (!tips.isEmpty())
{
- QMessageBox::information(this, (tr("tips")), tips);
- m_isLogOut = true;
- close();
+ if (!isTesting())
+ {
+ QMessageBox::information(this, (tr("tips")), tips);
+ m_isLogOut = true;
+ close();
+ }
}
}
@@ -440,6 +479,11 @@ void MainWindow::on_act_export_triggered()
void MainWindow::on_act_logOut_triggered()
{
+ if (isTesting())
+ {
+ QMessageBox::information(this, tr("tips"), tr("Is testing, do not close!"));
+ return;
+ }
m_isLogOut = true;
close();
}
@@ -447,6 +491,12 @@ void MainWindow::on_act_logOut_triggered()
void MainWindow::on_act_close_triggered()
{
+ if (isTesting())
+ {
+ QMessageBox::information(this, tr("tips"), tr("Is testing, do not close!"));
+ return;
+ }
+
close();
}
diff --git a/app/HGProductionTool/mainwindow.h b/app/HGProductionTool/mainwindow.h
index 4928556..31cd0dd 100644
--- a/app/HGProductionTool/mainwindow.h
+++ b/app/HGProductionTool/mainwindow.h
@@ -30,7 +30,10 @@ public:
Form_mainInterface* FindInterface(SANE_Handle handle);
bool AddInterface(Form_mainInterface *interface);
bool RemoveInterface(Form_mainInterface *interface);
-
+ bool isTesting();
+
+protected:
+ void closeEvent(QCloseEvent *event);
private:
static int sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param);