scantool按键数量设置为4个,将硬件按键与之对应

This commit is contained in:
yangjiaxuan 2024-05-13 18:02:01 +08:00
parent c2b94fcdae
commit 787464e84d
6 changed files with 70 additions and 55 deletions

Binary file not shown.

View File

@ -40,28 +40,28 @@
</message>
<message>
<location filename="dialog_add.cpp" line="16"/>
<location filename="dialog_add.cpp" line="45"/>
<location filename="dialog_add.cpp" line="48"/>
<source>Manual</source>
<translation></translation>
</message>
<message>
<location filename="dialog_add.cpp" line="20"/>
<location filename="dialog_add.cpp" line="49"/>
<location filename="dialog_add.cpp" line="52"/>
<source>Button </source>
<translation> </translation>
</message>
<message>
<location filename="dialog_add.cpp" line="43"/>
<location filename="dialog_add.cpp" line="46"/>
<source>Modify</source>
<translation></translation>
</message>
<message>
<location filename="dialog_add.cpp" line="103"/>
<location filename="dialog_add.cpp" line="106"/>
<source>Tips</source>
<translation></translation>
</message>
<message>
<location filename="dialog_add.cpp" line="103"/>
<location filename="dialog_add.cpp" line="106"/>
<source>Item find in list</source>
<translation></translation>
</message>
@ -406,7 +406,7 @@
<name>MainWindow</name>
<message>
<location filename="mainwindow.ui" line="14"/>
<location filename="mainwindow.cpp" line="37"/>
<location filename="mainwindow.cpp" line="38"/>
<source>Scan Tool</source>
<translation></translation>
</message>
@ -436,123 +436,131 @@
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="42"/>
<location filename="mainwindow.cpp" line="43"/>
<source>Show</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="44"/>
<location filename="mainwindow.cpp" line="45"/>
<source>Exit</source>
<translation>退</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="61"/>
<location filename="mainwindow.cpp" line="62"/>
<source>Device Type</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="62"/>
<location filename="mainwindow.cpp" line="63"/>
<source>Button Id</source>
<translation>ID</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="63"/>
<location filename="mainwindow.cpp" line="64"/>
<source>Device Config</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="64"/>
<location filename="mainwindow.cpp" line="65"/>
<source>Save Param</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="81"/>
<location filename="mainwindow.cpp" line="811"/>
<location filename="mainwindow.cpp" line="1372"/>
<location filename="mainwindow.cpp" line="1433"/>
<location filename="mainwindow.cpp" line="82"/>
<location filename="mainwindow.cpp" line="812"/>
<location filename="mainwindow.cpp" line="1384"/>
<location filename="mainwindow.cpp" line="1445"/>
<source>Manual</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="81"/>
<location filename="mainwindow.cpp" line="811"/>
<location filename="mainwindow.cpp" line="1372"/>
<location filename="mainwindow.cpp" line="1433"/>
<location filename="mainwindow.cpp" line="82"/>
<location filename="mainwindow.cpp" line="812"/>
<location filename="mainwindow.cpp" line="1384"/>
<location filename="mainwindow.cpp" line="1445"/>
<source>Button 1</source>
<translation> 1</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="81"/>
<location filename="mainwindow.cpp" line="811"/>
<location filename="mainwindow.cpp" line="1372"/>
<location filename="mainwindow.cpp" line="1433"/>
<location filename="mainwindow.cpp" line="82"/>
<location filename="mainwindow.cpp" line="812"/>
<location filename="mainwindow.cpp" line="1384"/>
<location filename="mainwindow.cpp" line="1445"/>
<source>Button 2</source>
<translation> 2</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="81"/>
<location filename="mainwindow.cpp" line="811"/>
<location filename="mainwindow.cpp" line="1372"/>
<location filename="mainwindow.cpp" line="1433"/>
<location filename="mainwindow.cpp" line="82"/>
<location filename="mainwindow.cpp" line="812"/>
<location filename="mainwindow.cpp" line="1384"/>
<location filename="mainwindow.cpp" line="1445"/>
<source>Button 3</source>
<translation> 3</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="602"/>
<location filename="mainwindow.cpp" line="1342"/>
<location filename="mainwindow.cpp" line="1398"/>
<location filename="mainwindow.cpp" line="1404"/>
<location filename="mainwindow.cpp" line="1418"/>
<location filename="mainwindow.cpp" line="1450"/>
<location filename="mainwindow.cpp" line="1456"/>
<location filename="mainwindow.cpp" line="82"/>
<location filename="mainwindow.cpp" line="812"/>
<location filename="mainwindow.cpp" line="1384"/>
<location filename="mainwindow.cpp" line="1445"/>
<source>Button 4</source>
<translation> 4</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="603"/>
<location filename="mainwindow.cpp" line="1354"/>
<location filename="mainwindow.cpp" line="1410"/>
<location filename="mainwindow.cpp" line="1416"/>
<location filename="mainwindow.cpp" line="1430"/>
<location filename="mainwindow.cpp" line="1462"/>
<location filename="mainwindow.cpp" line="1468"/>
<source>Tips</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="602"/>
<location filename="mainwindow.cpp" line="1342"/>
<location filename="mainwindow.cpp" line="1404"/>
<location filename="mainwindow.cpp" line="603"/>
<location filename="mainwindow.cpp" line="1354"/>
<location filename="mainwindow.cpp" line="1416"/>
<source>Device is offline</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="962"/>
<location filename="mainwindow.cpp" line="963"/>
<source>binary</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="964"/>
<location filename="mainwindow.cpp" line="965"/>
<source>gray</source>
<translation>256</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="966"/>
<location filename="mainwindow.cpp" line="967"/>
<source>rgb</source>
<translation>24</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="1398"/>
<location filename="mainwindow.cpp" line="1450"/>
<location filename="mainwindow.cpp" line="1410"/>
<location filename="mainwindow.cpp" line="1462"/>
<source>No item selected</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="1418"/>
<location filename="mainwindow.cpp" line="1430"/>
<source>Device type mismatch</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="1456"/>
<location filename="mainwindow.cpp" line="1468"/>
<source>Manual configuration items cannot be deleted</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="1460"/>
<location filename="mainwindow.cpp" line="1472"/>
<source>Question</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="1461"/>
<location filename="mainwindow.cpp" line="1473"/>
<source>Are you sure you want to remove the item?</source>
<translation></translation>
</message>

View File

@ -3,7 +3,7 @@
#include "mainwindow.h"
#include <QMessageBox>
Dialog_Add::Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const std::string &deviceType)
Dialog_Add::Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const std::string &deviceType, int curButtonId)
: QDialog(mainWnd)
, ui(new Ui::Dialog_Add)
, m_mainWnd(mainWnd)
@ -19,6 +19,9 @@ Dialog_Add::Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const s
for (SANE_Int i = 0; i < buttonCount; ++i)
ui->comboBoxButtonId->addItem(tr("Button ") + QString::number(i + 1));
if (buttonCount >= curButtonId)
ui->comboBoxButtonId->setCurrentIndex(curButtonId);
m_scanParam.deviceType = deviceType;
m_scanParam.buttonId = ui->comboBoxButtonId->currentIndex();
m_scanParam.deviceConfigs.clear();
@ -93,7 +96,8 @@ void Dialog_Add::on_pushButtonSaveParam_clicked()
void Dialog_Add::on_comboBoxButtonId_currentIndexChanged(int index)
{
m_scanParam.buttonId = index;
if (index >= 0)
m_scanParam.buttonId = index;
}
void Dialog_Add::on_pushButtonOK_clicked()

View File

@ -23,7 +23,7 @@ class Dialog_Add : public QDialog
Q_OBJECT
public:
explicit Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const std::string &deviceType);
explicit Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const std::string &deviceType, int curButtonId);
Dialog_Add(SANE_Handle devHandle, class MainWindow *mainWnd, const ScanParam &scanParam, int index);
~Dialog_Add();

View File

@ -23,6 +23,7 @@ MainWindow::MainWindow(QWidget *parent)
, m_devHandle(nullptr)
, m_scanning(false)
, m_dpi(200)
, m_currentButtonClicked(0)
, m_scanFileName("")
, m_scanImgFmtWriter(nullptr)
, m_ocrMsgPump(nullptr)
@ -78,7 +79,7 @@ MainWindow::MainWindow(QWidget *parent)
ui->tableWidget->item(index, 0)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(index, 0)->setFlags(ui->tableWidget->item(index, 0)->flags() & ~Qt::ItemIsEditable);
QStringList btnTypeStr = {tr("Manual"), tr("Button 1"), tr("Button 2"), tr("Button 3")};
QStringList btnTypeStr = {tr("Manual"), tr("Button 1"), tr("Button 2"), tr("Button 3"), tr("Button 4")};
ui->tableWidget->setItem(index, 1, new QTableWidgetItem(btnTypeStr[m_vScanParams[index].buttonId]));
ui->tableWidget->item(index, 1)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(index, 1)->setFlags(ui->tableWidget->item(index, 1)->flags() & ~Qt::ItemIsEditable);
@ -808,7 +809,7 @@ void MainWindow::AddManualScanParam()
ui->tableWidget->item(index, 0)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(index, 0)->setFlags(ui->tableWidget->item(index, 0)->flags() & ~Qt::ItemIsEditable);
QStringList btnTypeStr = {tr("Manual"), tr("Button 1"), tr("Button 2"), tr("Button 3")};
QStringList btnTypeStr = {tr("Manual"), tr("Button 1"), tr("Button 2"), tr("Button 3"), tr("Button 4")};
ui->tableWidget->setItem(index, 1, new QTableWidgetItem(btnTypeStr[m_vScanParams[index].buttonId]));
ui->tableWidget->item(index, 1)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(index, 1)->setFlags(ui->tableWidget->item(index, 1)->flags() & ~Qt::ItemIsEditable);
@ -1234,6 +1235,7 @@ void MainWindow::on_deviceRemove(QString devName)
void MainWindow::on_keyPress(unsigned int buttonId)
{
assert(nullptr != m_devHandle);
m_currentButtonClicked = buttonId;
StartScan(buttonId);
}
@ -1352,7 +1354,7 @@ void MainWindow::on_pushButtonAdd_clicked()
}
assert(nullptr == m_dlgAdd);
m_dlgAdd = new Dialog_Add(m_devHandle, this, deviceType);
m_dlgAdd = new Dialog_Add(m_devHandle, this, deviceType, m_currentButtonClicked);
connect(this, SIGNAL(closeDevice()), m_dlgAdd, SLOT(on_closeDevice()));
if (m_dlgAdd->exec())
{
@ -1369,7 +1371,7 @@ void MainWindow::on_pushButtonAdd_clicked()
ui->tableWidget->item(index, 0)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(index, 0)->setFlags(ui->tableWidget->item(index, 0)->flags() & ~Qt::ItemIsEditable);
QStringList btnTypeStr = {tr("Manual"), tr("Button 1"), tr("Button 2"), tr("Button 3")};
QStringList btnTypeStr = {tr("Manual"), tr("Button 1"), tr("Button 2"), tr("Button 3"), tr("Button 4")};
ui->tableWidget->setItem(index, 1, new QTableWidgetItem(btnTypeStr[m_vScanParams[index].buttonId]));
ui->tableWidget->item(index, 1)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(index, 1)->setFlags(ui->tableWidget->item(index, 1)->flags() & ~Qt::ItemIsEditable);
@ -1430,7 +1432,7 @@ void MainWindow::on_pushButtonModify_clicked()
ui->tableWidget->item(index, 0)->setText(QString::fromStdString(m_vScanParams[index].deviceType));
QStringList btnTypeStr = {tr("Manual"), tr("Button 1"), tr("Button 2"), tr("Button 3")};
QStringList btnTypeStr = {tr("Manual"), tr("Button 1"), tr("Button 2"), tr("Button 3"), tr("Button 4")};
ui->tableWidget->item(index, 1)->setText(btnTypeStr[m_vScanParams[index].buttonId]);
ui->tableWidget->item(index, 2)->setText(GetDesc(m_vScanParams[index].deviceConfigs));

View File

@ -98,6 +98,7 @@ private:
int m_aquireIntoBatchStartIndex;
int m_aquireIntoPageIndex;
int m_aquireIntoMultiPageCount;
int m_currentButtonClicked;
HGMsgPump m_ocrMsgPump;
HGThread m_ocrThread;
};