diff --git a/app/scantool/HGUIGlobal.cpp b/app/scantool/HGUIGlobal.cpp deleted file mode 100644 index fd3dbbf1..00000000 --- a/app/scantool/HGUIGlobal.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "HGUIGlobal.h" -#include "base/HGDef.h" -#include "base/HGInc.h" -#include "base/HGUtility.h" - -QString getStdFileName(const QString &fileName) -{ - char result[512] = {0}; - HGBase_StandardiseFileName(fileName.toStdString().c_str(), result, 512); - return result; -} - -std::string getStdString(const QString &str) -{ -#ifdef HG_CMP_MSC - return str.toLocal8Bit().data(); -#else - return str.toStdString(); -#endif -} diff --git a/app/scantool/HGUIGlobal.h b/app/scantool/HGUIGlobal.h deleted file mode 100644 index d1da4d16..00000000 --- a/app/scantool/HGUIGlobal.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __HGUIGLOBAL_H__ -#define __HGUIGLOBAL_H__ - -#include - -QString getStdFileName(const QString &fileName); - -std::string getStdString(const QString &str); - -#endif /* __HGUIGLOBAL_H__ */ diff --git a/app/scantool/app_cfg.cpp b/app/scantool/app_cfg.cpp deleted file mode 100644 index 10b4d3cd..00000000 --- a/app/scantool/app_cfg.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "app_cfg.h" -#include "base/HGDef.h" -#include "base/HGInc.h" -#include "base/HGUtility.h" -#include "base/HGIni.h" -#include "HGUIGlobal.h" -#include "HGString.h" - -QString getCfgValue(const char *appName, const char *key, const QString &def) -{ - HGChar cfgPath[512]; - HGBase_GetConfigPath(cfgPath, 512); - strcat(cfgPath, "config.ini"); - - HGChar value[512] = {0}; - HGBase_GetProfileString(cfgPath, appName, key, getStdString(def).c_str(), value, 512); - return StdStringToUtf8(value).c_str(); -} - -int getCfgValue(const char *appName, const char *key, int def) -{ - HGChar cfgPath[512]; - HGBase_GetConfigPath(cfgPath, 512); - strcat(cfgPath, "config.ini"); - - HGInt value = 0; - HGBase_GetProfileInt(cfgPath, appName, key, def, &value); - return value; -} - -bool getCfgValue(const char *appName, const char *key, bool def) -{ - HGChar cfgPath[512]; - HGBase_GetConfigPath(cfgPath, 512); - strcat(cfgPath, "config.ini"); - - HGInt value = 0; - HGBase_GetProfileInt(cfgPath, appName, key, (HGInt)def, &value); - return (bool)value; -} - -void saveCfgValue(const char *appName, const char *key, const QString &value) -{ - HGChar cfgPath[512]; - HGBase_GetConfigPath(cfgPath, 512); - HGBase_CreateDir(cfgPath); - strcat(cfgPath, "config.ini"); - - HGBase_SetProfileString(cfgPath, appName, key, getStdString(value).c_str()); -} - -void saveCfgValue(const char *appName, const char *key, int value) -{ - HGChar cfgPath[512]; - HGBase_GetConfigPath(cfgPath, 512); - HGBase_CreateDir(cfgPath); - strcat(cfgPath, "config.ini"); - - HGBase_SetProfileInt(cfgPath, appName, key, value); -} - -void saveCfgValue(const char *appName, const char *key, bool value) -{ - HGChar cfgPath[512]; - HGBase_GetConfigPath(cfgPath, 512); - HGBase_CreateDir(cfgPath); - strcat(cfgPath, "config.ini"); - - HGBase_SetProfileInt(cfgPath, appName, key, (HGInt)value); -} diff --git a/app/scantool/app_cfg.h b/app/scantool/app_cfg.h deleted file mode 100644 index 0b5d1228..00000000 --- a/app/scantool/app_cfg.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __APP_CFG_H__ -#define __APP_CFG_H__ - -#include - -QString getCfgValue(const char *appName, const char *key, const QString &def); -int getCfgValue(const char *appName, const char *key, int def); -bool getCfgValue(const char *appName, const char *key, bool def); - -void saveCfgValue(const char *appName, const char *key, const QString &value); -void saveCfgValue(const char *appName, const char *key, int value); -void saveCfgValue(const char *appName, const char *key, bool value); - -#endif /* __APP_CFG_H__ */ diff --git a/app/scantool/dialog_writesettings.cpp b/app/scantool/dialog_writesettings.cpp index f22b9463..6b903dd5 100644 --- a/app/scantool/dialog_writesettings.cpp +++ b/app/scantool/dialog_writesettings.cpp @@ -1,6 +1,5 @@ #include "dialog_writesettings.h" #include "ui_dialog_writesettings.h" -#include "app_cfg.h" Dialog_WriteSettings::Dialog_WriteSettings(int suffix_type, const WriteParam &writeParam, QWidget *parent) : QDialog(parent) @@ -24,11 +23,11 @@ Dialog_WriteSettings::Dialog_WriteSettings(int suffix_type, const WriteParam &wr ui->spin_jpg_quality->setVisible(jpg_enable); //set value - ui->slider_jpg_quality->setValue(writeParam.m_jpegQuality); - ui->spin_jpg_quality->setValue(writeParam.m_jpegQuality); - ui->cbox_tif_bw->setCurrentIndex(writeParam.m_tiffCompressionBW); - ui->cbox_tif_color->setCurrentIndex(writeParam.m_tiffCompression); - ui->spin_tif_quality->setValue(writeParam.m_tiffQuality); + ui->slider_jpg_quality->setValue(writeParam.jpegQuality); + ui->spin_jpg_quality->setValue(writeParam.jpegQuality); + ui->cbox_tif_bw->setCurrentIndex(writeParam.tiffCompressionBW); + ui->cbox_tif_color->setCurrentIndex(writeParam.tiffCompression); + ui->spin_tif_quality->setValue(writeParam.tiffQuality); //set enable ui->spin_tif_quality->setEnabled(ui->cbox_tif_color->currentIndex() == 2); @@ -44,10 +43,10 @@ Dialog_WriteSettings::~Dialog_WriteSettings() WriteParam Dialog_WriteSettings::GetWriteParam() { WriteParam writeParam; - writeParam.m_jpegQuality = ui->spin_jpg_quality->value(); - writeParam.m_tiffCompressionBW = ui->cbox_tif_bw->currentIndex(); - writeParam.m_tiffCompression = ui->cbox_tif_color->currentIndex(); - writeParam.m_tiffQuality = ui->spin_tif_quality->value(); + writeParam.jpegQuality = ui->spin_jpg_quality->value(); + writeParam.tiffCompressionBW = ui->cbox_tif_bw->currentIndex(); + writeParam.tiffCompression = ui->cbox_tif_color->currentIndex(); + writeParam.tiffQuality = ui->spin_tif_quality->value(); return writeParam; } diff --git a/app/scantool/dialog_writesettings.h b/app/scantool/dialog_writesettings.h index 61e8e93f..57106b84 100644 --- a/app/scantool/dialog_writesettings.h +++ b/app/scantool/dialog_writesettings.h @@ -10,10 +10,10 @@ class Dialog_WriteSettings; struct WriteParam { - int m_jpegQuality; - int m_tiffCompressionBW; - int m_tiffCompression; - int m_tiffQuality; + int jpegQuality; + int tiffCompressionBW; + int tiffCompression; + int tiffQuality; }; class Dialog_WriteSettings : public QDialog diff --git a/app/scantool/form_saveparam.cpp b/app/scantool/form_saveparam.cpp index f70d0052..b048357e 100644 --- a/app/scantool/form_saveparam.cpp +++ b/app/scantool/form_saveparam.cpp @@ -5,9 +5,6 @@ #include "base/HGInc.h" #include "base/HGUtility.h" #include "base/HGIni.h" -#include "HGUIGlobal.h" -#include "HGString.h" -#include "app_cfg.h" Form_SaveParam::Form_SaveParam(const SaveParam &saveParam, QWidget *parent) : QWidget(parent) @@ -18,21 +15,21 @@ Form_SaveParam::Form_SaveParam(const SaveParam &saveParam, QWidget *parent) QRegExp rx("[^\\\\/:*?\"<>|]+$"); ui->lineEdit_fileName->setValidator(new QRegExpValidator(rx, this)); - ui->lineEdit_directory->setText(saveParam.m_savePath); - ui->cbtn_subFolder->setChecked(saveParam.m_isUseSubfolderByTime); - ui->cbtn_subFolderByBlank->setChecked(saveParam.m_isUseSubfolderByBlankPages); - ui->cbtn_subFolderByColor->setChecked(saveParam.m_isUseSubfolderByColor); - ui->lineEdit_fileName->setText(saveParam.m_fileNamePrefix); + ui->lineEdit_directory->setText(QString::fromLocal8Bit(saveParam.savePath.c_str())); + ui->cbtn_subFolder->setChecked(saveParam.isUseSubfolderByTime); + ui->cbtn_subFolderByBlank->setChecked(saveParam.isUseSubfolderByBlankPages); + ui->cbtn_subFolderByColor->setChecked(saveParam.isUseSubfolderByColor); + ui->lineEdit_fileName->setText(QString::fromLocal8Bit(saveParam.fileNamePrefix.c_str())); - ui->spin_index->setValue(saveParam.m_fileNameStartIndex); - ui->cbox_digit->setCurrentIndex(saveParam.m_fileNameDigits - 1); - ui->cbox_evenOdd->setCurrentIndex(saveParam.m_fileNameOddEventType); - int format = getFormatIndex(saveParam.m_fileNameExt, saveParam.m_isOcr); + ui->spin_index->setValue(saveParam.fileNameStartIndex); + ui->cbox_digit->setCurrentIndex(saveParam.fileNameDigits - 1); + ui->cbox_evenOdd->setCurrentIndex(saveParam.fileNameOddEvenType); + int format = getFormatIndex(saveParam.fileNameExt, saveParam.isOcr); ui->cbox_format->setCurrentIndex(format); - ui->cbtn_multiFile->setChecked(saveParam.m_isSaveAsMultiPage); - ui->radio_multiAll->setChecked(0 == saveParam.m_multiPagesType); - ui->radio_multiCustom->setChecked(0 != saveParam.m_multiPagesType); - ui->spinBox_multiPages->setValue(saveParam.m_customMultiPages); + ui->cbtn_multiFile->setChecked(saveParam.isSaveAsMultiPage); + ui->radio_multiAll->setChecked(0 == saveParam.multiPagesType); + ui->radio_multiCustom->setChecked(0 != saveParam.multiPagesType); + ui->spinBox_multiPages->setValue(saveParam.customMultiPages); ui->lab_digitExp->setText(QString(tr("e.g. '%1%2'")).arg(ui->lineEdit_fileName->text()) .arg(ui->spin_index->value(), ui->cbox_digit->currentIndex() + 1, 10, QLatin1Char('0'))); @@ -51,10 +48,10 @@ Form_SaveParam::Form_SaveParam(const SaveParam &saveParam, QWidget *parent) ui->cbox_format->removeItem(10); #endif - m_writeParam.m_jpegQuality = saveParam.m_jpegQuality; - m_writeParam.m_tiffCompressionBW = saveParam.m_tiffCompressionBW; - m_writeParam.m_tiffCompression = saveParam.m_tiffCompression; - m_writeParam.m_tiffQuality = saveParam.m_tiffQuality; + m_writeParam.jpegQuality = saveParam.jpegQuality; + m_writeParam.tiffCompressionBW = saveParam.tiffCompressionBW; + m_writeParam.tiffCompression = saveParam.tiffCompression; + m_writeParam.tiffQuality = saveParam.tiffQuality; } Form_SaveParam::~Form_SaveParam() @@ -65,20 +62,20 @@ Form_SaveParam::~Form_SaveParam() SaveParam Form_SaveParam::GetSaveParam() { SaveParam saveParam; - saveParam.m_savePath = ui->lineEdit_directory->text(); - saveParam.m_isUseSubfolderByTime = ui->cbtn_subFolder->isChecked(); - saveParam.m_isUseSubfolderByBlankPages = ui->cbtn_subFolderByBlank->isChecked(); - saveParam.m_isUseSubfolderByColor = ui->cbtn_subFolderByColor->isChecked(); - saveParam.m_jpegQuality = m_writeParam.m_jpegQuality; - saveParam.m_tiffCompressionBW = m_writeParam.m_tiffCompressionBW; - saveParam.m_tiffCompression = m_writeParam.m_tiffCompression; - saveParam.m_tiffQuality = m_writeParam.m_tiffQuality; - saveParam.m_fileNamePrefix = ui->lineEdit_fileName->text(); - saveParam.m_fileNameStartIndex = ui->spin_index->value(); - saveParam.m_fileNameDigits = ui->cbox_digit->currentIndex() + 1; - saveParam.m_fileNameOddEventType = ui->cbox_evenOdd->currentIndex(); + saveParam.savePath = ui->lineEdit_directory->text().toLocal8Bit().toStdString(); + saveParam.isUseSubfolderByTime = ui->cbtn_subFolder->isChecked(); + saveParam.isUseSubfolderByBlankPages = ui->cbtn_subFolderByBlank->isChecked(); + saveParam.isUseSubfolderByColor = ui->cbtn_subFolderByColor->isChecked(); + saveParam.jpegQuality = m_writeParam.jpegQuality; + saveParam.tiffCompressionBW = m_writeParam.tiffCompressionBW; + saveParam.tiffCompression = m_writeParam.tiffCompression; + saveParam.tiffQuality = m_writeParam.tiffQuality; + saveParam.fileNamePrefix = ui->lineEdit_fileName->text().toLocal8Bit().toStdString(); + saveParam.fileNameStartIndex = ui->spin_index->value(); + saveParam.fileNameDigits = ui->cbox_digit->currentIndex() + 1; + saveParam.fileNameOddEvenType = ui->cbox_evenOdd->currentIndex(); - QString format = "jpg"; + std::string format = "jpg"; switch (ui->cbox_format->currentIndex()) { case 1: @@ -117,12 +114,12 @@ SaveParam Form_SaveParam::GetSaveParam() default: break; } - saveParam.m_fileNameExt = format; - saveParam.m_isOcr = (ui->cbox_format->currentIndex() >= 10); + saveParam.fileNameExt = format; + saveParam.isOcr = (ui->cbox_format->currentIndex() >= 10); - saveParam.m_isSaveAsMultiPage = ui->cbtn_multiFile->isChecked(); - saveParam.m_multiPagesType = (ui->radio_multiAll->isChecked()) ? 0 : 1; - saveParam.m_customMultiPages = ui->spinBox_multiPages->value(); + saveParam.isSaveAsMultiPage = ui->cbtn_multiFile->isChecked(); + saveParam.multiPagesType = (ui->radio_multiAll->isChecked()) ? 0 : 1; + saveParam.customMultiPages = ui->spinBox_multiPages->value(); return saveParam; } @@ -134,50 +131,53 @@ SaveParam Form_SaveParam::GetDefSaveParam() HGChar procName[512]; HGBase_GetProcessName(procName, 512); strcat(aquireIntoPath, procName); - strcat(aquireIntoPath, "/AquireInto/"); - QString filePath = getStdFileName(StdStringToUtf8(aquireIntoPath).c_str()); - - SaveParam saveParam; - saveParam.m_savePath = filePath; - saveParam.m_isUseSubfolderByTime = false; - saveParam.m_isUseSubfolderByBlankPages = false; - saveParam.m_isUseSubfolderByColor = false; - saveParam.m_jpegQuality = 80; - saveParam.m_tiffCompressionBW = 1; - saveParam.m_tiffCompression = 1; - saveParam.m_tiffQuality = 80; - -#if defined(OEM_HANWANG) - saveParam.m_fileNamePrefix = QString("HWScan"); -#elif defined(OEM_LISICHENG) - saveParam.m_fileNamePrefix = QString("LXScan"); -#elif defined(OEM_CANGTIAN) - saveParam.m_fileNamePrefix = QString("CTSScan"); -#elif defined(OEM_ZHONGJING) - saveParam.m_fileNamePrefix = QString("ZJScan"); -#elif defined(OEM_ZIGUANG) - saveParam.m_fileNamePrefix = QString("ZGScan"); -#elif defined(OEM_NEUTRAL) - saveParam.m_fileNamePrefix = QString("Scan"); -#elif defined(OEM_DELI) - saveParam.m_fileNamePrefix = QString("DLScan"); +#if defined(HG_CMP_MSC) + strcat(aquireIntoPath, "\\AquireInto\\"); #else - saveParam.m_fileNamePrefix = QString("HGScan"); + strcat(aquireIntoPath, "/AquireInto/"); #endif - saveParam.m_fileNameStartIndex = 1; - saveParam.m_fileNameDigits = 3; - saveParam.m_fileNameOddEventType = 0; - saveParam.m_fileNameExt = QString("jpg"); - saveParam.m_isOcr = false; - saveParam.m_isSaveAsMultiPage = false; - saveParam.m_multiPagesType = 0; - saveParam.m_customMultiPages = 1; + SaveParam saveParam; + saveParam.savePath = aquireIntoPath; + saveParam.isUseSubfolderByTime = false; + saveParam.isUseSubfolderByBlankPages = false; + saveParam.isUseSubfolderByColor = false; + saveParam.jpegQuality = 80; + saveParam.tiffCompressionBW = 1; + saveParam.tiffCompression = 1; + saveParam.tiffQuality = 80; + +#if defined(OEM_HANWANG) + saveParam.fileNamePrefix = "HWScan"; +#elif defined(OEM_LISICHENG) + saveParam.fileNamePrefix = "LXScan"; +#elif defined(OEM_CANGTIAN) + saveParam.fileNamePrefix = "CTSScan"; +#elif defined(OEM_ZHONGJING) + saveParam.fileNamePrefix = "ZJScan"; +#elif defined(OEM_ZIGUANG) + saveParam.fileNamePrefix = "ZGScan"; +#elif defined(OEM_NEUTRAL) + saveParam.fileNamePrefix = "Scan"; +#elif defined(OEM_DELI) + saveParam.fileNamePrefix = "DLScan"; +#else + saveParam.fileNamePrefix = "HGScan"; +#endif + + saveParam.fileNameStartIndex = 1; + saveParam.fileNameDigits = 3; + saveParam.fileNameOddEvenType = 0; + saveParam.fileNameExt = "jpg"; + saveParam.isOcr = false; + saveParam.isSaveAsMultiPage = false; + saveParam.multiPagesType = 0; + saveParam.customMultiPages = 1; return saveParam; } -int Form_SaveParam::getFormatIndex(const QString &ext, bool ocr) +int Form_SaveParam::getFormatIndex(const std::string &ext, bool ocr) { if (ext == "bmp") return 1; @@ -207,7 +207,10 @@ void Form_SaveParam::on_btn_directory_clicked() { if (save_dir[save_dir.size() - 1] != '/') save_dir += "/"; - ui->lineEdit_directory->setText(getStdFileName(save_dir)); + + char result[512] = {0}; + HGBase_StandardiseFileName(save_dir.toStdString().c_str(), result, 512); + ui->lineEdit_directory->setText(QString::fromStdString(result)); } } diff --git a/app/scantool/form_saveparam.h b/app/scantool/form_saveparam.h index 2faa3337..7248c9d6 100644 --- a/app/scantool/form_saveparam.h +++ b/app/scantool/form_saveparam.h @@ -2,6 +2,7 @@ #define FORM_SAVEPARAM_H #include +#include #include "dialog_writesettings.h" namespace Ui { @@ -10,23 +11,23 @@ class Form_SaveParam; struct SaveParam { - QString m_savePath; - bool m_isUseSubfolderByTime; - bool m_isUseSubfolderByBlankPages; - bool m_isUseSubfolderByColor; - int m_jpegQuality; - int m_tiffCompressionBW; - int m_tiffCompression; - int m_tiffQuality; - QString m_fileNamePrefix; - int m_fileNameStartIndex; - int m_fileNameDigits; - int m_fileNameOddEventType; - QString m_fileNameExt; - bool m_isOcr; - bool m_isSaveAsMultiPage; - int m_multiPagesType; - int m_customMultiPages; + std::string savePath; + bool isUseSubfolderByTime; + bool isUseSubfolderByBlankPages; + bool isUseSubfolderByColor; + int jpegQuality; + int tiffCompressionBW; + int tiffCompression; + int tiffQuality; + std::string fileNamePrefix; + int fileNameStartIndex; + int fileNameDigits; + int fileNameOddEvenType; + std::string fileNameExt; + bool isOcr; + bool isSaveAsMultiPage; + int multiPagesType; + int customMultiPages; }; class Form_SaveParam : public QWidget @@ -41,7 +42,7 @@ public: static SaveParam GetDefSaveParam(); private: - int getFormatIndex(const QString &ext, bool ocr); + int getFormatIndex(const std::string &ext, bool ocr); private slots: void on_btn_directory_clicked(); diff --git a/app/scantool/mainwindow.cpp b/app/scantool/mainwindow.cpp index 9676a6d6..53465002 100644 --- a/app/scantool/mainwindow.cpp +++ b/app/scantool/mainwindow.cpp @@ -8,9 +8,11 @@ #include "base/HGUtility.h" #include "imgproc/HGImgProc.h" #include "imgproc/HGOCR.h" -#include "HGUIGlobal.h" #include "dialog_scaninfo.h" #include "form_saveparam.h" +#include "sqlite3.h" +#include "cJSON.h" +#include "HGString.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) @@ -55,7 +57,7 @@ MainWindow::MainWindow(QWidget *parent) ui->tableWidget->horizontalHeader()->setFixedHeight(40); ui->tableWidget->horizontalHeader()->setStretchLastSection(true); ui->tableWidget->setHorizontalHeaderItem(0, new QTableWidgetItem("Device Type")); - ui->tableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem("Button Type")); + ui->tableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem("Button Id")); ui->tableWidget->setHorizontalHeaderItem(2, new QTableWidgetItem("Device Config")); ui->tableWidget->setHorizontalHeaderItem(3, new QTableWidgetItem("Save Param")); ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); @@ -158,36 +160,416 @@ void MainWindow::StopScan() } } +std::vector MainWindow::MakeDeviceConfigs(const std::string &str) +{ + std::vector deviceConfigs; + + cJSON* json = cJSON_Parse(str.c_str()); + if (NULL != json) + { + cJSON* p = json->child; + while (NULL != p) + { + if (0 != strcmp(p->string, "device_configs")) + { + p = p->next; + continue; + } + + if (p->type != cJSON_Array) + { + break; + } + + cJSON* pEx = p->child; + while (NULL != pEx) + { + if (pEx->type != cJSON_Object) + { + pEx = pEx->next; + continue; + } + + std::string name; + int valueType = 0; + std::string stringValue; + int intValue = 0; + double doubleValue = 0; + bool boolValue = false; + + cJSON* pEx2 = pEx->child; + while (NULL != pEx2) + { + if (0 == strcmp(pEx2->string, "name") && pEx2->type == cJSON_String) + { + name = pEx2->valuestring; + } + else if (0 == strcmp(pEx2->string, "value")) + { + if (pEx2->type == cJSON_String) + { + stringValue = pEx2->valuestring; + } + else if (pEx2->type == cJSON_Number) + { + intValue = pEx2->valueint; + doubleValue = pEx2->valuedouble; + } + else if (pEx2->type == cJSON_True) + { + boolValue = true; + } + else if (pEx2->type == cJSON_False) + { + boolValue = false; + } + } + else if (0 == strcmp(pEx2->string, "value_type") && pEx2->type == cJSON_Number) + { + valueType = pEx2->valueint; + } + + pEx2 = pEx2->next; + } + + DeviceConfig deviceConfig; + deviceConfig.name = name; + deviceConfig.valueType = valueType; + if (1 == deviceConfig.valueType) + deviceConfig.stringValue = stringValue; + else if (2 == deviceConfig.valueType) + deviceConfig.intValue = intValue; + else if (3 == deviceConfig.valueType) + deviceConfig.doubleValue = doubleValue; + else if (4 == deviceConfig.valueType) + deviceConfig.boolValue = boolValue; + + deviceConfigs.push_back(deviceConfig); + pEx = pEx->next; + } + + break; + } + + cJSON_Delete(json); + } + + return deviceConfigs; +} + +std::string MainWindow::GetDeviceConfigsStr(const std::vector &deviceConfigs) +{ + std::string str; + + cJSON* json = cJSON_CreateObject(); + if (NULL != json) + { + cJSON* array = cJSON_CreateArray(); + for (int i = 0; i < deviceConfigs.size(); ++i) + { + cJSON* obj = cJSON_CreateObject(); + cJSON_AddItemToObject(obj, "name", cJSON_CreateString(deviceConfigs[i].name.c_str())); + cJSON_AddItemToObject(obj, "value_type", cJSON_CreateNumber(deviceConfigs[i].valueType)); + + if (1 == deviceConfigs[i].valueType) + { + cJSON_AddItemToObject(obj, "value", cJSON_CreateString(deviceConfigs[i].stringValue.c_str())); + } + else if (2 == deviceConfigs[i].valueType) + { + cJSON_AddItemToObject(obj, "value", cJSON_CreateNumber(deviceConfigs[i].intValue)); + } + else if (3 == deviceConfigs[i].valueType) + { + cJSON_AddItemToObject(obj, "value", cJSON_CreateNumber(deviceConfigs[i].doubleValue)); + } + else if (4 == deviceConfigs[i].valueType) + { + cJSON_AddItemToObject(obj, "value", deviceConfigs[i].boolValue ? cJSON_CreateTrue() : cJSON_CreateFalse()); + } + + cJSON_AddItemToArray(array, obj); + } + + cJSON_AddItemToObject(json, "device_configs", array); + + char* resp = cJSON_Print(json); + if (NULL != resp) + { + str = resp; + free(resp); + } + + cJSON_Delete(json); + } + + return str; +} + +SaveParam MainWindow::MakeSaveParam(const std::string &str) +{ + SaveParam saveParam = Form_SaveParam::GetDefSaveParam(); + + cJSON* json = cJSON_Parse(str.c_str()); + if (NULL != json) + { + cJSON* p = json->child; + while (NULL != p) + { + if (0 != strcmp(p->string, "save_param")) + { + p = p->next; + continue; + } + + if (p->type != cJSON_Object) + { + break; + } + + cJSON* pEx = p->child; + while (NULL != pEx) + { + if (0 == strcmp(pEx->string, "save_path") && pEx->type == cJSON_String) + { + saveParam.savePath = Utf8ToStdString(pEx->valuestring); + } + else if (0 == strcmp(pEx->string, "use_subfolder_by_time") && pEx->type == cJSON_True) + { + saveParam.isUseSubfolderByTime = true; + } + else if (0 == strcmp(pEx->string, "use_subfolder_by_time") && pEx->type == cJSON_False) + { + saveParam.isUseSubfolderByTime = false; + } + else if (0 == strcmp(pEx->string, "use_subfolder_by_blank_pages") && pEx->type == cJSON_True) + { + saveParam.isUseSubfolderByBlankPages = true; + } + else if (0 == strcmp(pEx->string, "use_subfolder_by_blank_pages") && pEx->type == cJSON_False) + { + saveParam.isUseSubfolderByBlankPages = false; + } + else if (0 == strcmp(pEx->string, "use_subfolder_by_color") && pEx->type == cJSON_True) + { + saveParam.isUseSubfolderByColor = true; + } + else if (0 == strcmp(pEx->string, "use_subfolder_by_color") && pEx->type == cJSON_False) + { + saveParam.isUseSubfolderByColor = false; + } + else if (0 == strcmp(pEx->string, "jpeg_quality") && pEx->type == cJSON_Number) + { + saveParam.jpegQuality = pEx->valueint; + } + else if (0 == strcmp(pEx->string, "tiff_compression_bw") && pEx->type == cJSON_Number) + { + saveParam.tiffCompressionBW = pEx->valueint; + } + else if (0 == strcmp(pEx->string, "tiff_compression") && pEx->type == cJSON_Number) + { + saveParam.tiffCompression = pEx->valueint; + } + else if (0 == strcmp(pEx->string, "tiff_quality") && pEx->type == cJSON_Number) + { + saveParam.tiffQuality = pEx->valueint; + } + else if (0 == strcmp(pEx->string, "filename_prefix") && pEx->type == cJSON_String) + { + saveParam.fileNamePrefix = Utf8ToStdString(pEx->valuestring); + } + else if (0 == strcmp(pEx->string, "filename_start_index") && pEx->type == cJSON_Number) + { + saveParam.fileNameStartIndex = pEx->valueint; + } + else if (0 == strcmp(pEx->string, "filename_digits") && pEx->type == cJSON_Number) + { + saveParam.fileNameDigits = pEx->valueint; + } + else if (0 == strcmp(pEx->string, "filename_odd_even_type") && pEx->type == cJSON_Number) + { + saveParam.fileNameOddEvenType = pEx->valueint; + } + else if (0 == strcmp(pEx->string, "filename_ext") && pEx->type == cJSON_String) + { + saveParam.fileNameExt = Utf8ToStdString(pEx->valuestring); + } + else if (0 == strcmp(pEx->string, "ocr") && pEx->type == cJSON_True) + { + saveParam.isOcr = true; + } + else if (0 == strcmp(pEx->string, "ocr") && pEx->type == cJSON_False) + { + saveParam.isOcr = false; + } + else if (0 == strcmp(pEx->string, "save_as_multi_page") && pEx->type == cJSON_True) + { + saveParam.isSaveAsMultiPage = true; + } + else if (0 == strcmp(pEx->string, "save_as_multi_page") && pEx->type == cJSON_False) + { + saveParam.isSaveAsMultiPage = false; + } + else if (0 == strcmp(pEx->string, "multi_pages_type") && pEx->type == cJSON_Number) + { + saveParam.multiPagesType = pEx->valueint; + } + else if (0 == strcmp(pEx->string, "custom_multi_pages") && pEx->type == cJSON_Number) + { + saveParam.customMultiPages = pEx->valueint; + } + + pEx = pEx->next; + } + + break; + } + + cJSON_Delete(json); + } + + return saveParam; +} + +std::string MainWindow::GetSaveParamStr(const SaveParam &saveParam) +{ + std::string str; + + cJSON* json = cJSON_CreateObject(); + if (NULL != json) + { + cJSON* obj = cJSON_CreateObject(); + cJSON_AddItemToObject(obj, "save_path", cJSON_CreateString(StdStringToUtf8(saveParam.savePath).c_str())); + cJSON_AddItemToObject(obj, "use_subfolder_by_time", saveParam.isUseSubfolderByTime ? cJSON_CreateTrue() : cJSON_CreateFalse()); + cJSON_AddItemToObject(obj, "use_subfolder_by_blank_pages", saveParam.isUseSubfolderByBlankPages ? cJSON_CreateTrue() : cJSON_CreateFalse()); + cJSON_AddItemToObject(obj, "use_subfolder_by_color", saveParam.isUseSubfolderByColor ? cJSON_CreateTrue() : cJSON_CreateFalse()); + cJSON_AddItemToObject(obj, "jpeg_quality", cJSON_CreateNumber(saveParam.jpegQuality)); + cJSON_AddItemToObject(obj, "tiff_compression_bw", cJSON_CreateNumber(saveParam.tiffCompressionBW)); + cJSON_AddItemToObject(obj, "tiff_compression", cJSON_CreateNumber(saveParam.tiffCompression)); + cJSON_AddItemToObject(obj, "tiff_quality", cJSON_CreateNumber(saveParam.tiffQuality)); + cJSON_AddItemToObject(obj, "filename_prefix", cJSON_CreateString(StdStringToUtf8(saveParam.fileNamePrefix).c_str())); + cJSON_AddItemToObject(obj, "filename_start_index", cJSON_CreateNumber(saveParam.fileNameStartIndex)); + cJSON_AddItemToObject(obj, "filename_digits", cJSON_CreateNumber(saveParam.fileNameDigits)); + cJSON_AddItemToObject(obj, "filename_odd_even_type", cJSON_CreateNumber(saveParam.fileNameOddEvenType)); + cJSON_AddItemToObject(obj, "filename_ext", cJSON_CreateString(StdStringToUtf8(saveParam.fileNameExt).c_str())); + cJSON_AddItemToObject(obj, "ocr", saveParam.isOcr ? cJSON_CreateTrue() : cJSON_CreateFalse()); + cJSON_AddItemToObject(obj, "save_as_multi_page", saveParam.isSaveAsMultiPage ? cJSON_CreateTrue() : cJSON_CreateFalse()); + cJSON_AddItemToObject(obj, "multi_pages_type", cJSON_CreateNumber(saveParam.multiPagesType)); + cJSON_AddItemToObject(obj, "custom_multi_pages", cJSON_CreateNumber(saveParam.customMultiPages)); + cJSON_AddItemToObject(json, "save_param", obj); + + char* resp = cJSON_Print(json); + if (NULL != resp) + { + str = resp; + free(resp); + } + + cJSON_Delete(json); + } + + return str; +} + void MainWindow::LoadCfg() { - // TODO 加载配置文件到m_vScanParams + m_vScanParams.clear(); + + HGChar cfgPath[256]; + HGBase_GetConfigPath(cfgPath, 256); + char dbPath[256]; + sprintf(dbPath, "%s%s", cfgPath, "config.db"); + + sqlite3 *sqlite = nullptr; + sqlite3_open_v2(dbPath, &sqlite, SQLITE_OPEN_READONLY | SQLITE_OPEN_NOMUTEX | SQLITE_OPEN_SHAREDCACHE, NULL); + if (NULL == sqlite) + { + return; + } + + sqlite3_stmt* stmt = NULL; + char sql[256]; + sprintf(sql, "select * from scan_params"); + int ret = sqlite3_prepare(sqlite, sql, -1, &stmt, NULL); + if (0 != ret) + { + sqlite3_close(sqlite); + return; + } + + ret = sqlite3_step(stmt); + while (SQLITE_ROW == ret) + { + int id = sqlite3_column_int(stmt, 0); + const char* deviceType = (const char*)sqlite3_column_text(stmt, 1); + int buttonId = sqlite3_column_int(stmt, 2); + const char* deviceConfigs = (const char*)sqlite3_column_text(stmt, 3); + const char* saveParam = (const char*)sqlite3_column_text(stmt, 4); + + ScanParam scanParam; + scanParam.deviceType = deviceType; + scanParam.buttonId = buttonId; + scanParam.deviceConfigs = MakeDeviceConfigs(deviceConfigs); + scanParam.saveParam = MakeSaveParam(saveParam); + m_vScanParams.push_back(scanParam); + + ret = sqlite3_step(stmt); + } + + ret = sqlite3_finalize(stmt); + assert(0 == ret); + + sqlite3_close(sqlite); } void MainWindow::SaveCfg() { - // TODO 保存m_vScanParams到配置文件 + HGChar cfgPath[256]; + HGBase_GetConfigPath(cfgPath, 256); + HGBase_CreateDir(cfgPath); + char dbPath[256]; + sprintf(dbPath, "%s%s", cfgPath, "config.db"); + HGBase_DeleteFile(dbPath); + + sqlite3 *sqlite = nullptr; + sqlite3_open_v2(dbPath, &sqlite, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_NOMUTEX | SQLITE_OPEN_SHAREDCACHE, NULL); + if (NULL == sqlite) + { + return; + } + + int ret = sqlite3_exec(sqlite, "create table scan_params (id integer primary key autoincrement, device_type text, " + "button_id integer, device_configs text, save_param text)", NULL, NULL, NULL); + if (0 != ret) + { + sqlite3_close(sqlite); + return; + } + + for (int i = 0; i < (int)m_vScanParams.size(); ++i) + { + std::string deviceConfigsStr = GetDeviceConfigsStr(m_vScanParams[i].deviceConfigs); + std::string saveParamStr = GetSaveParamStr(m_vScanParams[i].saveParam); + + char *sql = new char [1024 + deviceConfigsStr.size() + saveParamStr.size()]; + sprintf(sql, "insert into scan_params (device_type, button_id, device_configs, save_param) values ('%s', '%d', '%s', '%s')", + m_vScanParams[i].deviceType.c_str(), m_vScanParams[i].buttonId, deviceConfigsStr.c_str(), saveParamStr.c_str()); + sqlite3_exec(sqlite, sql, NULL, NULL, NULL); + } + + sqlite3_close(sqlite); } QString MainWindow::GetDesc(const std::vector &deviceConfigs) { - QString desc; + QString desc = "-"; return desc; } QString MainWindow::GetDesc(const SaveParam &saveParam) { - QString desc; - - desc += "["; - desc += tr("Save path:"); - desc += saveParam.m_savePath; - desc += "]"; - desc += " "; - desc += "["; - desc += tr("Image format:"); - desc += saveParam.m_fileNameExt; - desc += "]"; + QString desc = "-"; return desc; } @@ -318,12 +700,17 @@ void MainWindow::StartScan(unsigned int buttonId) m_aquireIntoMultiPageCount = 0; QDateTime dateTime = QDateTime::currentDateTime(); - if (m_aquireIntoSaveParam.m_isUseSubfolderByTime) + if (m_aquireIntoSaveParam.isUseSubfolderByTime) { - m_aquireIntoSaveParam.m_savePath = getStdFileName(m_aquireIntoSaveParam.m_savePath + dateTime.toString("yyyy-MM-dd") + "/"); +#ifdef HG_CMP_MSC + std::string newPath = m_aquireIntoSaveParam.savePath + dateTime.toString("yyyy-MM-dd").toStdString() + "\\"; +#else + std::string newPath = m_aquireIntoSaveParam.savePath + dateTime.toString("yyyy-MM-dd").toStdString() + "/"; +#endif + m_aquireIntoSaveParam.savePath = newPath; } - if (m_aquireIntoSaveParam.m_isOcr) + if (m_aquireIntoSaveParam.isOcr) { HGBase_CreateMsgPump(&m_ocrMsgPump); HGBase_OpenThread(ocrThreadFunc, this, &m_ocrThread); @@ -416,23 +803,23 @@ void MainWindow::AddManualScanParam() void MainWindow::SaveImage(HGImage image) { - if (m_aquireIntoSaveParam.m_isSaveAsMultiPage) + if (m_aquireIntoSaveParam.isSaveAsMultiPage) { if (nullptr == m_scanImgFmtWriter) { assert(m_scanFileName.isEmpty()); - HGBase_CreateDir(getStdString(m_aquireIntoSaveParam.m_savePath).c_str()); + HGBase_CreateDir(m_aquireIntoSaveParam.savePath.c_str()); QString scanFileName; while (1) { - scanFileName = m_aquireIntoSaveParam.m_savePath + m_aquireIntoSaveParam.m_fileNamePrefix + QString("%1.%2") - .arg(m_aquireIntoSaveParam.m_fileNameStartIndex, m_aquireIntoSaveParam.m_fileNameDigits, 10, QLatin1Char('0')) - .arg(m_aquireIntoSaveParam.m_fileNameExt); + scanFileName = QString::fromLocal8Bit(m_aquireIntoSaveParam.savePath.c_str()) + QString::fromLocal8Bit(m_aquireIntoSaveParam.fileNamePrefix.c_str()) + + QString("%1.%2").arg(m_aquireIntoSaveParam.fileNameStartIndex, m_aquireIntoSaveParam.fileNameDigits, 10, QLatin1Char('0')) + .arg(QString::fromLocal8Bit(m_aquireIntoSaveParam.fileNameExt.c_str())); QFileInfo fileInfo(scanFileName); if (fileInfo.isFile()) { - ++m_aquireIntoSaveParam.m_fileNameStartIndex; + ++m_aquireIntoSaveParam.fileNameStartIndex; } else { @@ -446,7 +833,7 @@ void MainWindow::SaveImage(HGImage image) fmtType = HGIMGFMT_TYPE_TIFF; } - HGImgFmt_OpenImageWriter(getStdString(getStdFileName(scanFileName)).c_str(), fmtType, &m_scanImgFmtWriter); + HGImgFmt_OpenImageWriter(scanFileName.toLocal8Bit().toStdString().c_str(), fmtType, &m_scanImgFmtWriter); if (nullptr != m_scanImgFmtWriter) { m_scanFileName = scanFileName; @@ -456,24 +843,24 @@ void MainWindow::SaveImage(HGImage image) if (nullptr != m_scanImgFmtWriter) { HGImgFmtSaveInfo saveInfo; - saveInfo.jpegQuality = (HGUInt)m_aquireIntoSaveParam.m_jpegQuality; + saveInfo.jpegQuality = (HGUInt)m_aquireIntoSaveParam.jpegQuality; saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_NONE; - saveInfo.tiffJpegQuality = (HGUInt)m_aquireIntoSaveParam.m_tiffQuality; + saveInfo.tiffJpegQuality = (HGUInt)m_aquireIntoSaveParam.tiffQuality; HGImageInfo imgInfo; HGBase_GetImageInfo(image, &imgInfo); if (HGBASE_IMGTYPE_BINARY == imgInfo.type) { - if (1 == m_aquireIntoSaveParam.m_tiffCompressionBW) + if (1 == m_aquireIntoSaveParam.tiffCompressionBW) saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW; - else if (2 == m_aquireIntoSaveParam.m_tiffCompressionBW) + else if (2 == m_aquireIntoSaveParam.tiffCompressionBW) saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_CCITTFAX4; } else { - if (1 == m_aquireIntoSaveParam.m_tiffCompression) + if (1 == m_aquireIntoSaveParam.tiffCompression) saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW; - else if (2 == m_aquireIntoSaveParam.m_tiffCompression) + else if (2 == m_aquireIntoSaveParam.tiffCompression) saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_JPEG; } @@ -487,7 +874,7 @@ void MainWindow::SaveImage(HGImage image) if (HGBASE_ERR_OK == HGImgFmt_SaveImageToWriter(m_scanImgFmtWriter, image, &saveInfo)) { ++m_aquireIntoMultiPageCount; - if (1 == m_aquireIntoSaveParam.m_multiPagesType && m_aquireIntoMultiPageCount == m_aquireIntoSaveParam.m_customMultiPages) + if (1 == m_aquireIntoSaveParam.multiPagesType && m_aquireIntoMultiPageCount == m_aquireIntoSaveParam.customMultiPages) { HGImgFmt_CloseImageWriter(m_scanImgFmtWriter); m_scanImgFmtWriter = nullptr; @@ -505,7 +892,7 @@ void MainWindow::SaveImage(HGImage image) } m_scanFileName.clear(); - ++m_aquireIntoSaveParam.m_fileNameStartIndex; + ++m_aquireIntoSaveParam.fileNameStartIndex; m_aquireIntoMultiPageCount = 0; } } @@ -515,8 +902,8 @@ void MainWindow::SaveImage(HGImage image) { assert(nullptr == m_scanImgFmtWriter); - QString savePath = m_aquireIntoSaveParam.m_savePath; - if (m_aquireIntoSaveParam.m_isUseSubfolderByBlankPages) + QString savePath = QString::fromLocal8Bit(m_aquireIntoSaveParam.savePath.c_str()); + if (m_aquireIntoSaveParam.isUseSubfolderByBlankPages) { HGBool isBlank = HGFALSE; HGImgProc_ImageBlankCheck(image, nullptr, &isBlank); @@ -536,10 +923,14 @@ void MainWindow::SaveImage(HGImage image) char batchDir[20]; sprintf(batchDir, "batch%d", m_aquireIntoBatchStartIndex); - savePath = getStdFileName(savePath + batchDir + "/"); +#ifdef HG_CMP_MSC + savePath = savePath + batchDir + "\\"; +#else + savePath = savePath + batchDir + "/"; +#endif } - if (m_aquireIntoSaveParam.m_isUseSubfolderByColor) + if (m_aquireIntoSaveParam.isUseSubfolderByColor) { QString colorModeName; HGImageInfo imgInfo; @@ -550,21 +941,24 @@ void MainWindow::SaveImage(HGImage image) colorModeName = tr("gray"); else colorModeName = tr("rgb"); - - savePath = getStdFileName(savePath + colorModeName + "/"); +#ifdef HG_CMP_MSC + savePath = savePath + colorModeName + "\\"; +#else + savePath = savePath + colorModeName + "/"; +#endif } - HGBase_CreateDir(getStdString(savePath).c_str()); + HGBase_CreateDir(savePath.toLocal8Bit().toStdString().c_str()); while (1) { - m_scanFileName = savePath + m_aquireIntoSaveParam.m_fileNamePrefix + QString("%1.%2") - .arg(m_aquireIntoSaveParam.m_fileNameStartIndex, m_aquireIntoSaveParam.m_fileNameDigits, 10, QLatin1Char('0')) - .arg(m_aquireIntoSaveParam.m_fileNameExt); + m_scanFileName = savePath + QString::fromLocal8Bit(m_aquireIntoSaveParam.fileNamePrefix.c_str()) + QString("%1.%2") + .arg(m_aquireIntoSaveParam.fileNameStartIndex, m_aquireIntoSaveParam.fileNameDigits, 10, QLatin1Char('0')) + .arg(QString::fromLocal8Bit(m_aquireIntoSaveParam.fileNameExt.c_str())); QFileInfo fileInfo(m_scanFileName); if (fileInfo.isFile()) { - ++m_aquireIntoSaveParam.m_fileNameStartIndex; + ++m_aquireIntoSaveParam.fileNameStartIndex; } else { @@ -573,24 +967,24 @@ void MainWindow::SaveImage(HGImage image) } HGImgFmtSaveInfo saveInfo; - saveInfo.jpegQuality = (HGUInt)m_aquireIntoSaveParam.m_jpegQuality; + saveInfo.jpegQuality = (HGUInt)m_aquireIntoSaveParam.jpegQuality; saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_NONE; - saveInfo.tiffJpegQuality = (HGUInt)m_aquireIntoSaveParam.m_tiffQuality; + saveInfo.tiffJpegQuality = (HGUInt)m_aquireIntoSaveParam.tiffQuality; HGImageInfo imgInfo; HGBase_GetImageInfo(image, &imgInfo); if (HGBASE_IMGTYPE_BINARY == imgInfo.type) { - if (1 == m_aquireIntoSaveParam.m_tiffCompressionBW) + if (1 == m_aquireIntoSaveParam.tiffCompressionBW) saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW; - else if (2 == m_aquireIntoSaveParam.m_tiffCompressionBW) + else if (2 == m_aquireIntoSaveParam.tiffCompressionBW) saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_CCITTFAX4; } else { - if (1 == m_aquireIntoSaveParam.m_tiffCompression) + if (1 == m_aquireIntoSaveParam.tiffCompression) saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW; - else if (2 == m_aquireIntoSaveParam.m_tiffCompression) + else if (2 == m_aquireIntoSaveParam.tiffCompression) saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_JPEG; } @@ -603,7 +997,7 @@ void MainWindow::SaveImage(HGImage image) saveInfo.tiffJpegQuality = 100; } - if (HGBASE_ERR_OK == HGImgFmt_SaveImage(image, fmtType, &saveInfo, getStdString(m_scanFileName).c_str())) + if (HGBASE_ERR_OK == HGImgFmt_SaveImage(image, fmtType, &saveInfo, m_scanFileName.toLocal8Bit().toStdString().c_str())) { if (nullptr != m_ocrMsgPump) { @@ -617,7 +1011,7 @@ void MainWindow::SaveImage(HGImage image) } } - ++m_aquireIntoSaveParam.m_fileNameStartIndex; + ++m_aquireIntoSaveParam.fileNameStartIndex; } m_scanFileName.clear(); @@ -676,8 +1070,8 @@ int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigne ++p->m_aquireIntoPageIndex; emit p->scanImage(p->m_aquireIntoPageIndex); - if ((1 == p->m_aquireIntoSaveParam.m_fileNameOddEventType && 1 != p->m_aquireIntoPageIndex % 2) - || (2 == p->m_aquireIntoSaveParam.m_fileNameOddEventType && 0 != p->m_aquireIntoPageIndex % 2)) + if ((1 == p->m_aquireIntoSaveParam.fileNameOddEvenType && 1 != p->m_aquireIntoPageIndex % 2) + || (2 == p->m_aquireIntoSaveParam.fileNameOddEvenType && 0 != p->m_aquireIntoPageIndex % 2)) { // 跳过 } @@ -841,7 +1235,7 @@ void MainWindow::on_scanFinish() } m_scanFileName.clear(); - ++m_aquireIntoSaveParam.m_fileNameStartIndex; + ++m_aquireIntoSaveParam.fileNameStartIndex; m_aquireIntoMultiPageCount = 0; } diff --git a/app/scantool/mainwindow.h b/app/scantool/mainwindow.h index f042d684..2046ac93 100644 --- a/app/scantool/mainwindow.h +++ b/app/scantool/mainwindow.h @@ -30,6 +30,10 @@ public: void StopScan(); private: + static std::vector MakeDeviceConfigs(const std::string &str); + static std::string GetDeviceConfigsStr(const std::vector &deviceConfigs); + static SaveParam MakeSaveParam(const std::string &str); + static std::string GetSaveParamStr(const SaveParam &saveParam); void LoadCfg(); void SaveCfg(); QString GetDesc(const std::vector &deviceConfigs); diff --git a/build2/qt/HGScanTool/HGScanTool.pro b/build2/qt/HGScanTool/HGScanTool.pro index ca1a1bb4..827fce4d 100644 --- a/build2/qt/HGScanTool/HGScanTool.pro +++ b/build2/qt/HGScanTool/HGScanTool.pro @@ -98,8 +98,6 @@ win32 { } SOURCES += \ - ../../../app/scantool/HGUIGlobal.cpp \ - ../../../app/scantool/app_cfg.cpp \ ../../../app/scantool/dialog_add.cpp \ ../../../app/scantool/dialog_scaninfo.cpp \ ../../../app/scantool/dialog_writesettings.cpp \ @@ -113,8 +111,6 @@ SOURCES += \ HEADERS += \ - ../../../app/scantool/HGUIGlobal.h \ - ../../../app/scantool/app_cfg.h \ ../../../app/scantool/dialog_add.h \ ../../../app/scantool/dialog_scaninfo.h \ ../../../app/scantool/dialog_writesettings.h \