添加测试状态引用计数,上报校正信息

This commit is contained in:
yangjiaxuan 2022-12-30 18:30:02 +08:00
parent 9cd6ee5d15
commit fe69f6a5b0
7 changed files with 66 additions and 59 deletions

View File

@ -81,8 +81,8 @@ 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(testDistortion(QString,void*)), this, SLOT(on_testDistortion(QString,void*)), Qt::QueuedConnection);
connect(this, SIGNAL(testCorrectInfo(QString)), this, SLOT(on_testCorrectInfo(QString)), Qt::QueuedConnection);
connect(this, SIGNAL(testFinish()), this, SLOT(on_testFinish()), Qt::QueuedConnection);
QString str;
if (m_handle)
@ -160,7 +160,12 @@ void Form_mainInterface::paintEvent(QPaintEvent *event)
void Form_mainInterface::on_testResult(QString text)
{
QMessageBox::information(this, tr("tips"), text);
if (!text.isEmpty())
QMessageBox::information(this, tr("tips"), text);
updateUiEnabled(true);
m_isTesting = false;
m_mainwnd->releaseTesting();
}
void Form_mainInterface::on_testResultImg(void *img)
@ -185,12 +190,12 @@ void Form_mainInterface::on_testDistortion(QString name, void *data)
{
func_test_go(HGPDTTOOLDB_NAME_SINGLE_PAGE_TEST_1, L"null", m_hg);
}
}
void Form_mainInterface::on_testFinish()
{
updateUiEnabled(true);
m_isTesting = false;
else
{
updateUiEnabled(true);
m_isTesting = false;
m_mainwnd->releaseTesting();
}
}
void Form_mainInterface::on_testCorrectInfo(QString info)
@ -541,17 +546,11 @@ void Form_mainInterface::on_pbtn_start_clicked()
QTableWidgetItem *item = ui->tableWidget->item(row, 1);
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 (SCANNER_ERR_OK == ret)
{
updateUiEnabled(false);
m_isTesting = true;
}
else
{
updateUiEnabled(true);
m_isTesting = false;
}
func_test_go(name.toStdWString().c_str(), L"null", m_hg);
updateUiEnabled(false);
m_isTesting = true;
m_mainwnd->addTestingRef();
}
void Form_mainInterface::on_pbtn_showImg_clicked()
@ -568,7 +567,7 @@ void Form_mainInterface::on_pbtn_showImg_clicked()
ui->pbtn_leftRotate->setVisible(true);
ui->pbtn_rightRotate->setVisible(true);
ui->stackedWidget->setCurrentWidget(m_view);
HGImage img;
HGImage img = nullptr;
HGImgFmt_LoadImage(fileName.toStdString().c_str(), 0, 0, 0, 0, &img);
m_view->addImage(img);
QFile file(fileName);

View File

@ -38,13 +38,11 @@ signals:
void testResultImg(void* img);
void testDistortion(QString title, void *data);
void testCorrectInfo(QString info);
void testFinish();
private slots:
void on_testResult(QString text);
void on_testResultImg(void* img);
void on_testDistortion(QString title, void *data);
void on_testFinish();
void on_testCorrectInfo(QString info);
private slots:

View File

@ -25,6 +25,7 @@ void Form_textTips::setViewContent(QString content)
void Form_textTips::addContent(QString content)
{
ui->textBrowser->insertPlainText(content);
ui->textBrowser->moveCursor(QTextCursor::End);
}

View File

@ -39,37 +39,36 @@ 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);
emit m_interface->testFinish();
}
else if (ev == TEST_EVENT_IO_FAIL)
{
QString info;
if (data != nullptr)
{
QString info = QString::fromStdWString((const wchar_t*)data);
info = QObject::tr("failed: ") + info;
emit m_interface->testResult(info);
info = QObject::tr("failed: ") + QString::fromStdWString((const wchar_t*)data);
}
emit m_interface->testFinish();
emit m_interface->testResult(info);
}
else if (ev == TEST_EVENT_MANUAL_CONFIRMATION)
{
QString info = QString::fromStdWString((const wchar_t*)data);
QString info;
if (data != nullptr)
{
info = QString::fromStdWString((const wchar_t*)data);
}
emit m_interface->testResult(info);
emit m_interface->testFinish();
}
else if (ev == TEST_EVENT_RESULT)
{
QString info;
if (data != nullptr)
{
QString info = QString::fromStdWString((const wchar_t*)data);
if (flag)
info = QObject::tr("success: ") + info;
info = QObject::tr("success: ") + QString::fromStdWString((const wchar_t*)data);
else
info = QObject::tr("failed: ") + info;
emit m_interface->testResult(info);
info = QObject::tr("failed: ") + QString::fromStdWString((const wchar_t*)data);
}
emit m_interface->testFinish();
emit m_interface->testResult(info);
}
else if (ev == TEST_EVENT_DISTORTION)
{
@ -78,9 +77,10 @@ void hgscanner::test_callback(const wchar_t* name, test_event ev, void* data, si
}
else if (ev == TEST_EVENT_FALT_INFO)
{
QString info;
if (data != nullptr)
{
QString info = QString::fromStdWString((const wchar_t*)data);
info = QString::fromStdWString((const wchar_t*)data);
emit m_interface->testCorrectInfo(info);
}
}

View File

@ -17,6 +17,7 @@ MainWindow::MainWindow(HGPdtToolDbUserMgr pdtToolDbuserMgr, const QString &ftpHo
, m_ftpHost(ftpHost)
, m_ftpPort(ftpPort)
, m_lock(nullptr)
, m_testingRef(0)
, m_top_splitter(nullptr)
, m_bot_splitter(nullptr)
, m_isLogOut(false)
@ -232,31 +233,36 @@ bool MainWindow::RemoveInterface(Form_mainInterface *interface)
return true;
}
void MainWindow::addTestingRef()
{
++m_testingRef;
ui->act_close->setEnabled(false);
ui->act_manage->setEnabled(false);
ui->act_logOut->setEnabled(false);
ui->act_changePwd->setEnabled(false);
ui->act_export->setEnabled(false);
ui->act_upload->setEnabled(false);
}
void MainWindow::releaseTesting()
{
--m_testingRef;
if (0 == m_testingRef)
{
ui->act_close->setEnabled(true);
ui->act_manage->setEnabled(true);
ui->act_logOut->setEnabled(true);
ui->act_changePwd->setEnabled(true);
ui->act_export->setEnabled(true);
ui->act_upload->setEnabled(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;
return (m_testingRef != 0);
}
void MainWindow::closeEvent(QCloseEvent *event)

View File

@ -30,6 +30,8 @@ public:
Form_mainInterface* FindInterface(SANE_Handle handle);
bool AddInterface(Form_mainInterface *interface);
bool RemoveInterface(Form_mainInterface *interface);
void addTestingRef();
void releaseTesting();
bool isTesting();
protected:
@ -76,6 +78,7 @@ private:
Ui::MainWindow *ui;
HGPdtToolDbUserMgr m_pdtToolDbuserMgr;
HGLock m_lock;
int m_testingRef;
public:
QString m_ftpHost;