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 @@
-
+
手动
-
+
按键
-
+
修改
-
+
提示
-
+
配置已存在
@@ -406,7 +406,7 @@
MainWindow
-
+
扫描工具
@@ -436,123 +436,131 @@
选择设备
-
+
打开
-
+
退出
-
+
设备类型
-
+
按键ID
-
+
设备配置
-
+
保存参数
-
-
-
-
+
+
+
+
手动
-
-
-
-
+
+
+
+
按键 1
-
-
-
-
+
+
+
+
按键 2
-
-
-
-
+
+
+
+
按键 3
-
-
-
-
-
-
-
+
+
+
+
+
+ 按键 4
+
+
+
+
+
+
+
+
+
提示
-
-
-
+
+
+
设备已断开
-
+
黑白
-
+
256级灰度
-
+
24位彩色
-
-
+
+
请选择配置项
-
+
设备类型不匹配
-
+
手动扫描配置不可被删除
-
+
询问
-
+
确认删除配置项?
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;
};