2025-03-13 15:21:23 +08:00

171 lines
4.6 KiB
C++

#include "CFesCtrlSim.h"
#include "ui_CFesCtrlSim.h"
#include "CActiveWindow.h"
CFesCtrlSim::CFesCtrlSim(QWidget *parent) :
QWidget(parent),
ui(new Ui::CFesCtrlSim),
ptrSimAoDlg(Q_NULLPTR),
ptrSimDoDlg(Q_NULLPTR),
ptrSimMoDlg(Q_NULLPTR),
ptrDefCmdDlg(Q_NULLPTR)
{
ui->setupUi(this);
}
CFesCtrlSim::~CFesCtrlSim()
{
if(ptrSimAoDlg != NULL)
{
delete ptrSimAoDlg;
}
if(ptrSimDoDlg != NULL)
{
delete ptrSimDoDlg;
}
if(ptrSimMoDlg != NULL)
{
delete ptrSimMoDlg;
}
if(ptrDefCmdDlg != NULL)
{
delete ptrDefCmdDlg;
}
delete ui;
}
void CFesCtrlSim::Init(bool isConnected)
{
if(isConnected)
{
m_ConnectFlag = CN_CommConnect;
}else
{
m_ConnectFlag = CN_CommDisconnect;
}
initVariable();
initSignalAndSlot();
initView();
}
void CFesCtrlSim::slotActiveWindow()
{
setActiveWindow(ui->tabWidget->currentIndex());
}
void CFesCtrlSim::initVariable()
{
ptrSimAoDlg = new SimAoDlg((int)E_ACTIVE_WINDOW_FES_AO_CTRL,this);
ptrSimAoDlg->SetConnectFlags(m_ConnectFlag);
}
void CFesCtrlSim::initSignalAndSlot()
{
connect(ui->tabWidget,&QTabWidget::currentChanged,this,&CFesCtrlSim::setActiveWindow);
}
void CFesCtrlSim::initView()
{
QGridLayout *gridLayout = new QGridLayout(ui->tab);
gridLayout->setSpacing(6);
gridLayout->setContentsMargins(0, 0, 0, 0);
gridLayout->addWidget(ptrSimAoDlg, 0, 0, 1, 1);
ui->tabWidget->removeTab(3);
}
void CFesCtrlSim::setActiveWindow(int current)
{
switch (current) {
case 0:
if(ptrSimAoDlg == NULL)
{
ptrSimAoDlg = new SimAoDlg((int)E_ACTIVE_WINDOW_FES_AO_CTRL,this);
ptrSimAoDlg->SetConnectFlags(m_ConnectFlag);
QGridLayout *gridLayout = new QGridLayout(ui->tab);
gridLayout->setSpacing(6);
gridLayout->setContentsMargins(0, 0, 0, 0);
gridLayout->addWidget(ptrSimAoDlg, 0, 0, 1, 1);
}
CActiveWindow::instance()->setActiveWindow((int)E_ACTIVE_WINDOW_FES_AO_CTRL);
ptrSimAoDlg->OnRTURefresh();
break;
case 1:
if(ptrSimDoDlg == NULL)
{
ptrSimDoDlg = new SimDoDlg((int)E_ACTIVE_WINDOW_FES_DO_CTRL,this);
ptrSimDoDlg->SetConnectFlags(m_ConnectFlag);
QGridLayout *gridLayout = new QGridLayout(ui->tab_2);
gridLayout->setSpacing(6);
gridLayout->setContentsMargins(0, 0, 0, 0);
gridLayout->addWidget(ptrSimDoDlg, 0, 0, 1, 1);
}
CActiveWindow::instance()->setActiveWindow((int)E_ACTIVE_WINDOW_FES_DO_CTRL);
ptrSimDoDlg->OnRTURefresh();
break;
case 2:
if(ptrSimMoDlg == NULL)
{
ptrSimMoDlg = new SimMoDlg((int)E_ACTIVE_WINDOW_FES_MO_CTRL,this);
ptrSimMoDlg->SetConnectFlags(m_ConnectFlag);
QGridLayout *gridLayout = new QGridLayout(ui->tab_3);
gridLayout->setSpacing(6);
gridLayout->setContentsMargins(0, 0, 0, 0);
gridLayout->addWidget(ptrSimMoDlg, 0, 0, 1, 1);
}
CActiveWindow::instance()->setActiveWindow((int)E_ACTIVE_WINDOW_FES_MO_CTRL);
ptrSimMoDlg->OnRTURefresh();
break;
case 3:
if(ptrDefCmdDlg == NULL)
{
ptrDefCmdDlg = new DefCmdDlg((int)E_ACTIVE_WINDOW_FES_CUSTOM_CTRL,this);
ptrDefCmdDlg->SetConnectFlags(m_ConnectFlag);
QGridLayout *gridLayout = new QGridLayout(ui->tab_4);
gridLayout->setSpacing(6);
gridLayout->setContentsMargins(0, 0, 0, 0);
gridLayout->addWidget(ptrDefCmdDlg, 0, 0, 1, 1);
}
CActiveWindow::instance()->setActiveWindow((int)E_ACTIVE_WINDOW_FES_CUSTOM_CTRL);
ptrDefCmdDlg->OnRTURefresh();
break;
default:
CActiveWindow::instance()->setActiveWindow((int)E_ACTIVE_WINDOW_FES);
break;
}
}
void CFesCtrlSim::OnNetConnect()
{
m_ConnectFlag =CN_CommConnect;
if(ptrSimAoDlg!=NULL)
ptrSimAoDlg->SetConnectFlags(m_ConnectFlag);
if(ptrSimDoDlg!=NULL)
ptrSimDoDlg->SetConnectFlags(m_ConnectFlag);
if(ptrSimMoDlg!=NULL)
ptrSimMoDlg->SetConnectFlags(m_ConnectFlag);
if(ptrDefCmdDlg!=NULL)
ptrDefCmdDlg->SetConnectFlags(m_ConnectFlag);
}
void CFesCtrlSim::OnNetDisConnect()
{
m_ConnectFlag =CN_CommDisconnect;
if(ptrSimAoDlg!=NULL)
ptrSimAoDlg->SetConnectFlags(m_ConnectFlag);
if(ptrSimDoDlg!=NULL)
ptrSimDoDlg->SetConnectFlags(m_ConnectFlag);
if(ptrSimMoDlg!=NULL)
ptrSimMoDlg->SetConnectFlags(m_ConnectFlag);
if(ptrDefCmdDlg!=NULL)
ptrDefCmdDlg->SetConnectFlags(m_ConnectFlag);
}