DiagramDesigner/diagramCavas/source/createHMIdlg.cpp

92 lines
2.2 KiB
C++

#include "createHMIdlg.h"
#include "common/frontend/monitor_item.h"
#include "dataBase.h"
#include "ui_createHMIdlg.h"
#include "diagramCavas_p.h"
#include <QTimer>
CreateHMIdlg::CreateHMIdlg(QWidget *parent)
: QDialog(parent)
, ui(new Ui::createHMIdlg)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
initial();
}
CreateHMIdlg::~CreateHMIdlg()
{
delete ui;
}
void CreateHMIdlg::initial()
{
connect(ui->btn_cancel,&QPushButton::clicked,this,&CreateHMIdlg::onCancelClicked);
connect(ui->btn_ok,&QPushButton::clicked,this,&CreateHMIdlg::onSaveClicked);
connect(ui->btn_custom,&QPushButton::clicked,this,&CreateHMIdlg::onCustomClicked);
m_timer = new QTimer(this);
m_timer->setSingleShot(true);
connect(m_timer, &QTimer::timeout, ui->label_info, &QLabel::hide);
}
void CreateHMIdlg::showDlg()
{
show();
ui->cb_structure->clear();
QList<MonitorPageInfo> lstMonitor = DataBase::GetInstance()->getAllMonitor();
for(auto& info:lstMonitor){
ui->cb_structure->addItem(info.name);
}
ui->cb_structure->addItem("");
}
void CreateHMIdlg::onCancelClicked()
{
hide();
}
void CreateHMIdlg::onCustomClicked()
{
QString sName = ui->cb_structure->currentText();
emit createCustomHMI(ui->lineEdit->text(),sName);
hide();
}
void CreateHMIdlg::onSaveClicked()
{
auto lstHMI = DataBase::GetInstance()->getAllHMI();
QString sSysName = ui->cb_structure->currentText(); //系统图名
QString sName = ui->lineEdit->text();
if(sName.isEmpty()){
showInfoTip("名称不能为空");
return;
}
if(_pCavasPtr->m_mapMonitorPanel.contains(sName)){
showInfoTip("名称已存在");
return;
}
for(auto& info:lstHMI){
if(sName == info.name || sName == info.tag)
{
showInfoTip("名称已存在");
return ;
}
}
emit createHMI(sName,sSysName);
hide();
}
void CreateHMIdlg::showInfoTip(const QString& text,int durationMs)
{
ui->label_info->setText(text);
ui->label_info->show();
// 停止之前的定时器
m_timer->stop();
// 重新启动定时器
m_timer->start(durationMs);
}