87 lines
2.3 KiB
C++
87 lines
2.3 KiB
C++
#include "monitorDetailAttributeDlg.h"
|
|
#include "ui_monitorDetailAttributeDlg.h"
|
|
#include "monitorAttributeGroupDlg.h"
|
|
#include "monitorPanel.h"
|
|
#include "global.h"
|
|
|
|
MonitorDetailAttributeDlg::MonitorDetailAttributeDlg(QWidget *parent)
|
|
: QDialog(parent)
|
|
, ui(new Ui::monitorDetailAttributeDlg)
|
|
,_pParent(nullptr)
|
|
,m_gridLayout(nullptr)
|
|
{
|
|
_pParent = dynamic_cast<MonitorPanel*>(parent);
|
|
ui->setupUi(this);
|
|
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
|
|
initial();
|
|
}
|
|
|
|
MonitorDetailAttributeDlg::~MonitorDetailAttributeDlg()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void MonitorDetailAttributeDlg::initial()
|
|
{
|
|
_curColNum = 2;
|
|
connect(ui->btn_exit,&QPushButton::clicked,this,&MonitorDetailAttributeDlg::onCloseClicked);
|
|
connect(ui->cb_colNum,&QComboBox::currentTextChanged,this,&MonitorDetailAttributeDlg::onColChanged);
|
|
m_gridLayout = new QGridLayout(ui->content);
|
|
}
|
|
|
|
void MonitorDetailAttributeDlg::onCloseClicked()
|
|
{
|
|
hide();
|
|
}
|
|
|
|
void MonitorDetailAttributeDlg::onColChanged(const QString& str)
|
|
{
|
|
updateLayout(str.toInt());
|
|
}
|
|
|
|
void MonitorDetailAttributeDlg::generateAttributeGroups(QUuid uid)
|
|
{
|
|
clearAllGroup();
|
|
QMap<QString,QList<monitorItemAttributeInfo>> mapLst;
|
|
auto mapPara = _pParent->getModelController()->getMonitorPara();
|
|
if(mapPara.contains(uid)){
|
|
_curId = uid;
|
|
auto lst = mapPara[uid];
|
|
for(auto &info:lst){
|
|
if(info.bSelected)
|
|
mapLst[info.sGroup].append(info);
|
|
}
|
|
|
|
for(auto iter = mapLst.begin(); iter != mapLst.end();++iter){
|
|
MonitorAttributeGroupDlg* pDlg = new MonitorAttributeGroupDlg();
|
|
pDlg->setDetailParent(this);
|
|
pDlg->setCurMode(1);
|
|
pDlg->createGroupView(iter.value());
|
|
_curGroups.insert(iter.key(),pDlg);
|
|
}
|
|
}
|
|
|
|
updateLayout(_curColNum);
|
|
}
|
|
|
|
void MonitorDetailAttributeDlg::updateLayout(int columns)
|
|
{
|
|
_curColNum = columns;
|
|
int i = 0;
|
|
for(auto& pDlg:_curGroups){
|
|
int row = i / _curColNum;
|
|
int col = i % _curColNum;
|
|
m_gridLayout->addWidget(pDlg, row, col);
|
|
i++;
|
|
}
|
|
}
|
|
|
|
void MonitorDetailAttributeDlg::clearAllGroup()
|
|
{
|
|
for(auto& dlg:_curGroups){
|
|
m_gridLayout->removeWidget(dlg);
|
|
delete dlg;
|
|
}
|
|
_curGroups.clear();
|
|
}
|