扫描状态对话框上增加导出按钮

This commit is contained in:
gb 2022-05-26 17:20:12 +08:00
parent f3b3c39674
commit 851f36095d
4 changed files with 24 additions and 0 deletions

View File

@ -13,6 +13,7 @@ dialog_log::dialog_log(QWidget *parent)
pbtn_clear = new QPushButton(this);
cBox_autoScroll = new QCheckBox(this);
pbtn_stop = new QPushButton(this);
pbtn_export = new QPushButton(this);
pbtn_continueScan = new QPushButton(this);
pbtn_finishScan = new QPushButton(this);
@ -23,6 +24,7 @@ dialog_log::dialog_log(QWidget *parent)
pbtn_stop->setText(tr("cancel scan"));
cBox_autoScroll->setText(tr("auto scroll"));
pbtn_clear->setText(tr("clear"));
pbtn_export->setText(QString::fromStdString("\345\257\274\345\207\272\345\233\276\347\211\207")); // 导出图片
pbtn_continueScan->setText(tr("continue scan"));
pbtn_finishScan->setText(tr("finish scan"));
@ -30,6 +32,7 @@ dialog_log::dialog_log(QWidget *parent)
bottom->addWidget(cBox_autoScroll);
bottom->addStretch();
bottom->addWidget(pbtn_stop);
bottom->addWidget(pbtn_export);
bottom->addWidget(pbtn_continueScan);
bottom->addWidget(pbtn_finishScan);
@ -40,6 +43,7 @@ dialog_log::dialog_log(QWidget *parent)
connect(cBox_autoScroll, SIGNAL(stateChanged(int)), this, SLOT(on_cbox_autoScroll_stateChanged(int)));
connect(pbtn_stop, SIGNAL(clicked(bool)), this, SLOT(on_pbtn_stop_clicked()));
connect(pbtn_clear, SIGNAL(clicked(bool)), this, SLOT(on_pbtn_clear_clicked()));
connect(pbtn_export, SIGNAL(clicked(bool)), this, SLOT(on_pbtn_export_clicked()));
connect(pbtn_continueScan, SIGNAL(clicked(bool)), this, SLOT(on_pbtn_continuScan_cliked()));
connect(pbtn_finishScan, SIGNAL(clicked(bool)), this, SLOT(on_pbtn_finishScan_cliked()));
}
@ -96,6 +100,7 @@ void dialog_log::updateStatus(bool online, bool isScanning)
if (!online)
{
pbtn_stop->hide();
pbtn_export->hide();
pbtn_continueScan->hide();
pbtn_finishScan->hide();
}
@ -104,12 +109,15 @@ void dialog_log::updateStatus(bool online, bool isScanning)
if (isScanning)
{
pbtn_stop->show();
pbtn_export->hide();
pbtn_continueScan->hide();
pbtn_finishScan->hide();
}
else
{
pbtn_stop->hide();
if(img_received_)
pbtn_export->show();
pbtn_continueScan->show();
pbtn_finishScan->show();
}
@ -133,6 +141,11 @@ void dialog_log::closeEvent(QCloseEvent *event)
on_pbtn_stop_clicked();
}
void dialog_log::on_pbtn_export_clicked()
{
emit exportScanned();
}
void dialog_log::on_pbtn_continuScan_cliked()
{
img_received_ = 0;

View File

@ -41,6 +41,7 @@ public:
signals:
void stopScan();
void continueScan();
void exportScanned();
private:
void closeEvent(QCloseEvent *event);
@ -49,6 +50,7 @@ private slots:
void on_cbox_autoScroll_stateChanged(int state);
void on_pbtn_stop_clicked(void);
void on_pbtn_clear_clicked();
void on_pbtn_export_clicked();
void on_pbtn_continuScan_cliked();
void on_pbtn_finishScan_cliked();
@ -57,6 +59,7 @@ private:
QPushButton *pbtn_stop;
QCheckBox *cBox_autoScroll;
QPushButton *pbtn_clear;
QPushButton *pbtn_export;
QPushButton *pbtn_continueScan;
QPushButton *pbtn_finishScan;
};

View File

@ -235,6 +235,7 @@ MainWindow::MainWindow(QWidget *parent)
connect(this, SIGNAL(sane_dev_error(QString)), this, SLOT(on_sane_dev_error(QString)), Qt::QueuedConnection);
connect(m_dialogLog, SIGNAL(continueScan()), this, SLOT(on_continueScan()));
connect(m_dialogLog, SIGNAL(stopScan()), this, SLOT(on_stopScan()));
connect(m_dialogLog, SIGNAL(exportScanned()), this, SLOT(on_export_scanned_image()));
connect(m_wndStatusBar, SIGNAL(statusInfoDblClick()), this, SLOT(on_statusInfoDblClick()));
m_wndStatusBar->setDeviceStatusInfo(tr("nodevice"), false);
@ -928,6 +929,12 @@ void MainWindow::on_scan_finish(QString finishInfo, int err)
"%s", getStdString(finishInfo).c_str());
}
void MainWindow::on_export_scanned_image(void)
{
m_dialogLog->hide();
on_act_Export_triggered();
}
void MainWindow::on_continueScan()
{
if (!cur_dev_.is_online() || m_isScanning || 0 == m_scanType)

View File

@ -114,6 +114,7 @@ private slots:
void on_new_image(void *img);
void on_scan_working(QString workingInfo);
void on_scan_finish(QString finishInfo, int err);
void on_export_scanned_image(void);
void on_continueScan();
void on_stopScan();
void on_statusInfoDblClick();