调整三方twain界面参数配置冲突

This commit is contained in:
yangjiaxuan 2023-05-04 18:14:06 +08:00
parent e7d9e3d0d0
commit c32f42c3c6
4 changed files with 16 additions and 9 deletions

View File

@ -1,4 +1,4 @@
#ifndef DEVICE_MENU_H #ifndef DEVICE_MENU_H
#define DEVICE_MENU_H #define DEVICE_MENU_H
#include <QMenu> #include <QMenu>
@ -354,11 +354,13 @@ public:
{ {
return applied_scheme_; return applied_scheme_;
} }
int open_scanner(const SANEAPI* saneAPI, SANE_Handle handle, const char* scanner_name, const char* scheme = nullptr) int open_scanner(const SANEAPI* saneAPI, SANE_Handle handle, const char* scanner_name, bool apply, const char* scheme = nullptr)
{ {
handle_ = handle; handle_ = handle;
opened_scanner_ = scanner_name; opened_scanner_ = scanner_name;
apply_scheme(saneAPI, scheme); if (apply)
apply_scheme(saneAPI, scheme);
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
int close_scanner(void) int close_scanner(void)

View File

@ -83,9 +83,12 @@ void Dialog_progress_ui::FuncNotify(int event, void *msg, int flag)
case SANE_EVENT_SCAN_FINISHED: case SANE_EVENT_SCAN_FINISHED:
{ {
if (!flag)
{
emit p->scan_finish();
}
QString finishInfo((char*)msg); QString finishInfo((char*)msg);
emit p->scan_status(finishInfo, false); emit p->scan_status(finishInfo, false);
emit p->scan_finish();
} }
break; break;
} }

View File

@ -21,6 +21,8 @@ hg_settingdialog::hg_settingdialog(SANE_Handle handle, const SANEAPI* saneApi, b
, save_(false) , save_(false)
, btn_cut_area_(nullptr), btn_gamma_(nullptr), clicked_gamma_(false) , btn_cut_area_(nullptr), btn_gamma_(nullptr), clicked_gamma_(false)
, custom_area_lable_(nullptr), comb_(nullptr) , custom_area_lable_(nullptr), comb_(nullptr)
, m_devHandle(handle)
, m_showScan(showScan)
{ {
HGChar cfgpath[512] = {0}; HGChar cfgpath[512] = {0};
QString old; QString old;
@ -32,8 +34,8 @@ hg_settingdialog::hg_settingdialog(SANE_Handle handle, const SANEAPI* saneApi, b
dev_que::update_old_cfg(old.toStdString().c_str()); dev_que::update_old_cfg(old.toStdString().c_str());
dev_que_.add_scanner(devName); dev_que_.add_scanner(devName);
dev_que_.open_scanner(saneApi, handle, devName); dev_que_.open_scanner(saneApi, handle, devName, false);
std::string n(dev_que_.opened_scanner_name()); std::string n(dev_que_.opened_scanner_name());
for(int i = 0; i < dev_que_.scanners(); ++i) for(int i = 0; i < dev_que_.scanners(); ++i)
{ {
@ -44,6 +46,7 @@ hg_settingdialog::hg_settingdialog(SANE_Handle handle, const SANEAPI* saneApi, b
break; break;
} }
} }
cur_scheme_ = cur_cfg_->get_scheme(); cur_scheme_ = cur_cfg_->get_scheme();
if(!cur_scheme_) if(!cur_scheme_)
cur_scheme_ = new gb::sane_config_schm(); cur_scheme_ = new gb::sane_config_schm();
@ -71,8 +74,6 @@ hg_settingdialog::hg_settingdialog(SANE_Handle handle, const SANEAPI* saneApi, b
m_gammaData.table[i] = i & 0x0ff; m_gammaData.table[i] = i & 0x0ff;
memcpy(&m_saneAPI, saneApi, sizeof(SANEAPI)); memcpy(&m_saneAPI, saneApi, sizeof(SANEAPI));
m_devHandle = handle;
m_showScan = showScan;
m_closeButton = closeButtonCancel; m_closeButton = closeButtonCancel;
initUi(); initUi();
@ -166,6 +167,7 @@ void hg_settingdialog::updateOpt()
char *init = (char*)malloc(opt->size * 2 + 4); char *init = (char*)malloc(opt->size * 2 + 4);
m_saneAPI.sane_control_option_api(m_devHandle, i, SANE_ACTION_GET_VALUE, init, &method); m_saneAPI.sane_control_option_api(m_devHandle, i, SANE_ACTION_GET_VALUE, init, &method);
QString str = QString::fromStdString(init);
m_list_defaultOptions.append(QPair<const void*, QVariant>(opt, QVariant(QString::fromStdString(init)))); m_list_defaultOptions.append(QPair<const void*, QVariant>(opt, QVariant(QString::fromStdString(init))));
if(first) if(first)

View File

@ -53,7 +53,7 @@ char *apply_current_config(const char *dev_name, SANE_Handle device, LPSANEAPI a
dev_que::update_old_cfg(old.toStdString().c_str()); dev_que::update_old_cfg(old.toStdString().c_str());
devQue.add_scanner(dev_name); devQue.add_scanner(dev_name);
devQue.open_scanner(api, device, dev_name); devQue.open_scanner(api, device, dev_name, true);
std::string n(devQue.opened_scanner_name()); std::string n(devQue.opened_scanner_name());
for(int i = 0; i < devQue.scanners(); ++i) for(int i = 0; i < devQue.scanners(); ++i)