在工具栏上增加扫描至功能

This commit is contained in:
luoliangyi 2023-03-06 17:01:57 +08:00
parent d265e6cc03
commit 87628a714a
3 changed files with 106 additions and 1 deletions

View File

@ -151,6 +151,9 @@ MainWindow::MainWindow(const QString& appLang, QWidget *parent)
ui->toolBar->addAction(ui->act_scannerSettings);
ui->toolBar->addAction(ui->act_acquire);
m_act_acquireInto2 = new QAction(QIcon(":/images/image_rsc/actions/scan.png"), tr("act_acquireInto"), this);
connect(m_act_acquireInto2, SIGNAL(triggered()), this, SLOT(on_AcquireInto2()));
ui->toolBar->addAction(m_act_acquireInto2);
ui->toolBar->addSeparator();
ui->toolBar->addAction(ui->act_fitWindowWidth);
ui->toolBar->addAction(ui->act_fitWindowSize);
@ -599,6 +602,101 @@ void MainWindow::on_act_autoSave_triggered()
saveCfgValue("save", "autoSave", auto_save_changes_);
}
void MainWindow::on_AcquireInto2()
{
if (!dev_que_.is_online() || m_isScanning)
{
return;
}
int count = 0;
m_thumb->getItemCount(&count);
if (count != 0)
{
int result = startScanMessageBox(this);
if (cancelScan == result)
return;
}
Dialog_AquireInto dlg(this);
if (1)
{
m_singleScan = false;
m_scanType = 2;
m_aquireIntoSaveParam = dlg.getSaveParam();
m_aquireIntoInBlank = true;
m_aquireIntoBatchStartIndex = 0;
m_aquireIntoPageIndex = 0;
m_aquireIntoMultiPageCount = 0;
QDateTime dateTime = QDateTime::currentDateTime();
if (m_aquireIntoSaveParam.m_isUseSubfolderByTime)
{
m_aquireIntoSaveParam.m_savePath = getStdFileName(m_aquireIntoSaveParam.m_savePath + dateTime.toString("yyyy-MM-dd") + "/");
}
// m_aquireIntoSaveParam.m_savePath = getStdFileName(m_aquireIntoSaveParam.m_savePath + dateTime.toString("yyyyMMddhhmmss") + "/");
if(!isLimitAccessFolder(2))
{
return;
}
startSaveMessageBox(this);
m_dpi = getDpi();
SANE_Status ret = sane_start(dev_que_.handle());
if (ret != SANE_STATUS_GOOD)
{
m_dialogLog->updateStatus(dev_que_.is_online() && 0 != m_scanType, m_isScanning);
m_wndStatusBar->setDeviceStatusInfo(tr("start failed"), true);
m_dialogLog->addLog(tr("start failed") + "(" + QString(sane_err_desc(ret)) + ")", true);
HGBase_WriteInfo(HGBASE_INFOTYPE_ERROR, "%s", getStdString(tr("start failed")).c_str());
if(ret == SCANNER_ERR_DEVICE_SLEEPING)
{
ui->menu_scan->setEnabled(false);
ui->act_acquire->setEnabled(false);
ui->act_scannerSettings->setEnabled(false);
m_dialogLog->updateStatus(false, false);
m_dialogLog->show();
if ("439" == getDevPid() || "9220" == getDevPid())
{
m_dialogLog->addLog(tr("Please wake up the device manually"), true);
m_wndStatusBar->setDeviceStatusInfo(tr("Please wake up the device manually"), true);
}
else
{
QTime curTimer = QTime::currentTime().addMSecs(10000);
while (QTime::currentTime() < curTimer)
{
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}
m_dialogLog->addLog(tr("already waked up device"), false);
m_wndStatusBar->setDeviceStatusInfo(tr("already waked up device"), false);
}
ui->menu_scan->setEnabled(true);
ui->act_acquire->setEnabled(true);
ui->act_scannerSettings->setEnabled(true);
m_dialogLog->updateStatus(true, false);
}
}
else
{
m_isScanning = true;
m_thumb->setAcceptDrops(false);
m_dialogLog->updateStatus(dev_que_.is_online() && 0 != m_scanType, m_isScanning);
updateActionStatus();
}
m_dialogLog->show();
}
}
void MainWindow::on_itemCountChanged(int count)
{
m_wndStatusBar->setPageInfo(count, m_currIndex);
@ -1669,7 +1767,7 @@ void MainWindow::updateActionStatus()
ui->act_lastPage->setEnabled(-1 != m_currIndex && m_multiPageCount > 0 && m_multiIndex != m_multiPageCount - 1
&& (!dev_que_.is_online() || !m_isScanning));
m_multiPageLineEdit->setText(QString("%1/%2").arg(m_multiIndex + 1).arg(m_multiPageCount));
ui->toolBar->actions().at(16)->setVisible(-1 != m_currIndex && m_multiPageCount > 1 && -1 != m_multiIndex
ui->toolBar->actions().at(17)->setVisible(-1 != m_currIndex && m_multiPageCount > 1 && -1 != m_multiIndex
&& (!dev_que_.is_online() || !m_isScanning));
ui->act_sortPages->setEnabled(0 != count && (!dev_que_.is_online() || !m_isScanning));
@ -1699,6 +1797,7 @@ void MainWindow::updateActionStatus()
ui->act_clearRoller->setEnabled(m_admin_loggedIn);
ui->act_acquireInto->setEnabled(dev_que_.is_online() && !m_isScanning);
m_act_acquireInto2->setEnabled(dev_que_.is_online() && !m_isScanning);
ui->act_acquireSingle->setEnabled(dev_que_.is_online() && !m_isScanning);
ui->act_acquire->setEnabled(dev_que_.is_online() && !m_isScanning);
ui->act_scannerSettings->setEnabled(dev_que_.is_online() && !m_isScanning);

View File

@ -123,6 +123,7 @@ signals:
void fwUpgradeAndDevLock_Finish();
private slots:
void on_AcquireInto2();
void on_itemCountChanged(int count);
void on_itemSelectingChanged();
void on_currItemChanged(int index);
@ -277,6 +278,7 @@ private:
private:
Ui::MainWindow *ui;
QAction *m_act_acquireInto2;
QString m_currLang;
VersionDll *m_versionDll;
QString m_password;

View File

@ -299,6 +299,10 @@
</property>
</action>
<action name="act_acquireInto">
<property name="icon">
<iconset resource="Scanner_resource.qrc">
<normaloff>:/images/image_rsc/actions/scan.png</normaloff>:/images/image_rsc/actions/scan.png</iconset>
</property>
<property name="text">
<string>act_acquireInto</string>
</property>