92 lines
2.2 KiB
C++
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);
|
|
}
|