setting page using local thread to fetch device data,battery bug fixes

This commit is contained in:
xueyan hu
2022-01-12 17:59:05 +08:00
parent 376c343945
commit 80528751e4
13 changed files with 271 additions and 221 deletions

View File

@@ -20,6 +20,7 @@
#include "event/EventCenter.h"
#include "device/DeviceManager.h"
#include "json/cmdhelper.h"
#include "appvals/AppGlobalValues.h"
systemSettingForm::systemSettingForm(QWidget* parent) :
QWidget(parent),
@@ -27,31 +28,9 @@ systemSettingForm::systemSettingForm(QWidget* parent) :
{
ui->setupUi(this);
//[step]
//1)get total size and setMaxValue
//2)calculate percent(total-85)/total*100 and setAlarmValue
//3)get used size and setValue
ui->lbl_size->setText(tr("Loading..."));
ui->lbl_used->setText(tr("Loading..."));
double dsize;
if (cmdHelper::Instance()->getDiskSize(dsize))
{
m_disksize = dsize;
}
else
{
m_disksize = -1.0;
}
updateDiskSize();
double duse;
if (cmdHelper::Instance()->getDiskUsed(duse))
{
m_diskuse = duse;
}
else
{
m_diskuse = -1.0;
}
updateDiskUse();
//style init
//ui->btn_dicom->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
ui->btn_dicom->setIcon(QIcon(":/icons/dicomsettings.png"));
@@ -69,25 +48,42 @@ systemSettingForm::systemSettingForm(QWidget* parent) :
//ui->lbl_protocal->setFixedWidth(100);
ui->lbl_verify->setFixedWidth(100);
//data init
ui->btnPro->setText(JsonObject::Instance()->defaultProtocal());
ui->btnPro->setObjectName("BigBtn");
ui->btnFlt->setText(JsonObject::Instance()->defaultFilter());
ui->btnFlt->setObjectName("BigBtn");
connect(EventCenter::Default(), &EventCenter::ResponseDeviceStoragement, [=](QObject*) {
double duse;
if (cmdHelper::Instance()->getDiskUsed(duse))
////test begin
//flag_disksize = true;
//m_disksize = 75.0;
////test end
//updateStorageSize();
////test begin
//flag_diskuse = true;
//m_diskuse = 23.0;
////test end
//updateStorageUsed();
diskInfoCaller = QThread::create([=]() {
double disksize = 0;
flag_disksize = cmdHelper::Instance()->getDiskSize(disksize);
m_disksize = disksize;
updateStorageSize();
while (true)
{
double duse = 0;
flag_diskuse = cmdHelper::Instance()->getDiskUsed(duse);
m_diskuse = duse;
updateStorageUsed();
QMetaObject::invokeMethod(ui->batIcon, "startAnimation", Qt::QueuedConnection);
QThread::msleep(1000);
}
else
{
m_diskuse = -1.0;
}
updateDiskUse();
});
diskInfoCaller->start();
//connection
connect(ui->swt_verify, &ImageSwitch::clicked, [=]() {
@@ -149,21 +145,42 @@ systemSettingForm::systemSettingForm(QWidget* parent) :
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]() {
ui->retranslateUi(this);
ui->btnPro->setText(JsonObject::Instance()->defaultProtocal());
ui->btnFlt->setText(JsonObject::Instance()->defaultFilter());
ui->swt_verify->setChecked(true);
updateDiskSize();
updateDiskUse();
updateStorageSize();
updateStorageUsed();
});
}
void systemSettingForm::updateDiskSize()
systemSettingForm::~systemSettingForm()
{
if (m_disksize != -1.0)
diskInfoCaller->quit();
diskInfoCaller->wait();
}
void systemSettingForm::updateStorageUsed()
{
if (flag_diskuse)
{
ui->batIcon->setValue(m_diskuse);
ui->lbl_used->setText(tr("used:\t%1G").arg(m_diskuse));
}
else
{
ui->lbl_used->setText(tr("Get disk used size fail!"));
}
}
void systemSettingForm::updateStorageSize()
{
//bool flag = AppGlobalValues::StorageFlag();
if (flag_disksize)
{
//double total_size = AppGlobalValues::StorageSize();
ui->batIcon->setMaxValue(m_disksize);
double aValue = (m_disksize - JsonObject::Instance()->storageAlarmSize().toDouble()) / m_disksize;
ui->batIcon->setAlarmValue(aValue);
@@ -173,23 +190,4 @@ void systemSettingForm::updateDiskSize()
{
ui->lbl_size->setText(tr("Get disk total size fail!"));
}
}
void systemSettingForm::updateDiskUse()
{
if (m_diskuse != -1.0)
{
ui->batIcon->setValue(m_diskuse);
ui->lbl_used->setText(tr("used:\t%1G").arg(m_diskuse));
}
else
{
ui->lbl_used->setText(tr("Get disk used size fail!"));
}
}
systemSettingForm::~systemSettingForm()
{
delete ui;
}