scantool集成扫描到设置功能

This commit is contained in:
luoliangyi 2024-04-24 11:57:56 +08:00
parent f53308118c
commit a0b6220cfe
25 changed files with 1662 additions and 460 deletions

View File

@ -0,0 +1,20 @@
#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
}

10
app/scantool/HGUIGlobal.h Normal file
View File

@ -0,0 +1,10 @@
#ifndef __HGUIGLOBAL_H__
#define __HGUIGLOBAL_H__
#include <QString>
QString getStdFileName(const QString &fileName);
std::string getStdString(const QString &str);
#endif /* __HGUIGLOBAL_H__ */

70
app/scantool/app_cfg.cpp Normal file
View File

@ -0,0 +1,70 @@
#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);
}

14
app/scantool/app_cfg.h Normal file
View File

@ -0,0 +1,14 @@
#ifndef __APP_CFG_H__
#define __APP_CFG_H__
#include <QString>
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__ */

View File

@ -25,7 +25,13 @@ Dialog_Add::Dialog_Add(class Dialog_Button *btnDlg)
m_scanParam.deviceType = DeviceType(ui->comboBoxDeviceType->currentIndex() + 1); m_scanParam.deviceType = DeviceType(ui->comboBoxDeviceType->currentIndex() + 1);
m_scanParam.buttonType = ButtonType(ui->comboBoxButtonType->currentIndex() + 1); m_scanParam.buttonType = ButtonType(ui->comboBoxButtonType->currentIndex() + 1);
m_scanParam.deviceConfig.clear(); m_scanParam.deviceConfig.clear();
m_scanParam.saveParam = Dialog_AquireInto::GetDefSaveParam(); m_scanParam.saveParam = Form_SaveParam::GetDefSaveParam();
m_formDeviceConfig = new Form_DeviceConfig(m_scanParam.deviceType, m_scanParam.deviceConfig, this);
m_formSaveParam = new Form_SaveParam(m_scanParam.saveParam, this);
ui->stackedWidget->addWidget(m_formDeviceConfig);
ui->stackedWidget->addWidget(m_formSaveParam);
ui->stackedWidget->setCurrentIndex(0);
} }
Dialog_Add::Dialog_Add(class Dialog_Button *btnDlg, const ScanParam &scanParam, int index) Dialog_Add::Dialog_Add(class Dialog_Button *btnDlg, const ScanParam &scanParam, int index)
@ -50,10 +56,18 @@ Dialog_Add::Dialog_Add(class Dialog_Button *btnDlg, const ScanParam &scanParam,
m_scanParam = scanParam; m_scanParam = scanParam;
ui->comboBoxDeviceType->setCurrentIndex(m_scanParam.deviceType - 1); ui->comboBoxDeviceType->setCurrentIndex(m_scanParam.deviceType - 1);
ui->comboBoxButtonType->setCurrentIndex(m_scanParam.buttonType - 1); ui->comboBoxButtonType->setCurrentIndex(m_scanParam.buttonType - 1);
m_formDeviceConfig = new Form_DeviceConfig(m_scanParam.deviceType, m_scanParam.deviceConfig, this);
m_formSaveParam = new Form_SaveParam(m_scanParam.saveParam, this);
ui->stackedWidget->addWidget(m_formDeviceConfig);
ui->stackedWidget->addWidget(m_formSaveParam);
ui->stackedWidget->setCurrentIndex(0);
} }
Dialog_Add::~Dialog_Add() Dialog_Add::~Dialog_Add()
{ {
delete m_formSaveParam;
delete m_formDeviceConfig;
delete ui; delete ui;
} }
@ -64,26 +78,19 @@ ScanParam Dialog_Add::GetScanParam()
void Dialog_Add::on_pushButtonDeviceConfig_clicked() void Dialog_Add::on_pushButtonDeviceConfig_clicked()
{ {
Dialog_Param dlg(m_scanParam.deviceType, m_scanParam.deviceConfig, this); ui->stackedWidget->setCurrentIndex(0);
if (dlg.exec())
{
m_scanParam.deviceConfig = dlg.GetDeviceConfig();
}
} }
void Dialog_Add::on_pushButtonSaveParam_clicked() void Dialog_Add::on_pushButtonSaveParam_clicked()
{ {
Dialog_AquireInto dlg(m_scanParam.saveParam, this); ui->stackedWidget->setCurrentIndex(1);
if (dlg.exec())
{
m_scanParam.saveParam = dlg.GetSaveParam();
}
} }
void Dialog_Add::on_comboBoxDeviceType_currentIndexChanged(int index) void Dialog_Add::on_comboBoxDeviceType_currentIndexChanged(int index)
{ {
m_scanParam.deviceType = DeviceType(index + 1); m_scanParam.deviceType = DeviceType(index + 1);
m_scanParam.deviceConfig.clear(); m_scanParam.deviceConfig.clear();
m_formDeviceConfig->Update(m_scanParam.deviceType, m_scanParam.deviceConfig);
} }
void Dialog_Add::on_comboBoxButtonType_currentIndexChanged(int index) void Dialog_Add::on_comboBoxButtonType_currentIndexChanged(int index)
@ -99,6 +106,8 @@ void Dialog_Add::on_pushButtonOK_clicked()
return; return;
} }
m_scanParam.deviceConfig = m_formDeviceConfig->GetDeviceConfig();
m_scanParam.saveParam = m_formSaveParam->GetSaveParam();
accept(); accept();
} }

View File

@ -2,8 +2,8 @@
#define DIALOG_ADD_H #define DIALOG_ADD_H
#include <QDialog> #include <QDialog>
#include "dialog_param.h" #include "form_deviceconfig.h"
#include "dialog_aquireinto.h" #include "form_saveparam.h"
namespace Ui { namespace Ui {
class Dialog_Add; class Dialog_Add;
@ -53,6 +53,8 @@ private:
class Dialog_Button *m_btnDlg; class Dialog_Button *m_btnDlg;
ScanParam m_scanParam; ScanParam m_scanParam;
int m_index; int m_index;
Form_DeviceConfig *m_formDeviceConfig;
Form_SaveParam *m_formSaveParam;
}; };
#endif // DIALOG_ADD_H #endif // DIALOG_ADD_H

View File

@ -6,111 +6,120 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>411</width> <width>752</width>
<height>310</height> <height>492</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Dialog</string> <string>Dialog</string>
</property> </property>
<widget class="QLabel" name="label"> <layout class="QVBoxLayout" name="verticalLayout_2">
<property name="geometry"> <item>
<rect> <layout class="QHBoxLayout" name="horizontalLayout_5">
<x>80</x> <item>
<y>110</y> <layout class="QVBoxLayout" name="verticalLayout">
<width>81</width> <item>
<height>21</height> <layout class="QHBoxLayout" name="horizontalLayout">
</rect> <item>
</property>
<property name="text">
<string>扫描按钮:</string>
</property>
</widget>
<widget class="QLabel" name="label_2"> <widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>80</x>
<y>70</y>
<width>81</width>
<height>21</height>
</rect>
</property>
<property name="text"> <property name="text">
<string>设备类型:</string> <string>设备类型:</string>
</property> </property>
</widget> </widget>
<widget class="QComboBox" name="comboBoxDeviceType"> </item>
<property name="geometry"> <item>
<rect> <widget class="QComboBox" name="comboBoxDeviceType"/>
<x>160</x> </item>
<y>70</y> </layout>
<width>171</width> </item>
<height>22</height> <item>
</rect> <layout class="QHBoxLayout" name="horizontalLayout_2">
</property> <item>
</widget> <widget class="QLabel" name="label">
<widget class="QComboBox" name="comboBoxButtonType"> <property name="text">
<property name="geometry"> <string>扫描按钮:</string>
<rect>
<x>160</x>
<y>110</y>
<width>171</width>
<height>22</height>
</rect>
</property> </property>
</widget> </widget>
</item>
<item>
<widget class="QComboBox" name="comboBoxButtonType"/>
</item>
</layout>
</item>
<item>
<widget class="QPushButton" name="pushButtonDeviceConfig"> <widget class="QPushButton" name="pushButtonDeviceConfig">
<property name="geometry">
<rect>
<x>80</x>
<y>160</y>
<width>111</width>
<height>31</height>
</rect>
</property>
<property name="text"> <property name="text">
<string>设备配置</string> <string>设备配置</string>
</property> </property>
</widget> </widget>
</item>
<item>
<widget class="QPushButton" name="pushButtonSaveParam"> <widget class="QPushButton" name="pushButtonSaveParam">
<property name="geometry">
<rect>
<x>220</x>
<y>160</y>
<width>111</width>
<height>31</height>
</rect>
</property>
<property name="text"> <property name="text">
<string>保存设置</string> <string>保存设置</string>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButtonOK"> </item>
<property name="geometry"> <item>
<rect> <spacer name="verticalSpacer">
<x>230</x> <property name="orientation">
<y>270</y> <enum>Qt::Vertical</enum>
<width>75</width>
<height>23</height>
</rect>
</property> </property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QStackedWidget" name="stackedWidget">
<property name="currentIndex">
<number>-1</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QPushButton" name="pushButtonOK">
<property name="text"> <property name="text">
<string>OK</string> <string>OK</string>
</property> </property>
</widget> </widget>
</item>
<item>
<widget class="QPushButton" name="pushButtonCancel"> <widget class="QPushButton" name="pushButtonCancel">
<property name="geometry">
<rect>
<x>320</x>
<y>270</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text"> <property name="text">
<string>Cancel</string> <string>Cancel</string>
</property> </property>
</widget> </widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

View File

@ -1,27 +0,0 @@
#include "dialog_aquireinto.h"
#include "ui_dialog_aquireinto.h"
Dialog_AquireInto::Dialog_AquireInto(const SaveParam &saveParam, QWidget *parent)
: QDialog(parent)
, ui(new Ui::Dialog_AquireInto)
{
ui->setupUi(this);
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
}
Dialog_AquireInto::~Dialog_AquireInto()
{
delete ui;
}
SaveParam Dialog_AquireInto::GetSaveParam()
{
SaveParam saveParam;
return saveParam;
}
SaveParam Dialog_AquireInto::GetDefSaveParam()
{
SaveParam saveParam;
return saveParam;
}

View File

@ -1,46 +0,0 @@
#ifndef DIALOG_AQUIREINTO_H
#define DIALOG_AQUIREINTO_H
#include <QDialog>
namespace Ui {
class Dialog_AquireInto;
}
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;
};
class Dialog_AquireInto : public QDialog
{
Q_OBJECT
public:
explicit Dialog_AquireInto(const SaveParam &saveParam, QWidget *parent = nullptr);
~Dialog_AquireInto();
SaveParam GetSaveParam();
static SaveParam GetDefSaveParam();
private:
Ui::Dialog_AquireInto *ui;
};
#endif // DIALOG_AQUIREINTO_H

View File

@ -1,68 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog_AquireInto</class>
<widget class="QDialog" name="Dialog_AquireInto">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>644</width>
<height>510</height>
</rect>
</property>
<property name="windowTitle">
<string>Save Param</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>290</x>
<y>470</y>
<width>341</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog_AquireInto</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog_AquireInto</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -6,62 +6,56 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>751</width> <width>1023</width>
<height>542</height> <height>677</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Button Setting</string> <string>Button Setting</string>
</property> </property>
<widget class="QTableWidget" name="tableWidget"> <layout class="QVBoxLayout" name="verticalLayout">
<property name="geometry"> <item>
<rect> <layout class="QHBoxLayout" name="horizontalLayout">
<x>10</x> <item>
<y>50</y> <spacer name="horizontalSpacer">
<width>731</width> <property name="orientation">
<height>481</height> <enum>Qt::Horizontal</enum>
</rect>
</property> </property>
</widget> <property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButtonAdd"> <widget class="QPushButton" name="pushButtonAdd">
<property name="geometry">
<rect>
<x>450</x>
<y>10</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="text"> <property name="text">
<string>Add</string> <string>Add</string>
</property> </property>
</widget> </widget>
</item>
<item>
<widget class="QPushButton" name="pushButtonModify"> <widget class="QPushButton" name="pushButtonModify">
<property name="geometry">
<rect>
<x>550</x>
<y>10</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="text"> <property name="text">
<string>Modify</string> <string>Modify</string>
</property> </property>
</widget> </widget>
</item>
<item>
<widget class="QPushButton" name="pushButtonRemove"> <widget class="QPushButton" name="pushButtonRemove">
<property name="geometry">
<rect>
<x>650</x>
<y>10</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="text"> <property name="text">
<string>Remove</string> <string>Remove</string>
</property> </property>
</widget> </widget>
</item>
</layout>
</item>
<item>
<widget class="QTableWidget" name="tableWidget"/>
</item>
</layout>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

View File

@ -1,21 +0,0 @@
#include "dialog_param.h"
#include "ui_dialog_param.h"
Dialog_Param::Dialog_Param(DeviceType deviceType, const std::string &deviceConfig, QWidget *parent)
: QDialog(parent)
, ui(new Ui::Dialog_Param)
{
ui->setupUi(this);
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
}
Dialog_Param::~Dialog_Param()
{
delete ui;
}
std::string Dialog_Param::GetDeviceConfig()
{
std::string deviceConfig;
return deviceConfig;
}

View File

@ -1,32 +0,0 @@
#ifndef DIALOG_PARAM_H
#define DIALOG_PARAM_H
#include <QDialog>
namespace Ui {
class Dialog_Param;
}
enum DeviceType
{
DeviceType_G100 = 1,
DeviceType_G200,
DeviceType_G300,
DeviceType_G400
};
class Dialog_Param : public QDialog
{
Q_OBJECT
public:
explicit Dialog_Param(DeviceType deviceType, const std::string &deviceConfig, QWidget *parent = nullptr);
~Dialog_Param();
std::string GetDeviceConfig();
private:
Ui::Dialog_Param *ui;
};
#endif // DIALOG_PARAM_H

View File

@ -1,68 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog_Param</class>
<widget class="QDialog" name="Dialog_Param">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>708</width>
<height>542</height>
</rect>
</property>
<property name="windowTitle">
<string>Device Config</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>350</x>
<y>500</y>
<width>341</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog_Param</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog_Param</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -6,36 +6,88 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>403</width> <width>316</width>
<height>239</height> <height>181</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Scan Setting</string> <string>Scan Setting</string>
</property> </property>
<widget class="QLabel" name="label"> <layout class="QVBoxLayout" name="verticalLayout">
<property name="geometry"> <item>
<rect> <spacer name="verticalSpacer">
<x>80</x> <property name="orientation">
<y>110</y> <enum>Qt::Vertical</enum>
<width>71</width>
<height>16</height>
</rect>
</property> </property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>62</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text"> <property name="text">
<string>设备列表:</string> <string>设备列表:</string>
</property> </property>
</widget> </widget>
</item>
<item>
<widget class="QComboBox" name="comboBox"> <widget class="QComboBox" name="comboBox">
<property name="geometry"> <property name="minimumSize">
<rect> <size>
<x>160</x> <width>171</width>
<y>100</y> <height>20</height>
<width>161</width> </size>
<height>31</height>
</rect>
</property> </property>
</widget> </widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>61</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

View File

@ -0,0 +1,73 @@
#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)
, ui(new Ui::Dialog_WriteSettings)
{
ui->setupUi(this);
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
//set visible
bool jpg_enable = (suffix_type == 0 || suffix_type == 7 || suffix_type == 8);
bool tif_enable = (suffix_type == 6);
ui->lab_tif_bw->setVisible(tif_enable);
ui->cbox_tif_bw->setVisible(tif_enable);
ui->lab_tif_color->setVisible(tif_enable);
ui->cbox_tif_color->setVisible(tif_enable);
ui->lab_spin_tif_jpgQuality->setVisible(tif_enable);
ui->spin_tif_quality->setVisible(tif_enable);
ui->lab_slider_jpg_low->setVisible(jpg_enable);
ui->lab_slider_jpg_high->setVisible(jpg_enable);
ui->slider_jpg_quality->setVisible(jpg_enable);
ui->lab_spin_jpgQuality->setVisible(jpg_enable);
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);
//set enable
ui->spin_tif_quality->setEnabled(ui->cbox_tif_color->currentIndex() == 2);
ui->spin_jpg_quality->setMinimumWidth(160);
ui->spin_tif_quality->setMinimumWidth(160);
}
Dialog_WriteSettings::~Dialog_WriteSettings()
{
delete ui;
}
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();
return writeParam;
}
void Dialog_WriteSettings::on_cbox_tif_color_currentIndexChanged(int index)
{
ui->spin_tif_quality->setEnabled(index == 2);
}
void Dialog_WriteSettings::on_slider_jpg_quality_valueChanged(int value)
{
ui->spin_jpg_quality->setValue(value);
}
void Dialog_WriteSettings::on_spin_jpg_quality_valueChanged(int arg1)
{
ui->slider_jpg_quality->setValue(arg1);
}
void Dialog_WriteSettings::on_buttonBox_accepted()
{
}

View File

@ -0,0 +1,42 @@
#ifndef DIALOG_WRITESETTINGS_H
#define DIALOG_WRITESETTINGS_H
#include <QDialog>
class QSettings;
namespace Ui {
class Dialog_WriteSettings;
}
struct WriteParam
{
int m_jpegQuality;
int m_tiffCompressionBW;
int m_tiffCompression;
int m_tiffQuality;
};
class Dialog_WriteSettings : public QDialog
{
Q_OBJECT
public:
explicit Dialog_WriteSettings(int suffix_type, const WriteParam &writeParam, QWidget *parent = nullptr);
~Dialog_WriteSettings();
WriteParam GetWriteParam();
private slots:
void on_cbox_tif_color_currentIndexChanged(int index);
void on_slider_jpg_quality_valueChanged(int value);
void on_spin_jpg_quality_valueChanged(int arg1);
void on_buttonBox_accepted();
private:
Ui::Dialog_WriteSettings *ui;
};
#endif // DIALOG_WRITESETTINGS_H

View File

@ -0,0 +1,335 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog_WriteSettings</class>
<widget class="QDialog" name="Dialog_WriteSettings">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>454</width>
<height>178</height>
</rect>
</property>
<property name="windowTitle">
<string>Write Settings</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="lab_tif_bw">
<property name="minimumSize">
<size>
<width>115</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Compression for black&amp;white picture</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cbox_tif_bw">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string>None</string>
</property>
</item>
<item>
<property name="text">
<string>LZW</string>
</property>
</item>
<item>
<property name="text">
<string>CCITT G4</string>
</property>
</item>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="lab_tif_color">
<property name="minimumSize">
<size>
<width>115</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Compression for color picture</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cbox_tif_color">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string>None</string>
</property>
</item>
<item>
<property name="text">
<string>LZW</string>
</property>
</item>
<item>
<property name="text">
<string>JPEG</string>
</property>
</item>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,1,0,0,0">
<property name="spacing">
<number>2</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lab_jpg_quality">
<property name="text">
<string>Quality</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="lab_slider_jpg_low">
<property name="text">
<string>Lowest</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lab_slider_jpg_high">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string>Best</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QSlider" name="slider_jpg_quality">
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>80</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="invertedAppearance">
<bool>false</bool>
</property>
<property name="tickPosition">
<enum>QSlider::TicksAbove</enum>
</property>
<property name="tickInterval">
<number>10</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="lab_spin_jpgQuality">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spin_jpg_quality">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>80</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QLabel" name="lab_spin_tif_jpgQuality">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spin_tif_quality">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>80</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog_WriteSettings</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog_WriteSettings</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -0,0 +1,29 @@
#include "form_deviceconfig.h"
#include "ui_form_deviceconfig.h"
Form_DeviceConfig::Form_DeviceConfig(DeviceType deviceType, const std::string &deviceConfig, QWidget *parent)
: QWidget(parent)
, ui(new Ui::Form_DeviceConfig)
{
ui->setupUi(this);
Update(deviceType, deviceConfig);
}
Form_DeviceConfig::~Form_DeviceConfig()
{
delete ui;
}
void Form_DeviceConfig::Update(DeviceType deviceType, const std::string &deviceConfig)
{
// TODO 展示界面
}
std::string Form_DeviceConfig::GetDeviceConfig()
{
std::string deviceConfig;
// 从界面获取配置
return deviceConfig;
}

View File

@ -0,0 +1,33 @@
#ifndef FORM_DEVICECONFIG_H
#define FORM_DEVICECONFIG_H
#include <QWidget>
namespace Ui {
class Form_DeviceConfig;
}
enum DeviceType
{
DeviceType_G100 = 1,
DeviceType_G200,
DeviceType_G300,
DeviceType_G400
};
class Form_DeviceConfig : public QWidget
{
Q_OBJECT
public:
explicit Form_DeviceConfig(DeviceType deviceType, const std::string &deviceConfig, QWidget *parent = nullptr);
~Form_DeviceConfig();
void Update(DeviceType deviceType, const std::string &deviceConfig);
std::string GetDeviceConfig();
private:
Ui::Form_DeviceConfig *ui;
};
#endif // FORM_DEVICECONFIG_H

View File

@ -0,0 +1,21 @@
<ui version="4.0">
<author/>
<comment/>
<exportmacro/>
<class>Form_DeviceConfig</class>
<widget name="Form_DeviceConfig" class="QWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
</widget>
<pixmapfunction/>
<connections/>
</ui>

View File

@ -0,0 +1,276 @@
#include "form_saveparam.h"
#include "ui_form_saveparam.h"
#include <QFileDialog>
#include "base/HGDef.h"
#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)
, ui(new Ui::Form_SaveParam)
{
ui->setupUi(this);
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->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->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->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')));
ui->btn_option->setEnabled(0 == ui->cbox_format->currentIndex() || 6 == ui->cbox_format->currentIndex() || 7 == ui->cbox_format->currentIndex() ||
8 == ui->cbox_format->currentIndex());
ui->cbtn_multiFile->setEnabled(ui->cbox_format->currentIndex() > 5 && ui->cbox_format->currentIndex() < 12);
ui->radio_multiAll->setEnabled(ui->cbtn_multiFile->isChecked());
ui->radio_multiCustom->setEnabled(ui->cbtn_multiFile->isChecked());
ui->spinBox_multiPages->setEnabled(ui->cbtn_multiFile->isChecked() ? ui->radio_multiCustom->isChecked() : false);
ui->spin_index->setFixedWidth(160);
ui->cbox_digit->setFixedWidth(80);
#if defined (x86_64) || defined (loongarch64)
ui->cbox_format->removeItem(11);
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;
}
Form_SaveParam::~Form_SaveParam()
{
delete ui;
}
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();
QString format = "jpg";
switch (ui->cbox_format->currentIndex())
{
case 1:
format = "bmp";
break;
case 2:
format = "png";
break;
case 3:
format = "ppm";
break;
case 4:
format = "pgm";
break;
case 5:
format = "pbm";
break;
case 6:
format = "tif";
break;
case 7:
format = "pdf";
break;
case 8:
format = "ofd";
break;
case 9:
format = "gif";
break;
case 10:
format = "pdf";
break;
case 11:
format = "ofd";
break;
default:
break;
}
saveParam.m_fileNameExt = format;
saveParam.m_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();
return saveParam;
}
SaveParam Form_SaveParam::GetDefSaveParam()
{
HGChar aquireIntoPath[512];
HGBase_GetDocumentsPath(aquireIntoPath, 512);
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");
#else
saveParam.m_fileNamePrefix = QString("HGScan");
#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;
return saveParam;
}
int Form_SaveParam::getFormatIndex(const QString &ext, bool ocr)
{
if (ext == "bmp")
return 1;
else if (ext == "png")
return 2;
else if (ext == "ppm")
return 3;
else if (ext == "pgm")
return 4;
else if (ext == "pbm")
return 5;
else if (ext == "tif")
return 6;
else if (ext == "pdf")
return !ocr ? 7 : 10;
else if (ext == "ofd")
return !ocr ? 8 : 11;
else if (ext == "gif")
return 9;
return 0;
}
void Form_SaveParam::on_btn_directory_clicked()
{
QString save_dir = QFileDialog::getExistingDirectory(this, tr("Browse directory"), "");
if (!save_dir.isEmpty())
{
if (save_dir[save_dir.size() - 1] != '/')
save_dir += "/";
ui->lineEdit_directory->setText(getStdFileName(save_dir));
}
}
void Form_SaveParam::on_btn_option_clicked()
{
Dialog_WriteSettings dlg(ui->cbox_format->currentIndex(), m_writeParam, this);
if (dlg.exec())
{
m_writeParam = dlg.GetWriteParam();
}
}
void Form_SaveParam::on_cbox_format_currentIndexChanged(int index)
{
ui->cbtn_multiFile->setEnabled(index > 5 && index < 12);
if (index < 6 || index >= 10 )
ui->cbtn_multiFile->setChecked(false);
ui->btn_option->setEnabled(0 == index || 6 == index || 7 == index || 8 == index);
}
void Form_SaveParam::on_lineEdit_directory_textChanged(const QString& arg1)
{
}
void Form_SaveParam::on_cbox_digit_currentIndexChanged(int index)
{
(void)index;
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')));
}
void Form_SaveParam::on_cbtn_multiFile_toggled(bool checked)
{
if (checked)
{
ui->spinBox_multiPages->setEnabled(ui->radio_multiCustom->isChecked());
}
else
{
ui->spinBox_multiPages->setEnabled(false);
}
ui->radio_multiAll->setEnabled(checked);
ui->radio_multiCustom->setEnabled(checked);
}
void Form_SaveParam::on_radio_multiCustom_toggled(bool checked)
{
ui->spinBox_multiPages->setEnabled(checked && ui->cbtn_multiFile->isEnabled());
}
void Form_SaveParam::on_lineEdit_fileName_textChanged(const QString &arg1)
{
(void)arg1;
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')));
}
void Form_SaveParam::on_spin_index_valueChanged(int arg1)
{
(void)arg1;
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')));
}

View File

@ -0,0 +1,70 @@
#ifndef FORM_SAVEPARAM_H
#define FORM_SAVEPARAM_H
#include <QWidget>
#include "dialog_writesettings.h"
namespace Ui {
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;
};
class Form_SaveParam : public QWidget
{
Q_OBJECT
public:
explicit Form_SaveParam(const SaveParam &saveParam, QWidget *parent = nullptr);
~Form_SaveParam();
SaveParam GetSaveParam();
static SaveParam GetDefSaveParam();
private:
int getFormatIndex(const QString &ext, bool ocr);
private slots:
void on_btn_directory_clicked();
void on_btn_option_clicked();
void on_cbox_format_currentIndexChanged(int index);
void on_lineEdit_directory_textChanged(const QString& arg1);
void on_cbox_digit_currentIndexChanged(int index);
void on_cbtn_multiFile_toggled(bool checked);
void on_radio_multiCustom_toggled(bool checked);
void on_lineEdit_fileName_textChanged(const QString &arg1);
void on_spin_index_valueChanged(int arg1);
private:
Ui::Form_SaveParam *ui;
WriteParam m_writeParam;
};
#endif // FORM_SAVEPARAM_H

View File

@ -0,0 +1,395 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form_SaveParam</class>
<widget class="QWidget" name="Form_SaveParam">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>736</width>
<height>380</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="windowTitle">
<string>Batch scanning</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_11">
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="lab_directory">
<property name="text">
<string>Directory</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_directory">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="btn_directory">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="cbtn_subFolder">
<property name="text">
<string>Use subfolder based on current date</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbtn_subFolderByBlank">
<property name="text">
<string>Use subfolder based on blank pages</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbtn_subFolderByColor">
<property name="text">
<string>Use subfolder based on image color type</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="lab_fileName">
<property name="text">
<string>File name</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_fileName"/>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>File name index</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="lab_startIndex">
<property name="text">
<string>Start index</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spin_index">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximum">
<number>99999</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="lab_digit">
<property name="text">
<string>Digit(s)</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cbox_digit">
<property name="currentIndex">
<number>2</number>
</property>
<item>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>2</string>
</property>
</item>
<item>
<property name="text">
<string>3</string>
</property>
</item>
<item>
<property name="text">
<string>4</string>
</property>
</item>
<item>
<property name="text">
<string>5</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QLabel" name="lab_digitExp">
<property name="text">
<string>e.g. 'HGScan001'</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QComboBox" name="cbox_evenOdd">
<item>
<property name="text">
<string>Even and odd pages</string>
</property>
</item>
<item>
<property name="text">
<string>Odd pages</string>
</property>
</item>
<item>
<property name="text">
<string>Even pages</string>
</property>
</item>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="lab_format">
<property name="text">
<string>Format</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cbox_format">
<item>
<property name="text">
<string>JPG - JPG / JFIF(*.jpg)</string>
</property>
</item>
<item>
<property name="text">
<string>BMP - Windows Bitmap(*.bmp)</string>
</property>
</item>
<item>
<property name="text">
<string>PNG - Portable Network Graphics(*.png)</string>
</property>
</item>
<item>
<property name="text">
<string>PPM - Portable Pixmap(*.ppm)</string>
</property>
</item>
<item>
<property name="text">
<string>PGM - Portable Greymap(*.pgm)</string>
</property>
</item>
<item>
<property name="text">
<string>PBM - Portable Bitmap(*.pbm)</string>
</property>
</item>
<item>
<property name="text">
<string>TIF - TIFF Revision 6(*.tif)</string>
</property>
</item>
<item>
<property name="text">
<string>PDF - Portable Document Format(*.pdf)</string>
</property>
</item>
<item>
<property name="text">
<string>OFD - Open Fixed-layout Document(*.ofd)</string>
</property>
</item>
<item>
<property name="text">
<string>GIF - Graphics Interchange Format(*.gif)</string>
</property>
</item>
<item>
<property name="text">
<string>OCR-&gt;PDF - Portable Document Format(*.pdf)</string>
</property>
</item>
<item>
<property name="text">
<string>OCR-&gt;OFD - Open Fixed-layout Document(*.ofd)</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_option">
<property name="text">
<string>Compression option</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="cbtn_multiFile">
<property name="text">
<string>Save as multipages (TIFF/PDF/OFD/GIF)</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="radio_multiAll">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>所有页</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QRadioButton" name="radio_multiCustom">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>用户自定义页数</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="spinBox_multiPages">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -52,7 +52,8 @@ win32 {
LIBS += -L$$PWD/../../../../release/win/$${MY_ARCH}/OEM/$${OEM_NAME} LIBS += -L$$PWD/../../../../release/win/$${MY_ARCH}/OEM/$${OEM_NAME}
} }
INCLUDEPATH += $$PWD/../../../modules/base INCLUDEPATH += $$PWD/../../../modules
INCLUDEPATH += $$PWD/../../../utility
INCLUDEPATH += $$PWD/../../../third_party/sqlite INCLUDEPATH += $$PWD/../../../third_party/sqlite
INCLUDEPATH += $$PWD/../../../third_party/json INCLUDEPATH += $$PWD/../../../third_party/json
@ -94,33 +95,42 @@ win32 {
} }
SOURCES += \ SOURCES += \
../../../app/scantool/HGUIGlobal.cpp \
../../../app/scantool/app_cfg.cpp \
../../../app/scantool/dialog_add.cpp \ ../../../app/scantool/dialog_add.cpp \
../../../app/scantool/dialog_aquireinto.cpp \
../../../app/scantool/dialog_button.cpp \ ../../../app/scantool/dialog_button.cpp \
../../../app/scantool/dialog_param.cpp \
../../../app/scantool/dialog_scan.cpp \ ../../../app/scantool/dialog_scan.cpp \
../../../app/scantool/dialog_writesettings.cpp \
../../../app/scantool/form_deviceconfig.cpp \
../../../app/scantool/form_saveparam.cpp \
../../../app/scantool/main.cpp \ ../../../app/scantool/main.cpp \
../../../app/scantool/mainwindow.cpp \ ../../../app/scantool/mainwindow.cpp \
../../../third_party/json/cJSON.c \ ../../../third_party/json/cJSON.c \
../../../third_party/sqlite/sqlite3.c ../../../third_party/sqlite/sqlite3.c \
../../../utility/HGString.cpp
HEADERS += \ HEADERS += \
../../../app/scantool/HGUIGlobal.h \
../../../app/scantool/app_cfg.h \
../../../app/scantool/dialog_add.h \ ../../../app/scantool/dialog_add.h \
../../../app/scantool/dialog_aquireinto.h \
../../../app/scantool/dialog_button.h \ ../../../app/scantool/dialog_button.h \
../../../app/scantool/dialog_param.h \
../../../app/scantool/dialog_scan.h \ ../../../app/scantool/dialog_scan.h \
../../../app/scantool/dialog_writesettings.h \
../../../app/scantool/form_deviceconfig.h \
../../../app/scantool/form_saveparam.h \
../../../app/scantool/mainwindow.h \ \ ../../../app/scantool/mainwindow.h \ \
../../../third_party/json/cJSON.h \ ../../../third_party/json/cJSON.h \
../../../third_party/sqlite/sqlite3.h ../../../third_party/sqlite/sqlite3.h \
../../../utility/HGString.h
FORMS += \ FORMS += \
../../../app/scantool/dialog_add.ui \ ../../../app/scantool/dialog_add.ui \
../../../app/scantool/dialog_aquireinto.ui \
../../../app/scantool/dialog_button.ui \ ../../../app/scantool/dialog_button.ui \
../../../app/scantool/dialog_param.ui \
../../../app/scantool/dialog_scan.ui \ ../../../app/scantool/dialog_scan.ui \
../../../app/scantool/dialog_writesettings.ui \
../../../app/scantool/form_deviceconfig.ui \
../../../app/scantool/form_saveparam.ui \
../../../app/scantool/mainwindow.ui ../../../app/scantool/mainwindow.ui
RESOURCES += \ RESOURCES += \