DiagramDesigner/diagramCavas/source/baseInfoDlg.cpp

111 lines
3.6 KiB
C++

#include "baseInfoDlg.h"
#include "graphicsItem/graphicsBaseItem.h"
#include "ui_baseInfoDlg.h"
#include "dataBase.h"
#include "global.h"
#include "baseProperty.h"
#include "basePropertyManager.h"
#include <QButtonGroup>
BaseInfoDlg::BaseInfoDlg(QWidget *parent)
: BaseContentDlg(parent)
, ui(new Ui::baseInfoDlg)
{
ui->setupUi(this);
_stateGroup = new QButtonGroup(this);
_stateGroup->addButton(ui->rb_inService,1);
_stateGroup->addButton(ui->rb_outService,0);
}
BaseInfoDlg::~BaseInfoDlg()
{
delete ui;
}
void BaseInfoDlg::createGroupView(groupStateInfo infos)
{
QList<gridInfo> lstGrid = DataBase::GetInstance()->getAllGrid();
QList<zoneInfo> lstZone = DataBase::GetInstance()->getAllZone();
QList<stationInfo> lstStation = DataBase::GetInstance()->getAllStation();
for(auto &info:lstGrid)
{
ui->cb_grid->addItem(info.name,info.id);
}
for(auto &info:lstZone)
{
ui->cb_zone->addItem(info.name,info.id);
}
for(auto &info:lstStation)
{
ui->cb_station->addItem(info.name,info.id);
}
}
QMap<QString,propertyStateInfo> BaseInfoDlg::getPropertyValue(BaseProperty* pPro)
{
QMap<QString,propertyStateInfo> map;
if(pPro)
{
pPro->setTag(ui->le_tag->text());
pPro->setPath(ui->le_nameSpace->text());
pPro->setName(ui->le_name->text());
pPro->setLabel(QJsonObject());
pPro->setDescription(ui->le_description->text());
pPro->setGrid(ui->cb_grid->currentText());
pPro->setZone(ui->cb_zone->currentText());
pPro->setStation(ui->cb_station->currentText());
QJsonObject connectBus;
connectBus["bay_name"] = ui->le_bayName->text();
connectBus["bay_offset_outer"] = ui->le_idx_1->text();
connectBus["bay_offset_inner"] = ui->le_idx_2->text();
connectBus["from_uuid"] = ui->le_from->text();
connectBus["to_uuid"] = ui->le_to->text();
pPro->setConnectedBus(connectBus);
pPro->setInService(_stateGroup->checkedId());
pPro->setState(ui->le_status->text().toInt());
emit BasePropertyManager::instance().dataChanged(pPro->uuid().toString());
}
return map;
}
void BaseInfoDlg::setPropertyValue(QVariant var)
{
BaseProperty* pPro = static_cast<BaseProperty*>(var.value<void*>());
if(pPro)
{
ui->le_uuid->setText(pPro->uuid().toString());
ui->le_tag->setText(pPro->tag());
ui->le_nameSpace->setText(pPro->path());
ui->le_name->setText(pPro->name());
ui->le_label->setText(""); //label josn格式暂不解析
ui->le_description->setText(pPro->description());
ui->cb_grid->setCurrentText(pPro->grid());
ui->cb_zone->setCurrentText(pPro->zone());
ui->cb_station->setCurrentText(pPro->station());
ui->le_status->setText(QString::number(pPro->state())); //page status字段将移动到component
QJsonObject connectBus = pPro->connectedBus();
QString bay_name = connectBus["bay_name"].toString();
QString bay_offset_outer = connectBus["bay_offset_outer"].toString();
QString bay_offset_inner = connectBus["bay_offset_inner"].toString();
QString from_uuid = connectBus["from_uuid"].toString();
QString to_uuid = connectBus["to_uuid"].toString();
ui->le_bayName->setText(bay_name);
ui->le_idx_1->setText(bay_offset_outer);
ui->le_idx_2->setText(bay_offset_inner);
ui->le_from->setText(from_uuid);
ui->le_to->setText(to_uuid);
if(pPro->inService() == 1)
ui->rb_inService->setChecked(true);
else
ui->rb_outService->setChecked(true);
}
}