#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); 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"))); #else ui->lineEdit_fileName->setText(getCfgValue("aquire", "namePrefix", QString("HGScan"))); #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)); ui->cbox_format->setCurrentIndex(getCfgValue("aquire", "format", 0)); ui->cbtn_multiFile->setChecked(getCfgValue("aquire", "multiFile", false)); ui->radio_multiAll->setChecked(getCfgValue("aquire", "multiAll", true)); 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() || 3 == ui->cbox_format->currentIndex()); ui->cbtn_multiFile->setEnabled(ui->cbox_format->currentIndex() > 2 && ui->cbox_format->currentIndex() < 6); 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 = "tif"; break; case 4: format = "pdf"; break; case 5: format = "ofd"; break; case 6: format = "pdf"; break; case 7: format = "ofd"; break; default: break; } param.m_fileNameExt = format; param.m_isOcr = (ui->cbox_format->currentIndex() >= 6); 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 > 2 && index < 6); if (index < 3 || index > 5) ui->cbtn_multiFile->setChecked(false); ui->btn_option->setEnabled(0 == index || 3 == 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()); } 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'))); }