123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297 |
- #include "configwidget.h"
- #include "ui_configwidget.h"
- #include <QJsonArray>
- #include <QJsonDocument>
- #include <QJsonObject>
- #include <QJsonParseError>
- #include <QStandardItem>
- #include <QListView>
- #include <QStyleFactory>
- #define LOCAL_TOPIC "同轴采集服务配置"
- ConfigWidget::ConfigWidget(int skintype, QWidget *parent) :
- QWidget(parent),
- ui(new Ui::ConfigWidget)
- {
- ui->setupUi(this);
- DoSetStyleSheet(skintype);
- QListView *view = new QListView();
- view->window()->setWindowFlags(Qt::Popup|Qt::FramelessWindowHint|Qt::NoDropShadowWindowHint);
- view->window()->setAttribute(Qt::WA_TranslucentBackground);
- ui->comboBox->addItem("是");
- ui->comboBox->addItem("否");
- ui->comboBox->setStyle(QStyleFactory::create("Windows"));
- ui->comboBox->setView(view);
- ui->comboBox->installEventFilter(this);
- ui->comboBox->setCurrentIndex(0);
- QListView *view1 = new QListView();
- view1->window()->setWindowFlags(Qt::Popup|Qt::FramelessWindowHint|Qt::NoDropShadowWindowHint);
- view1->window()->setAttribute(Qt::WA_TranslucentBackground);
- ui->comboBox_1->setStyle(QStyleFactory::create("Windows"));
- ui->comboBox_1->setView(view1);
- ui->comboBox_1->installEventFilter(this);
- QListView *view2 = new QListView();
- view2->window()->setWindowFlags(Qt::Popup|Qt::FramelessWindowHint|Qt::NoDropShadowWindowHint);
- view2->window()->setAttribute(Qt::WA_TranslucentBackground);
- ui->comboBox_2->setStyle(QStyleFactory::create("Windows"));
- ui->comboBox_2->setView(view2);
- ui->comboBox_2->installEventFilter(this);
- QListView *view3 = new QListView();
- view3->window()->setWindowFlags(Qt::Popup|Qt::FramelessWindowHint|Qt::NoDropShadowWindowHint);
- view3->window()->setAttribute(Qt::WA_TranslucentBackground);
- ui->comboBox_3->setStyle(QStyleFactory::create("Windows"));
- ui->comboBox_3->setView(view3);
- ui->comboBox_3->installEventFilter(this);
- QListView *view4 = new QListView();
- view4->window()->setWindowFlags(Qt::Popup|Qt::FramelessWindowHint|Qt::NoDropShadowWindowHint);
- view4->window()->setAttribute(Qt::WA_TranslucentBackground);
- ui->comboBox_4->addItem("是");
- ui->comboBox_4->addItem("否");
- ui->comboBox_4->setStyle(QStyleFactory::create("Windows"));
- ui->comboBox_4->setView(view4);
- ui->comboBox_4->installEventFilter(this);
- ui->comboBox_4->setCurrentIndex(1);
- ui->lineEdit_monIp->setEnabled(false);
- ui->lineEdit_monPort->setEnabled(false);
- }
- ConfigWidget::~ConfigWidget()
- {
- delete ui;
- }
- bool ConfigWidget::eventFilter(QObject *obj, QEvent *event)
- {
- if (obj == ui->comboBox_1 ||obj == ui->comboBox_2
- || obj == ui->comboBox_3 || obj == ui->comboBox_4
- || obj == ui->comboBox)
- {
- if (event->type() == QEvent::MouseMove) { return true; }
- else { return false; }
- }
- else
- {
- // pass the event on to the parent class
- return ConfigWidget::eventFilter(obj, event);
- }
- }
- void ConfigWidget::DoSetStyleSheet(int nstyle)
- {
- QString strQssPath;
- if(nstyle == 0)
- {
- strQssPath = QString(":/light/lhcoaxialswitchsetinfo.qss");
- }
- else
- {
- strQssPath = QString(":/deep/lhcoaxialswitchsetinfo.qss");
- }
- QFile file(strQssPath);
- file.open(QFile::ReadOnly);
- QString styleSheet = QLatin1String(file.readAll());
- this->setStyleSheet(styleSheet);
- }
- void ConfigWidget::InitTransInfo(int nchnid, int ntype)
- {
- for(int i = 0; i < m_dataManager.m_transDataList.size(); i++)
- {
- tMPinData &mpin = m_dataManager.m_transDataList[i];
- if((mpin.nChnID == nchnid || mpin.nChnID == 0)
- && (mpin.nFlags == ntype || mpin.nFlags < 0))
- {
- if(ntype == 0)
- {
- ui->comboBox_1->addItem(mpin.strDevName, mpin.nMPID);
- }
- else if(ntype == 1)
- {
- ui->comboBox_2->addItem(mpin.strDevName, mpin.nMPID);
- }
- else if(ntype == 2)
- {
- ui->comboBox_3->addItem(mpin.strDevName, mpin.nMPID);
- }
- break;
- }
- }
- if(ntype == 0)
- {
- ui->comboBox_1->setCurrentIndex(0);
- }
- else if(ntype == 1)
- {
- ui->comboBox_2->setCurrentIndex(0);
- }
- else if(ntype == 2)
- {
- ui->comboBox_3->setCurrentIndex(0);
- }
- }
- void ConfigWidget::SetTransInfo(int nmpid, int ntype)
- {
- if(ntype == 0)
- {
- int nRow = ui->comboBox_1->findData(nmpid);
- nRow = nRow < 0 ? 0 : nRow;
- ui->comboBox_1->setCurrentIndex(nRow);
- }
- else if(ntype == 1)
- {
- int nRow = ui->comboBox_2->findData(nmpid);
- nRow = nRow < 0 ? 0 : nRow;
- ui->comboBox_2->setCurrentIndex(nRow);
- }
- else if(ntype == 2)
- {
- int nRow = ui->comboBox_3->findData(nmpid);
- nRow = nRow < 0 ? 0 : nRow;
- ui->comboBox_3->setCurrentIndex(nRow);
- }
- }
- bool ConfigWidget::DoSave(int serviceid)
- {
- QListWidgetItem* pItem = ui->listWidget->currentItem();
- if(pItem == NULL)
- {
- return false;
- }
- SaveDeviceData(pItem->data(Qt::UserRole).toInt());
- m_dataManager.m_transServerIP = ui->lineEdit_TransIp->text();
- m_dataManager.m_transServerPort = ui->lineEdit_TransPort->text().toInt();
- m_dataManager.DoSaveServiceConfig(serviceid);
- return true;
- }
- void ConfigWidget::SaveDeviceData(int nMPID)
- {
- tTZConfig tzConfig;
- tzConfig.enable = ui->comboBox->currentIndex() == 0 ? true : false;
- tzConfig.enablemutilchannel = ui->comboBox_4->currentText() == 0 ? true : false;
- tzConfig.mpid = nMPID;
- tzConfig.powerofftime = ui->lineEdit_wait->text().toInt();
- tzConfig.hosttransmpid = ui->comboBox_1->currentData().toInt();
- tzConfig.backtransmpid = ui->comboBox_2->currentData().toInt();
- tzConfig.emergencympid = ui->comboBox_3->currentData().toInt();
- tzConfig.strhosttransName = ui->comboBox_1->currentText();
- tzConfig.strbacktransName = ui->comboBox_2->currentText();
- tzConfig.stremergencyName = ui->comboBox_3->currentText();
- tzConfig.address = ui->lineEdit_monIp->text();
- tzConfig.port = ui->lineEdit_monPort->text().toInt();
- tzConfig.slaveid = ui->lineEdit_monAddr->text().toInt();
- m_dataManager.SetDeviceConfig(nMPID, tzConfig);
- }
- void ConfigWidget::GetInfoFromDb(int serviceid)
- {
- m_dataManager.DoLoadDeviceData();
- m_dataManager.DoLoadServiceConfig(serviceid);
- //更新列表
- for(int i = 0; i < m_dataManager.m_deviceDataList.size(); i++)
- {
- tDeviceData &devData = m_dataManager.m_deviceDataList[i];
- QString strText = QString("%1.%2").arg(ui->listWidget->count() + 1).arg(devData.strDevName);
- QListWidgetItem* item = new QListWidgetItem(strText, ui->listWidget);
- item->setData(Qt::UserRole, devData.nMPID);
- item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter);
- ui->listWidget->addItem(item);
- }
- ui->listWidget->setCurrentRow(0);
- ui->lineEdit_TransIp->setText(m_dataManager.m_transServerIP);
- ui->lineEdit_TransPort->setText(QString::number(m_dataManager.m_transServerPort));
- }
- void ConfigWidget::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
- {
- if(previous != NULL)
- {
- int nMPID = previous->data(Qt::UserRole).toInt();
- SaveDeviceData(nMPID);
- }
- if(current == NULL)
- {
- return;
- }
- qDebug() << current->text();
- ui->lineEdit_monIp->setText("");
- ui->lineEdit_monPort->setText("");
- ui->lineEdit_monAddr->setText("1");
- ui->lineEdit_wait->setText("1");
- ui->comboBox->setCurrentIndex(0);
- ui->comboBox_4->setCurrentIndex(1);
- ui->comboBox_1->clear();
- ui->comboBox_2->clear();
- ui->comboBox_3->clear();
- int nMPID = current->data(Qt::UserRole).toInt();
- for(int i = 0; i < m_dataManager.m_deviceDataList.size(); i++)
- {
- tDeviceData &devData = m_dataManager.m_deviceDataList[i];
- if(devData.nMPID == nMPID)
- {
- QString strAddress = devData.strMaddress;
- QStringList strList = strAddress.split(':');
- if(strList.size() == 2)
- {
- ui->lineEdit_monIp->setText(strList.at(0));
- ui->lineEdit_monPort->setText(strList.at(1));
- }
- InitTransInfo(devData.nChnID, 0);
- InitTransInfo(devData.nChnID, 1);
- InitTransInfo(devData.nChnID, 2);
- tTZConfig tzConfig;
- m_dataManager.GetDeviceConfig(nMPID, tzConfig);
- if(!tzConfig.isValid())
- {
- SetTransInfo(tzConfig.hosttransmpid, 0);
- SetTransInfo(tzConfig.backtransmpid, 1);
- SetTransInfo(tzConfig.emergencympid, 2);
- ui->lineEdit_monAddr->setText(QString::number(tzConfig.slaveid));
- ui->lineEdit_wait->setText(QString::number(tzConfig.powerofftime));
- if(tzConfig.enable)
- {
- ui->comboBox->setCurrentIndex(0);
- }
- else
- {
- ui->comboBox->setCurrentIndex(1);
- }
- if(tzConfig.enablemutilchannel)
- {
- ui->comboBox_4->setCurrentIndex(0);
- }
- else
- {
- ui->comboBox_4->setCurrentIndex(1);
- }
- }
- break;
- }
- }
- }
|