72 lines
1.7 KiB
C++
72 lines
1.7 KiB
C++
#include "dialog_scaninfo.h"
|
|
#include "ui_dialog_scaninfo.h"
|
|
#include "dialog_scan.h"
|
|
#include <QDesktopWidget>
|
|
#include <QTimer>
|
|
|
|
Dialog_ScanInfo::Dialog_ScanInfo(class Dialog_Scan *dlgScan)
|
|
: QDialog(nullptr)
|
|
, ui(new Ui::Dialog_ScanInfo)
|
|
, m_dlgScan(dlgScan)
|
|
, m_timer(nullptr)
|
|
, m_error(false)
|
|
{
|
|
ui->setupUi(this);
|
|
setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
|
|
m_timer = new QTimer(this);
|
|
|
|
QDesktopWidget *desktop = QApplication::desktop();
|
|
QRect workArea = desktop->availableGeometry();
|
|
move(workArea.right() - width(), workArea.bottom() - height());
|
|
}
|
|
|
|
Dialog_ScanInfo::~Dialog_ScanInfo()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void Dialog_ScanInfo::Start()
|
|
{
|
|
m_error = false;
|
|
ui->labelScanInfo->setText("");
|
|
ui->labelScanCount->setText(tr("Scan count: 0"));
|
|
ui->pushButtonCancel->setVisible(true);
|
|
ui->pushButtonOK->setVisible(false);
|
|
show();
|
|
}
|
|
|
|
void Dialog_ScanInfo::SetScanInfo(const QString &info, bool error)
|
|
{
|
|
ui->labelScanInfo->setText(info);
|
|
m_error = error;
|
|
}
|
|
|
|
void Dialog_ScanInfo::SetScanCount(unsigned int count)
|
|
{
|
|
ui->labelScanCount->setText(tr("Scan count: ") + QString::number(count));
|
|
this->repaint();
|
|
}
|
|
|
|
void Dialog_ScanInfo::Finish()
|
|
{
|
|
ui->pushButtonCancel->setVisible(false);
|
|
ui->pushButtonOK->setVisible(true);
|
|
|
|
if (!m_error)
|
|
{
|
|
m_timer->start(1000);
|
|
connect(m_timer, &QTimer::timeout, this, &Dialog_ScanInfo::on_pushButtonOK_clicked);
|
|
}
|
|
}
|
|
|
|
void Dialog_ScanInfo::on_pushButtonOK_clicked()
|
|
{
|
|
disconnect(m_timer, &QTimer::timeout, this, &Dialog_ScanInfo::on_pushButtonOK_clicked);
|
|
hide();
|
|
}
|
|
|
|
void Dialog_ScanInfo::on_pushButtonCancel_clicked()
|
|
{
|
|
m_dlgScan->StopScan();
|
|
}
|