HGGitLab

Commit 8991d741 authored by yangjiaxuan's avatar yangjiaxuan

优化日志功能

parent dd3f6d4b
This diff is collapsed.
#include "dialog_log.h"
#include "ui_dialog_log.h"
#include <sys/time.h>
#include <qpushbutton.h>
#include <qlabel.h>
dialog_log::dialog_log(QWidget *parent)
: QDialog(parent)
, ui(new Ui::dialog_log)
, flag_(0)
, m_isScanning(false)
{
ui->setupUi(this);
// this->setFixedSize(400,150);
QHBoxLayout *top = new QHBoxLayout(),
*bottom = new QHBoxLayout();
simple_info_ = new QLabel(this);
stop_ = new QPushButton(this);
expand_ = new QPushButton(this);
clear_ = new QPushButton(this);
retract_ = new QPushButton(this);
stop1_ = new QPushButton(this);
stop_->setText(tr("cancel scan"));
stop1_->setText(tr("cancel scan"));
retract_->setText(tr("fold"));
expand_->setText(tr("unfold"));
clear_->setText(tr("clear"));
top->addWidget(simple_info_, 1);
top->addWidget(stop_);
top->addWidget(expand_);
bottom->addWidget(clear_);
QHBoxLayout *bottom = new QHBoxLayout();
pbtn_clear = new QPushButton(this);
pbtn_stop = new QPushButton(this);
pbtn_continueScan = new QPushButton(this);
pbtn_finishScan = new QPushButton(this);
pbtn_stop->setText(tr("cancel scan"));
pbtn_clear->setText(tr("clear"));
pbtn_continueScan->setText(tr("continue scan"));
pbtn_finishScan->setText(tr("finish scan"));
bottom->addWidget(pbtn_clear);
bottom->addStretch();
bottom->addWidget(retract_);
bottom->addWidget(stop1_);
bottom->addWidget(pbtn_stop);
bottom->addWidget(pbtn_continueScan);
bottom->addWidget(pbtn_finishScan);
ui->verticalLayout->insertStretch(0);
ui->verticalLayout->insertItem(0, top);
ui->verticalLayout->addStretch();
ui->verticalLayout->addItem(bottom);
on_flag_changed();
connect(stop_, SIGNAL(clicked(bool)), this, SLOT(slot_stop()));
connect(stop1_, SIGNAL(clicked(bool)), this, SLOT(slot_stop()));
connect(expand_, SIGNAL(clicked(bool)), this, SLOT(slot_expand()));
connect(retract_, SIGNAL(clicked(bool)), this, SLOT(slot_retract()));
connect(clear_, SIGNAL(clicked(bool)), this, SLOT(slot_clear()));
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_continueScan, SIGNAL(clicked(bool)), this, SLOT(on_pbtn_continuScan_cliked()));
connect(pbtn_finishScan, SIGNAL(clicked(bool)), this, SLOT(on_pbtn_finishScan_cliked()));
}
dialog_log::~dialog_log()
......@@ -79,93 +63,51 @@ void dialog_log::add_log(QString log, bool err)
if(ind >= 0)
ui->listWidget->item(ind)->setTextColor(err ? Qt::red : Qt::black);
ui->listWidget->scrollToItem(ui->listWidget->item(ind)/*, QAbstractItemView::ScrollHint::PositionAtTop*/);
// ui->listWidget->update();
simple_info_->setText(log);
}
void dialog_log::add_flag(int flag)
{
flag &= INFO_DLG_FLAG_PROGRESS | INFO_DLG_FLAG_INFO_LIST;
flag_ |= flag;
if(flag)
on_flag_changed();
}
void dialog_log::remove_flag(int flag)
void dialog_log::setScanStatus(bool isscanning)
{
flag &= INFO_DLG_FLAG_PROGRESS | INFO_DLG_FLAG_INFO_LIST;
flag_ &= ~flag;
if(flag_ == 0)
close();
else if(flag)
on_flag_changed();
m_isScanning = isscanning;
}
void dialog_log::on_flag_changed(void)
void dialog_log::updateWigetStaus()
{
// simple_info_, stop_, expand_
// listWidget
// clear_, retract_, stop1_
if(flag_ & INFO_DLG_FLAG_INFO_LIST)
{
ui->listWidget->show();
clear_->show();
simple_info_->hide();
stop_->hide();
expand_->hide();
}
else {
ui->listWidget->hide();
clear_->hide();
retract_->hide();
stop1_->hide();
}
if(flag_ & INFO_DLG_FLAG_PROGRESS)
if(m_isScanning)
{
if((flag_ & INFO_DLG_FLAG_INFO_LIST) == 0)
{
simple_info_->show();
stop_->show();
expand_->show();
}
else
{
retract_->show();
stop1_->show();
}
pbtn_stop->show();
pbtn_continueScan->hide();
pbtn_finishScan->hide();
}
else
{
simple_info_->hide();
stop_->hide();
expand_->hide();
retract_->hide();
stop1_->hide();
pbtn_stop->hide();
pbtn_continueScan->show();
pbtn_finishScan->show();
}
}
void dialog_log::closeEvent(QCloseEvent *event)
{
flag_ = 0;
slot_stop();
(void)event;
on_pbtn_stop_clicked();
}
void dialog_log::slot_stop(void)
{
emit invoke_stop();
if(flag_ == INFO_DLG_FLAG_PROGRESS)
close();
else
remove_flag(INFO_DLG_FLAG_PROGRESS);
void dialog_log::on_pbtn_continuScan_cliked()
{
emit continuScan();
}
void dialog_log::slot_expand()
void dialog_log::on_pbtn_finishScan_cliked()
{
add_flag(INFO_DLG_FLAG_INFO_LIST);
close();
}
void dialog_log::slot_retract()
void dialog_log::on_pbtn_stop_clicked(void)
{
remove_flag(INFO_DLG_FLAG_INFO_LIST);
emit invoke_stop();
}
void dialog_log::slot_clear()
void dialog_log::on_pbtn_clear_clicked()
{
ui->listWidget->clear();
}
......@@ -2,7 +2,7 @@
#define DIALOG_SCANNERLOG_H
#include <QDialog>
#include <QPushButton>
class QLabel;
namespace Ui {
......@@ -25,33 +25,30 @@ public:
~dialog_log();
void add_log(QString log, bool err);
void add_flag(int flag);
void remove_flag(int flag);
void setScanStatus(bool isScanning);
void updateWigetStaus();
private:
void on_flag_changed(void);protected:
void closeEvent(QCloseEvent *event);
private slots:
void slot_stop(void);
void slot_expand();
void slot_retract();
void slot_clear();
void on_pbtn_stop_clicked(void);
void on_pbtn_clear_clicked();
void on_pbtn_continuScan_cliked();
void on_pbtn_finishScan_cliked();
signals:
void invoke_stop(void);
void continuScan(void);
private:
Ui::dialog_log *ui;
int flag_;
QLabel *simple_info_;
QPushButton *stop_;
QPushButton *expand_;
QPushButton *clear_;
QPushButton *retract_;
QPushButton *stop1_;
bool m_isScanning;
QPushButton *pbtn_stop;
QPushButton *pbtn_clear;
QPushButton *pbtn_continueScan;
QPushButton *pbtn_finishScan;
};
#endif // DIALOG_SCANNERLOG_H
......@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>531</width>
<height>255</height>
<height>161</height>
</rect>
</property>
<property name="windowTitle">
......
......@@ -213,6 +213,8 @@ MainWindow::MainWindow(QWidget *parent)
connect(this, SIGNAL(new_image(void *)), this, SLOT(on_new_image(void *)), Qt::QueuedConnection);
connect(this, SIGNAL(scan_working()), this, SLOT(on_scan_working()), Qt::QueuedConnection);
connect(this, SIGNAL(scan_finish()), this, SLOT(on_scan_finish()), Qt::QueuedConnection);
connect(m_dialog_log, SIGNAL(continuScan(void)), this, SLOT(on_act_acquire_triggered(void)));
connect(m_dialog_log, SIGNAL(invoke_stop(void)), this, SLOT(on_act_acquireStop_triggered(void)));
m_saneNoDevAction = new QAction(tr("nodevice"), this);
m_saneNoDevAction->setEnabled(false);
......@@ -724,7 +726,6 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if(event->type()==QEvent::MouseButtonDblClick)
{
m_dialog_log->add_flag(INFO_DLG_FLAG_INFO_LIST);
m_dialog_log->show();
return true;
}
......@@ -797,25 +798,28 @@ void MainWindow::on_new_image(void *img)
void MainWindow::on_scan_working()
{
m_isScanning = true;
#if defined(HG_CMP_MSC) && defined(APP_USE_TWAIN)
//
#else
m_dialog_log->add_log(tr("scan starting..."), false);
m_dialog_log->add_flag(INFO_DLG_FLAG_PROGRESS);
m_dialog_log->setScanStatus(m_isScanning);
m_dialog_log->updateWigetStaus();
m_dialog_log->show();
#endif
m_wndStatusBar->setDeviceStatusInfo(tr("scan starting..."));
set_actions_enabled(false);
m_isScanning = true;
}
void MainWindow::on_scan_finish()
{
m_isScanning = false;
#if defined(HG_CMP_MSC) && defined(APP_USE_TWAIN)
//
#else
m_dialog_log->add_log(tr("scan finished"), false);
m_dialog_log->remove_flag(INFO_DLG_FLAG_PROGRESS);
m_dialog_log->setScanStatus(m_isScanning);
m_dialog_log->updateWigetStaus();
#endif
if (nullptr != m_scanImgFmtWriter)
{
......@@ -826,7 +830,6 @@ void MainWindow::on_scan_finish()
}
m_wndStatusBar->setDeviceStatusInfo(tr("scan finished"));
set_actions_enabled(true);
m_isScanning = false;
}
void MainWindow::on_act_thumbnailBar_triggered(bool checked)
......@@ -2035,6 +2038,16 @@ void MainWindow::on_act_acquire_triggered()
#endif
}
void MainWindow::on_act_acquireStop_triggered()
{
#if defined(HG_CMP_MSC) && defined(APP_USE_TWAIN)
// stop scan based on twain
#else
if (nullptr != m_saneDeviceHandle)
sane_cancel(m_saneDeviceHandle);
#endif
}
void MainWindow::on_act_acquireSingle_triggered()
{
m_scanType = 1;
......
......@@ -177,6 +177,8 @@ private slots:
void on_act_acquire_triggered();
void on_act_acquireStop_triggered();
void on_act_acquireSingle_triggered();
void on_act_acquireInto_triggered();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment