123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- #include "DialogNewGVL.h"
- #include "Common.h"
- #include "WindowAppMdiFrame.h"
- #include "PouManager.h"
- DialogNewGVL::DialogNewGVL(QWidget *parent)
- : QDialog(parent)
- , m_pSelHdwTool(nullptr)
- {
- ui.setupUi(this);
- // 对话框初始化
- initUI();
- }
- DialogNewGVL::~DialogNewGVL()
- {
- }
- /// <summary>
- /// 对话框初始化
- /// </summary>
- void DialogNewGVL::initUI()
- {
- this->setWindowTitle(("Add New GVL"));
- this->setAttribute(Qt::WA_QuitOnClose);
- this->setWindowModality(Qt::ApplicationModal);
- // 设置默认的GVL名称
- ui.editName->setText(("GVL2"));
- // 初始化Gvl类型的下拉选项(要跳过最后一个)
- for (int i=0 ;i< gvlTypeString.size() ;i++ )
- {
- if ("系统变量" != gvlTypeString.at(i))
- {
- ui.comboGvlType->addItem(gvlTypeString.at(i));
- }
- }
- ui.comboGvlType->setCurrentIndex(0);
- // 初始化硬件组态下拉框
- this->initCommboHdw();
- // 槽函数
- connect(ui.createButton, SIGNAL(clicked()), this, SLOT(onButtonCreateClicked()));
- connect(ui.cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
- connect(ui.comboGvlType, SIGNAL(currentIndexChanged(int)), this, SLOT(onComboTypeChanged(int)));
-
- // 设置固定窗体大小
- this->setFixedSize(375, 303);
- //this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint);
- ui.comboHdw->hide();
- ui.label_Hdw->hide();
- }
- /// <summary>
- /// 硬件组态下拉框初始化
- /// </summary>
- void DialogNewGVL::initCommboHdw()
- {
- // 获取硬件Pou
- POU* hdwPou = g_pPouManager->getHdwPou();
- // 获取所有的硬件Tool
- const QVector<TOOL*>& hdwTools = hdwPou->GetAllStandardTools();
- // 添加至下拉框中
- for (TOOL* tool : hdwTools)
- {
- ui.comboHdw->addItem(tool->strInstanceName);
- // 并且保存下拉框选项序号和工具的对应关系
- m_HdwTools.push_back(tool);
- }
- }
- /// <summary>
- /// Create按钮
- /// </summary>
- void DialogNewGVL::onButtonCreateClicked()
- {
- // 标签名字全局不允许重复
- if (VPGlobal::getMdiFrame()->findSubView(ui.editName->text())!=nullptr)
- {
- Utility::VPCriticalMessageBox(("The GVL name is duplicated!"));
- return;
- }
- if (ui.editName->text().isEmpty())
- {
- Utility::VPCriticalMessageBox(("The GVL name is invalid!"));
- return;
- }
- // 保存用户输入的内容
- m_gvlName = ui.editName->text();
- switch (ui.comboGvlType->currentIndex())
- {
- case 0:
- m_gvlType = GVL_MODE::GVL_BASIC;
- break;
- case 1:
- m_gvlType = GVL_MODE::GVL_STANDARD;
- break;
- case 2:
- m_gvlType = GVL_MODE::GVL_DB;
- break;
- default:
- break;
- }
-
- // 2022-3-2,如果是DB类型的话,需要保存当前选择的Dll指针
- if (m_gvlType == GVL_MODE::GVL_DB)
- {
- if ( ui.comboHdw->count() == 0)
- {
- return;
- }
- int nIndex = ui.comboHdw->currentIndex();
- if (!m_HdwTools[nIndex]->strHdwInstName.isEmpty())
- {
- qWarning() << "The Tool " << m_HdwTools[nIndex] << "Bound to DB" << m_HdwTools[nIndex]->strHdwInstName;
- return;
- }
- m_pSelHdwTool = m_HdwTools[nIndex];
- }
- else
- {
- m_pSelHdwTool = nullptr;
- }
- this->accept();
- }
- /// <summary>
- /// Type选择框变更
- /// </summary>
- /// <param name="index"></param>
- void DialogNewGVL::onComboTypeChanged(int index)
- {
- switch (index)
- {
- case 0:
- ui.comboHdw->hide();
- ui.label_Hdw->hide();
- break;
- case 1:
- ui.comboHdw->hide();
- ui.label_Hdw->hide();
- break;
- case 2:
- ui.comboHdw->show();
- ui.label_Hdw->show();
- break;
- default:
- break;
- }
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="strName"></param>
- void DialogNewGVL::setDefaultName(QString strName)
- {
- ui.editName->setText(strName);
- }
|