|
|
#include "QCameraMgrUI.h"
|
|
|
#include <QMessageBox>
|
|
|
#pragma execution_character_set("utf-8")
|
|
|
QCameraMgrUI::QCameraMgrUI(QWidget *parent)
|
|
|
: QWidget(parent)
|
|
|
{
|
|
|
ui.setupUi(this);
|
|
|
connect(ui.m_pbFound, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
|
|
|
connect(ui.m_pbAddCam, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
|
|
|
connect(ui.m_pbModCam, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
|
|
|
connect(ui.m_pbDelCam, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
|
|
|
connect(ui.m_pbClose, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
|
|
|
|
|
|
QStringList strHeaders;
|
|
|
strHeaders << "ID" << "显示名" << "序列号" << "类型" << "状态";
|
|
|
m_tableModel.setHorizontalHeaderLabels(strHeaders);
|
|
|
ui.tableView->setModel(&m_tableModel);
|
|
|
//ui.tableView->hideColumn(4);
|
|
|
ui.tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
|
|
ui.tableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
|
|
|
ui.tableView->setColumnWidth(0, 20);
|
|
|
ui.tableView->verticalHeader()->hide();
|
|
|
ui.tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
|
|
ui.tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
|
|
|
|
|
|
connect(ui.tableView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(onDoubleClicked(const QModelIndex &)));
|
|
|
|
|
|
m_pCamSetUI = new QCamSettingDlg();//相机预览
|
|
|
m_pCamConfigUI = new QCameraConfigUI();//相机配置
|
|
|
|
|
|
}
|
|
|
|
|
|
QCameraMgrUI::~QCameraMgrUI()
|
|
|
{
|
|
|
if (m_pCamSetUI)
|
|
|
{
|
|
|
delete m_pCamSetUI;
|
|
|
m_pCamSetUI = nullptr;
|
|
|
}
|
|
|
if (m_pCamConfigUI)
|
|
|
{
|
|
|
delete m_pCamConfigUI;
|
|
|
m_pCamConfigUI = nullptr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void QCameraMgrUI::onInitCamInfo(ICoreCtrl* pCtrl)
|
|
|
{
|
|
|
m_pCorctl = pCtrl;
|
|
|
onUpdateTableView();
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
Q_SLOT void QCameraMgrUI::onButtonClicked()
|
|
|
{
|
|
|
QString strObj = sender()->objectName();
|
|
|
if (strObj == "m_pbFound")
|
|
|
{
|
|
|
|
|
|
}
|
|
|
else if (strObj == "m_pbAddCam")
|
|
|
{
|
|
|
m_pCamConfigUI->setParent(this);
|
|
|
//m_pCamConfigUI->setWindowIcon(QIcon(LEAPER_LOGO));
|
|
|
m_pCamConfigUI->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
|
|
m_pCamConfigUI->setWindowModality(Qt::ApplicationModal);
|
|
|
m_pCamConfigUI->setAttribute(Qt::WA_ShowModal, true);
|
|
|
if (m_pCamConfigUI->exec() == QDialog::Accepted)
|
|
|
{
|
|
|
tagCamInfo info = m_pCamConfigUI->getNewCamInfo();
|
|
|
|
|
|
TP_CAMERA_OPTION camOpt;
|
|
|
camOpt.id = 3;
|
|
|
camOpt.folder = info.loadPath;
|
|
|
camOpt.showName = info.showName;
|
|
|
camOpt.uniqueName = info.serialNo;
|
|
|
camOpt.deviceType = info.nType;
|
|
|
m_pCorctl->IAddCamera(info.serialNo, camOpt);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else if (strObj == "m_pbModCam")
|
|
|
{
|
|
|
int row = ui.tableView->currentIndex().row();
|
|
|
if (row < 0)
|
|
|
{
|
|
|
QMessageBox::information(this, tr("提示"), "请选择要修改的相机");
|
|
|
return;
|
|
|
}
|
|
|
QModelIndex index = m_tableModel.index(row, 2);//选中行第一列的内容
|
|
|
QVariant data = m_tableModel.data(index);
|
|
|
QString strSerial = data.toString();
|
|
|
|
|
|
m_pCamSetUI->setParent(this);
|
|
|
//m_pCamSetUI->setWindowIcon(QIcon(LEAPER_LOGO));
|
|
|
m_pCamSetUI->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
|
|
m_pCamSetUI->setWindowModality(Qt::ApplicationModal);
|
|
|
m_pCamSetUI->setAttribute(Qt::WA_ShowModal, true);
|
|
|
|
|
|
m_pCamSetUI->setCoreCtrlPtr(m_pCorctl);
|
|
|
m_pCamSetUI->onInitWidget(strSerial);
|
|
|
|
|
|
m_pCamSetUI->show();
|
|
|
}
|
|
|
else if (strObj == "m_pbDelCam")
|
|
|
{
|
|
|
int row = ui.tableView->currentIndex().row();
|
|
|
if (row < 0)
|
|
|
{
|
|
|
QMessageBox::information(this, tr("提示"), "请选择要移除的相机");
|
|
|
return;
|
|
|
}
|
|
|
QModelIndex index = m_tableModel.index(row, 2);//选中行第一列的内容
|
|
|
QVariant data = m_tableModel.data(index);
|
|
|
QString key = data.toString();
|
|
|
if (key.isEmpty())
|
|
|
{
|
|
|
QMessageBox::information(this, tr("提示"), "请选择要移除的相机");
|
|
|
return;
|
|
|
}
|
|
|
QMessageBox info(this);
|
|
|
//info.setWindowIcon(QIcon(LEAPER_LOGO));
|
|
|
info.setWindowTitle(QObject::tr("警告"));
|
|
|
info.setText(QObject::tr("你确定要移除相机 %1?").arg(key));
|
|
|
info.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
|
|
|
info.setButtonText(QMessageBox::Ok, QObject::tr("确定"));
|
|
|
info.setButtonText(QMessageBox::Cancel, QObject::tr("取消"));
|
|
|
if (info.exec() == QMessageBox::Ok)
|
|
|
{
|
|
|
m_pCorctl->IDelCamera(key);
|
|
|
onUpdateTableView();
|
|
|
}
|
|
|
}
|
|
|
else if (strObj == "m_pbClose")
|
|
|
{
|
|
|
close();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void QCameraMgrUI::onUpdateTableView()
|
|
|
{
|
|
|
//移除所有
|
|
|
while (m_tableModel.rowCount())
|
|
|
{
|
|
|
m_tableModel.removeRow(0);
|
|
|
}
|
|
|
QStringList lst = m_pCorctl->ICameraKeys();
|
|
|
foreach(QString var, lst)
|
|
|
{
|
|
|
TP_CAMERA_OPTION camOpt;
|
|
|
m_pCorctl->IGetCameraOption(var, camOpt);
|
|
|
int nID = camOpt.id;
|
|
|
QString strShowName = camOpt.showName;
|
|
|
QString strSerial = camOpt.uniqueName;
|
|
|
QString strType = gCameraNamesMap.value((emTpDeviceType)camOpt.deviceType);
|
|
|
QString strState = gCameraStatusMap.value(camOpt.status);
|
|
|
QList<QStandardItem*> listItem;
|
|
|
listItem.append(new QStandardItem(QString("%1").arg(nID)));
|
|
|
listItem.append(new QStandardItem(QString("%1").arg(strShowName)));
|
|
|
listItem.append(new QStandardItem(QString("%1").arg(strSerial)));
|
|
|
listItem.append(new QStandardItem(QString("%1").arg(strType)));
|
|
|
listItem.append(new QStandardItem(QString("%1").arg(strState)));
|
|
|
m_tableModel.appendRow(listItem);
|
|
|
}
|
|
|
|
|
|
// QMap<QString, ServerInfo> map = QStationMgr::instance()->getConnInfos();
|
|
|
// for (QMap<QString, ServerInfo>::iterator it = map.begin(); it != map.end(); ++it)
|
|
|
// {
|
|
|
// QString strKey = it.key();
|
|
|
// QList<QStandardItem*> listItem;
|
|
|
// listItem.append(new QStandardItem(it.key()));
|
|
|
// listItem.append(new QStandardItem((*it).hostName));
|
|
|
// listItem.append(new QStandardItem((*it).hostSerial));
|
|
|
// listItem.append(new QStandardItem((*it).hostIP));
|
|
|
// listItem.append(new QStandardItem((*it).hostMac));
|
|
|
// QString strVersion = lpGlobalData::instance()->m_CamVersionMap[strKey];
|
|
|
// listItem.append(new QStandardItem(strVersion));
|
|
|
// // QStandardItem *pStateItem = new QStandardItem((*it).bConnect == false ? "未连接" : "已连接");
|
|
|
// // listItem.append(pStateItem);
|
|
|
// // if ((*it).bConnect == true) {
|
|
|
// // pStateItem->setBackground(QBrush(Qt::red, Qt::NoBrush));
|
|
|
// // }
|
|
|
// // else {
|
|
|
// // pStateItem->setBackground(QBrush(Qt::red, Qt::SolidPattern));
|
|
|
// // }
|
|
|
// m_tableModel.appendRow(listItem);
|
|
|
// }
|
|
|
|
|
|
}
|
|
|
|
|
|
void QCameraMgrUI::changeEvent(QEvent *evt)
|
|
|
{
|
|
|
if (evt->type() == QEvent::LanguageChange)
|
|
|
{
|
|
|
ui.retranslateUi(this);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Q_SLOT void QCameraMgrUI::onDoubleClicked(const QModelIndex &index)
|
|
|
{
|
|
|
QString strSerial = m_tableModel.index(index.row(), 2).data().toString();
|
|
|
TP_CAMERA_OPTION camOpt;
|
|
|
m_pCorctl->IGetCameraOption(strSerial, camOpt);
|
|
|
|
|
|
if (m_pCamSetUI)
|
|
|
{
|
|
|
m_pCamSetUI->setParent(this);
|
|
|
//m_pCamSetUI->setWindowIcon(QIcon(LEAPER_LOGO));
|
|
|
m_pCamSetUI->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
|
|
m_pCamSetUI->setWindowModality(Qt::ApplicationModal);
|
|
|
m_pCamSetUI->setAttribute(Qt::WA_ShowModal, true);
|
|
|
|
|
|
m_pCamSetUI->setCoreCtrlPtr(m_pCorctl);
|
|
|
m_pCamSetUI->onModCam(strSerial);
|
|
|
|
|
|
m_pCamSetUI->show();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Q_SLOT void QCameraMgrUI::onShowImage(QString serial, QImage img)
|
|
|
{
|
|
|
if (m_pCamSetUI)
|
|
|
{
|
|
|
m_pCamSetUI->onShowImage(serial, img);
|
|
|
}
|
|
|
}
|