diff --git a/app/scantool/Scantool_zh_CN.qm b/app/scantool/Scantool_zh_CN.qm index f1897334..eb05fb48 100644 Binary files a/app/scantool/Scantool_zh_CN.qm and b/app/scantool/Scantool_zh_CN.qm differ diff --git a/app/scantool/Scantool_zh_CN.ts b/app/scantool/Scantool_zh_CN.ts index fa81640a..b8b01724 100644 --- a/app/scantool/Scantool_zh_CN.ts +++ b/app/scantool/Scantool_zh_CN.ts @@ -40,28 +40,28 @@ - + Manual 手动 - + Button 按键 - + Modify 修改 - + Tips 提示 - + Item find in list 配置已存在 @@ -406,7 +406,7 @@ MainWindow - + Scan Tool 扫描工具 @@ -436,123 +436,131 @@ 选择设备 - + Show 打开 - + Exit 退出 - + Device Type 设备类型 - + Button Id 按键ID - + Device Config 设备配置 - + Save Param 保存参数 - - - - + + + + Manual 手动 - - - - + + + + Button 1 按键 1 - - - - + + + + Button 2 按键 2 - - - - + + + + Button 3 按键 3 - - - - - - - + + + + + Button 4 + 按键 4 + + + + + + + + + Tips 提示 - - - + + + Device is offline 设备已断开 - + binary 黑白 - + gray 256级灰度 - + rgb 24位彩色 - - + + No item selected 请选择配置项 - + Device type mismatch 设备类型不匹配 - + Manual configuration items cannot be deleted 手动扫描配置不可被删除 - + Question 询问 - + Are you sure you want to remove the item? 确认删除配置项? diff --git a/app/scantool/dialog_add.cpp b/app/scantool/dialog_add.cpp index 17b4c556..7613e988 100644 --- a/app/scantool/dialog_add.cpp +++ b/app/scantool/dialog_add.cpp @@ -3,7 +3,7 @@ #include "mainwindow.h" #include -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() diff --git a/app/scantool/dialog_add.h b/app/scantool/dialog_add.h index df28e4c1..a385b62b 100644 --- a/app/scantool/dialog_add.h +++ b/app/scantool/dialog_add.h @@ -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(); diff --git a/app/scantool/mainwindow.cpp b/app/scantool/mainwindow.cpp index 171f71d2..b654d405 100644 --- a/app/scantool/mainwindow.cpp +++ b/app/scantool/mainwindow.cpp @@ -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)); diff --git a/app/scantool/mainwindow.h b/app/scantool/mainwindow.h index 2db32f81..71cde52c 100644 --- a/app/scantool/mainwindow.h +++ b/app/scantool/mainwindow.h @@ -98,6 +98,7 @@ private: int m_aquireIntoBatchStartIndex; int m_aquireIntoPageIndex; int m_aquireIntoMultiPageCount; + int m_currentButtonClicked; HGMsgPump m_ocrMsgPump; HGThread m_ocrThread; };