#include "dialog_aquireinto.h" #include "ui_dialog_aquireinto.h" #include "dialog_writesettings.h" #include #include #include #include #include "base/HGDef.h" #include "base/HGInc.h" #include "base/HGUtility.h" #include "HGUIGlobal.h" #include "HGString.h" #include "app_cfg.h" Dialog_AquireInto::Dialog_AquireInto(QWidget* parent) : QDialog(parent), ui(new Ui::Dialog_AquireInto) { ui->setupUi(this); QRegExp rx("[^\\\\/:*?\"<>|]+$"); ui->lineEdit_fileName->setValidator(new QRegExpValidator(rx, this)); 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()); ui->lineEdit_directory->setText(getCfgValue("aquire", "aquireIntoPath", filePath)); ui->cbtn_subFolder->setChecked(getCfgValue("aquire", "subFolderByTime", false)); ui->cbtn_subFolderByBlank->setChecked(getCfgValue("aquire", "subFolderByBlank", false)); ui->cbtn_subFolderByColor->setChecked(getCfgValue("aquire", "subFolderByColor", false)); #if defined(OEM_HANWANG) ui->lineEdit_fileName->setText(getCfgValue("aquire", "namePrefix", QString("HWScan"))); #elif defined(OEM_LISICHENG) ui->lineEdit_fileName->setText(getCfgValue("aquire", "namePrefix", QString("LXScan"))); #elif defined(OEM_CANGTIAN) ui->lineEdit_fileName->setText(getCfgValue("aquire", "namePrefix", QString("CTSScan"))); #else ui->lineEdit_fileName->setText(getCfgValue("aquire", "namePrefix", QString("HGScan"))); #endif #if defined(OEM_LISICHENG) || defined(OEM_CANGTIAN) || defined(x86_64) ui->cbox_format->removeItem(11); ui->cbox_format->removeItem(10); #endif ui->spin_index->setValue(getCfgValue("aquire", "startIndex", 1)); ui->cbox_digit->setCurrentIndex(getCfgValue("aquire", "digit", 2)); ui->cbox_evenOdd->setCurrentIndex(getCfgValue("aquire", "evenOdd", 0)); int format = getCfgValue("aquire", "format", 0); if (format > 9) format = 0; ui->cbox_format->setCurrentIndex(format); ui->cbtn_multiFile->setChecked(format > 5 ? getCfgValue("aquire", "multiFile", false) : false); ui->radio_multiAll->setChecked(getCfgValue("aquire", "multiAll", true)); ui->radio_multiCustom->setChecked(getCfgValue("aquire", "multiCustom", false)); ui->spinBox_multiPages->setValue(getCfgValue("aquire", "multiPages", 1)); 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()); ui->cbtn_multiFile->setEnabled(ui->cbox_format->currentIndex() > 5 && ui->cbox_format->currentIndex() < 10); //Ocr does not export multiple pages 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->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!ui->lineEdit_directory->text().isEmpty()); ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("ok")); ui->buttonBox->button(QDialogButtonBox::Cancel)->setText(tr("cancel")); ui->spin_index->setFixedWidth(160); ui->cbox_digit->setFixedWidth(80); } Dialog_AquireInto::~Dialog_AquireInto() { delete ui; } AquireIntoSaveParam Dialog_AquireInto::getSaveParam() { AquireIntoSaveParam param; param.m_savePath = ui->lineEdit_directory->text(); param.m_isUseSubfolderByTime = ui->cbtn_subFolder->isChecked(); param.m_isUseSubfolderByBlankPages = ui->cbtn_subFolderByBlank->isChecked(); param.m_isUseSubfolderByColor = ui->cbtn_subFolderByColor->isChecked(); param.m_jpegQuality = getCfgValue("saveParam", "jpegQuality", 80); param.m_tiffCompressionBW = getCfgValue("saveParam", "tiffCompBW", 1); param.m_tiffCompression = getCfgValue("saveParam", "tiffCompClr", 1); param.m_tiffQuality = getCfgValue("saveParam", "tiffQuality", 80); param.m_fileNamePrefix = ui->lineEdit_fileName->text(); param.m_fileNameStartIndex = ui->spin_index->value(); param.m_fileNameDigits = ui->cbox_digit->currentIndex() + 1; param.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; } param.m_fileNameExt = format; param.m_isOcr = (ui->cbox_format->currentIndex() >= 10); param.m_isSaveAsMultiPage = ui->cbtn_multiFile->isChecked(); param.m_multiPagesType = (ui->radio_multiAll->isChecked()) ? 0 : 1; param.m_customMultiPages = ui->spinBox_multiPages->value(); return param; } void Dialog_AquireInto::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 Dialog_AquireInto::on_btn_option_clicked() { Dialog_WriteSettings dlg(ui->cbox_format->currentIndex(), this); dlg.exec(); } void Dialog_AquireInto::on_cbox_format_currentIndexChanged(int index) { ui->cbtn_multiFile->setEnabled(index > 5 && index < 10); if (index < 6 || index >= 10 ) ui->cbtn_multiFile->setChecked(false); ui->btn_option->setEnabled(0 == index || 6 == index); } void Dialog_AquireInto::on_lineEdit_directory_textChanged(const QString& arg1) { ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!arg1.isEmpty()); } void Dialog_AquireInto::on_buttonBox_accepted() { saveCfgValue("aquire", "aquireIntoPath", ui->lineEdit_directory->text()); saveCfgValue("aquire", "namePrefix", ui->lineEdit_fileName->text()); saveCfgValue("aquire", "subFolderByTime", ui->cbtn_subFolder->isChecked()); saveCfgValue("aquire", "subFolderByBlank", ui->cbtn_subFolderByBlank->isChecked()); saveCfgValue("aquire", "subFolderByColor", ui->cbtn_subFolderByColor->isChecked()); saveCfgValue("aquire", "startIndex", ui->spin_index->value()); saveCfgValue("aquire", "digit", ui->cbox_digit->currentIndex()); saveCfgValue("aquire", "evenOdd", ui->cbox_evenOdd->currentIndex()); saveCfgValue("aquire", "format", ui->cbox_format->currentIndex()); saveCfgValue("aquire", "multiFile", ui->cbtn_multiFile->isChecked()); saveCfgValue("aquire", "multiAll", ui->radio_multiAll->isChecked()); saveCfgValue("aquire", "multiPages", ui->spinBox_multiPages->value()); saveCfgValue("aquire", "multiCustom", ui->radio_multiCustom->isChecked()); } void Dialog_AquireInto::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 Dialog_AquireInto::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 Dialog_AquireInto::on_radio_multiCustom_toggled(bool checked) { ui->spinBox_multiPages->setEnabled(checked && ui->cbtn_multiFile->isEnabled()); } void Dialog_AquireInto::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 Dialog_AquireInto::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'))); }