99 lines
2.1 KiB
C++
99 lines
2.1 KiB
C++
#include "dialog_scaninfo.h"
|
|
#include "ui_dialog_scaninfo.h"
|
|
#include "mainwindow.h"
|
|
#include <QDesktopWidget>
|
|
|
|
Dialog_ScanInfo::Dialog_ScanInfo(class MainWindow *mainWindow)
|
|
: QDialog(nullptr)
|
|
, ui(new Ui::Dialog_ScanInfo)
|
|
, m_mainWindow(mainWindow)
|
|
, m_timerId(-1)
|
|
, m_error(false)
|
|
{
|
|
ui->setupUi(this);
|
|
setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
|
|
ui->labelScanInfo->setWordWrap(true);
|
|
ui->labelScanInfo->setAlignment(Qt::AlignCenter);
|
|
|
|
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()
|
|
{
|
|
if (-1 != m_timerId)
|
|
{
|
|
this->killTimer(m_timerId);
|
|
m_timerId = -1;
|
|
}
|
|
|
|
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));
|
|
ui->labelScanCount->repaint();
|
|
this->repaint();
|
|
}
|
|
|
|
void Dialog_ScanInfo::Finish()
|
|
{
|
|
ui->pushButtonCancel->setVisible(false);
|
|
ui->pushButtonOK->setVisible(true);
|
|
|
|
if (!m_error)
|
|
{
|
|
if (-1 != m_timerId)
|
|
{
|
|
this->killTimer(m_timerId);
|
|
m_timerId = -1;
|
|
}
|
|
|
|
m_timerId = this->startTimer(1000);
|
|
}
|
|
}
|
|
|
|
void Dialog_ScanInfo::timerEvent(QTimerEvent* e)
|
|
{
|
|
if (e->timerId() == m_timerId)
|
|
{
|
|
this->killTimer(m_timerId);
|
|
m_timerId = -1;
|
|
hide();
|
|
}
|
|
}
|
|
|
|
void Dialog_ScanInfo::on_pushButtonOK_clicked()
|
|
{
|
|
if (-1 != m_timerId)
|
|
{
|
|
this->killTimer(m_timerId);
|
|
m_timerId = -1;
|
|
}
|
|
|
|
hide();
|
|
}
|
|
|
|
void Dialog_ScanInfo::on_pushButtonCancel_clicked()
|
|
{
|
|
m_mainWindow->StopScan();
|
|
}
|