2022-11-06 08:00:48 +00:00
|
|
|
#include "dialog_upgradefirmware.h"
|
|
|
|
#include "ui_dialog_upgradefirmware.h"
|
|
|
|
#include <QMovie>
|
|
|
|
|
|
|
|
Dialog_upgradeFirmware::Dialog_upgradeFirmware(SANE_Handle handle, const std::string &upgradePath, QWidget *parent) :
|
|
|
|
QDialog(parent)
|
|
|
|
, m_handle(handle)
|
|
|
|
, m_upgradePath(upgradePath)
|
|
|
|
, m_status(SANE_STATUS_INVAL)
|
|
|
|
, ui(new Ui::Dialog_upgradeFirmware)
|
|
|
|
{
|
|
|
|
ui->setupUi(this);
|
|
|
|
|
|
|
|
setWindowTitle(tr("upgrade"));
|
2022-11-07 02:10:21 +00:00
|
|
|
setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint);
|
2022-11-06 08:00:48 +00:00
|
|
|
|
|
|
|
ui->label_text->setText(tr("firmware upgrade in progress, please wait..."));
|
|
|
|
|
|
|
|
QMovie *movie = new QMovie(":images/image_rsc/logo/waiting.gif");
|
|
|
|
ui->label_gif->setMovie(movie);
|
|
|
|
movie->setCacheMode(QMovie::CacheAll);
|
|
|
|
movie->setScaledSize(QSize(ui->label_gif->width(), ui->label_gif->height()));
|
|
|
|
movie->start();
|
|
|
|
ui->label_gif->show();
|
|
|
|
|
|
|
|
connect(this, SIGNAL(finish()), this, SLOT(on_finish()), Qt::QueuedConnection);
|
|
|
|
|
|
|
|
HGBase_OpenThread(ThreadFunc, this, &m_thread);
|
|
|
|
}
|
|
|
|
|
|
|
|
Dialog_upgradeFirmware::~Dialog_upgradeFirmware()
|
|
|
|
{
|
|
|
|
if (nullptr != m_thread)
|
|
|
|
{
|
|
|
|
HGBase_CloseThread(m_thread);
|
|
|
|
m_thread = nullptr;
|
|
|
|
}
|
|
|
|
|
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
|
|
|
|
void HGAPI Dialog_upgradeFirmware::ThreadFunc(HGThread thread, HGPointer param)
|
|
|
|
{
|
|
|
|
(void)thread;
|
|
|
|
Dialog_upgradeFirmware *p = (Dialog_upgradeFirmware *)param;
|
|
|
|
|
|
|
|
SANE_Status rc = sane_io_control(p->m_handle, IO_CTRL_CODE_SET_FIRMWARE_UPGRADE, (void*)p->m_upgradePath.c_str(), NULL);
|
|
|
|
p->m_status = rc;
|
|
|
|
|
|
|
|
emit p->finish();
|
|
|
|
}
|
|
|
|
|
|
|
|
SANE_Status Dialog_upgradeFirmware::getUpgradeStatus()
|
|
|
|
{
|
|
|
|
return m_status;
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_upgradeFirmware::on_finish()
|
|
|
|
{
|
|
|
|
accept();
|
|
|
|
}
|
|
|
|
|