解决扫描到对话框上保存多页PDF不正确的问题
This commit is contained in:
parent
6400b4db88
commit
10cb69079f
|
@ -1072,6 +1072,7 @@ void MainWindow::on_newImage(void *image)
|
|||
|
||||
if (HGBASE_ERR_OK == HGImgFmt_SaveImageToWriter(m_scanImgFmtWriter, (HGImage)image, &saveInfo))
|
||||
{
|
||||
++m_aquireIntoMultiPageCount;
|
||||
if (1 == m_aquireIntoSaveParam.m_multiPagesType && m_aquireIntoMultiPageCount == m_aquireIntoSaveParam.m_customMultiPages)
|
||||
{
|
||||
HGImgFmt_CloseImageWriter(m_scanImgFmtWriter);
|
||||
|
@ -1081,10 +1082,6 @@ void MainWindow::on_newImage(void *image)
|
|||
++m_aquireIntoSaveParam.m_fileNameStartIndex;
|
||||
m_aquireIntoMultiPageCount = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
++m_aquireIntoMultiPageCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1197,6 +1194,16 @@ void MainWindow::on_scanEvent(HGUInt event)
|
|||
{
|
||||
m_isScanning = false;
|
||||
updateActionStatus();
|
||||
|
||||
if (nullptr != m_scanImgFmtWriter)
|
||||
{
|
||||
HGImgFmt_CloseImageWriter(m_scanImgFmtWriter);
|
||||
m_scanImgFmtWriter = nullptr;
|
||||
emit post_new_image(m_scanFileName);
|
||||
m_scanFileName.clear();
|
||||
++m_aquireIntoSaveParam.m_fileNameStartIndex;
|
||||
m_aquireIntoMultiPageCount = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
|
|
|
@ -215,48 +215,7 @@ public:
|
|||
}
|
||||
static SANE_Status get_default_value(const SANEAPI* saneApi, SANE_Handle h, int i, void* def)
|
||||
{
|
||||
const SANE_Option_Descriptor* opt = saneApi->sane_get_option_descriptor_api(h, i);
|
||||
if(!opt)
|
||||
{
|
||||
return SANE_STATUS_INVAL;
|
||||
}
|
||||
|
||||
if(opt->type == SANE_TYPE_BOOL)
|
||||
{
|
||||
SANE_Bool v = SANE_TRUE;
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, &v, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_AUTO, NULL, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, def, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_VALUE, &v, NULL);
|
||||
}
|
||||
else if (opt->type == SANE_TYPE_INT)
|
||||
{
|
||||
SANE_Int v = 0;
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, &v, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_AUTO, NULL, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, def, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_VALUE, &v, NULL);
|
||||
}
|
||||
else if(opt->type == SANE_TYPE_FIXED)
|
||||
{
|
||||
SANE_Fixed v = 0;
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, &v, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_AUTO, NULL, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, def, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_VALUE, &v, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
char *buf = new char[opt->size + 4];
|
||||
memset(buf, 0, opt->size + 4);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, buf, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_AUTO, NULL, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, def, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_VALUE, buf, NULL);
|
||||
delete[] buf;
|
||||
}
|
||||
|
||||
return SANE_STATUS_GOOD;
|
||||
return saneApi->sane_control_option_api(h, i, (SANE_Action)100, def, NULL);
|
||||
}
|
||||
static SANE_Status set_custom_gamma(const SANEAPI* saneApi, SANE_Handle h, SANE_Gamma *gamma)
|
||||
{
|
||||
|
|
|
@ -215,48 +215,7 @@ public:
|
|||
}
|
||||
static SANE_Status get_default_value(const SANEAPI* saneApi, SANE_Handle h, int i, void* def)
|
||||
{
|
||||
const SANE_Option_Descriptor* opt = saneApi->sane_get_option_descriptor_api(h, i);
|
||||
if(!opt || opt->type == SANE_TYPE_BUTTON || opt->type == SANE_TYPE_GROUP)
|
||||
{
|
||||
return SANE_STATUS_INVAL;
|
||||
}
|
||||
|
||||
if(opt->type == SANE_TYPE_BOOL)
|
||||
{
|
||||
SANE_Bool v = SANE_TRUE;
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, &v, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_AUTO, NULL, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, def, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_VALUE, &v, NULL);
|
||||
}
|
||||
else if (opt->type == SANE_TYPE_INT)
|
||||
{
|
||||
SANE_Int v = 0;
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, &v, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_AUTO, NULL, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, def, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_VALUE, &v, NULL);
|
||||
}
|
||||
else if(opt->type == SANE_TYPE_FIXED)
|
||||
{
|
||||
SANE_Fixed v = 0;
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, &v, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_AUTO, NULL, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, def, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_VALUE, &v, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
char *buf = new char[opt->size + 4];
|
||||
memset(buf, 0, opt->size + 4);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, buf, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_AUTO, NULL, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_GET_VALUE, def, NULL);
|
||||
saneApi->sane_control_option_api(h, i, SANE_ACTION_SET_VALUE, buf, NULL);
|
||||
delete[] buf;
|
||||
}
|
||||
|
||||
return SANE_STATUS_GOOD;
|
||||
return saneApi->sane_control_option_api(h, i, (SANE_Action)100, def, NULL);
|
||||
}
|
||||
static SANE_Status set_custom_gamma(const SANEAPI* saneApi, SANE_Handle h, SANE_Gamma *gamma)
|
||||
{
|
||||
|
|
|
@ -122,7 +122,7 @@ void Dialog_progress_ui::on_image_recived()
|
|||
|
||||
void Dialog_progress_ui::on_image_uploaded()
|
||||
{
|
||||
ui->lineEdit_imgUploaded->setText(QString::number(imageUploadedCount++));
|
||||
ui->lineEdit_imgUploaded->setText(QString::number(++imageUploadedCount));
|
||||
}
|
||||
|
||||
void Dialog_progress_ui::FuncNotify(int event, void *msg, int flag)
|
||||
|
|
Loading…
Reference in New Issue