twain3/ui/scansettingdialog.h

139 lines
4.0 KiB
C++

#ifndef SCANSETTINGDIALOG_H
#define SCANSETTINGDIALOG_H
#include <QDialog>
#include <QListWidget>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonParseError>
#include <QJsonValue>
#include <QString>
#include <QStandardPaths>
#include <QMap>
#include "JsonConfig.h"
#ifdef _WIN32
#include "twglue.hpp"
#endif
#include <memory>
namespace Ui {
class ScanSettingDialog;
};
class ScanSettingDialog : public QDialog
{
Q_OBJECT
public:
explicit ScanSettingDialog(Func twG, int uiMode,std::string model, QWidget *parent = nullptr);
~ScanSettingDialog();
void EnableID_OKorID_Cancel(bool enable);
int getScanCount();
json defaultjson;
std::function<void()> enableparent;
enum UIMode {
showUI,
UIonly
};
protected:
void closeEvent(QCloseEvent* e) override;
void keyPressEvent(QKeyEvent* e) override;
void showEvent(QShowEvent* event) override;
private slots:
void on_pbtn_help_clicked();
void on_pbtn_about_clicked();
void on_pbtn_default_clicked();
void on_pbtn_ok_clicked();
void on_pbtn_cancel_clicked();
void on_pBtn_usrSetting_app_clicked();
void on_pBtn_usrSetting_add_clicked();
void on_pBtn_usrSetting_del_clicked();
void on_pBtn_usrSetting_clr_clicked();
void on_pBtn_usrSetting_inp_clicked();
void on_pBtn_usrSetting_exp_clicked();
void on_pBtn_usrSetting_save_clicked();
void on_listWidget_itemSelectionChanged();
void on_listWidget_currentRowChanged(int currentRow);
void on_listWidget_itemDoubleClicked(QListWidgetItem *item);
void on_cbox_colorMode_currentIndexChanged(int index);
void on_cbtn_multiStream_stateChanged(int arg1);
void on_cbox_multiStream_currentIndexChanged(int index);
void on_cbox_paperSize_currentIndexChanged(int index);
void on_cbtn_sizeAreaSwitch_stateChanged(int arg1);
void on_cbox_scanPage_currentIndexChanged(int index);
void on_cbtn_imgSplit_clicked();
void on_cbox_resolution_currentIndexChanged(int index);
void on_cbtn_colorLineSwitch_stateChanged(int arg1);
void on_cbtn_deHole_stateChanged(int arg1);
void on_cbtn_sharAndBlur_stateChanged(int arg1);
void on_rbtn_pageNum_toggled(bool checked);
void on_cbox_pageDirection_currentIndexChanged(int index);
void on_cbtn_skewCheck_stateChanged(int arg1);
void on_cbtn_jpgPercent_stateChanged(int arg1);
void on_gbox_ocr_toggled(bool arg1);
void on_Slider_brightness_valueChanged(int value);
void on_spin_brightness_valueChanged(int arg1);
void on_Slider_contrast_valueChanged(int value);
void on_spin_contrast_valueChanged(int arg1);
void on_Slider_gamma_valueChanged(int value);
void on_dSpin_gamma_valueChanged(double arg1);
void on_Slider_deHole_valueChanged(int value);
void on_Slider_skewCheck_valueChanged(int value);
void on_Slider_jpgPercent_valueChanged(int value);
void showColorLineSetDialog();
void showCutDialog();
void on_cbtn_deBlack_clicked(bool checked);
private:
void add_usrSetting(QString name);
void delete_json(QString name);
QStringList check_json(QString dirPath);
json loadjson(QString filename);
void load_jsonList(QString filename);
void save_jsonList(QString filename, GScanCap* param_ptr);
void configUI_fromConfigParam(std::string defaultoruser);
//GScanCap getParam_fromUI();
void getParam_fromUI();
void save_json(QString path);
GScanCap load_settingjson();
void init_globalLogic();
void init_funcVisible();
void load_userSettingList();
private:
Ui::ScanSettingDialog *ui;
QString m_jsonDirPath;
QString m_appDirPath;
QString m_sysDirPath;
QString filePath;
Func m_twG;
QVector<QList<QPoint>> rgbKeyPoint;
QList<QPoint> grayKeyPoint;
uchar RGBLineTable[768];
uchar greyLineTable[256];
QRectF sizeAreaRect;
json param;
std::string Model;
std::map<std::string, int> support_paper;
int UImode;
#if defined (HGVERSION)
QString tmppath= QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/HuaGoScan/tmp.txt";
#else
QString tmppath= QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/LANXUMSCAN/tmp.txt";
#endif
QMap<QVector<int>, QRectF> m_map;
};
#endif // SCANSETTINGDIALOG_H