123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- #include "DeviceTempleteCreator.h"
- DeviceTempleteCreator::DeviceTempleteCreator(QWidget* parent)
- {
- TAG_CAM_ROW_GROUP group;
- group.nColOffset = 0;
- group.nRowOffset = 0;
- group.nRowCameraCount = 0;
- group.nRowCameraIndex = 0;
- group.pNextIntersectGroup = nullptr;
- m_CameraRowGroupList.push_back(group);
- if (int(m_CameraRowGroupList.size()) != 0)
- m_pCurrentRowGroup = &m_CameraRowGroupList.back();
- else
- m_pCurrentRowGroup = nullptr;
- ChangeCurrentGroup(m_pCurrentRowGroup);
- ui.setupUi(this);
- ui.ComboBoxSelectRow->addItem("0");
- InitConnect();
- }
- DeviceTempleteCreator::~DeviceTempleteCreator()
- {
- }
- void DeviceTempleteCreator::InitConnect()
- {
- ui.lineEditColStartX->init(QString("0"), true, CAMERA_COL_OFFSET_MAX);
- ui.lineEditColStartX->SetEditTarget(m_pCurrentColumnCameraOffset);
- ui.lineEditRowStartY->init(QString("0"), true, CAMERA_ROW_OFFSET_MAX);
- ui.lineEditRowStartY->SetEditTarget(m_pCurrentRowCameraOffset);
- ui.LineEditRowCameraNum->init(QString("0"), true, CAMERA_ROW_NUM_MAX);
- ui.LineEditRowCameraNum->SetEditTarget(m_pCurrentCameraNumber);
- ui.LineEditRowCameraNum->setValidator(new QIntValidator(CAMERA_ROW_NUM_MIN, CAMERA_ROW_NUM_MAX, this));
- ui.lineEditRowIndex->init(QString("0"), true, CAMERA_ROW_NUM_MAX);
- ui.lineEditRowIndex->SetEditTarget(m_pCurrentCameraRowIndex);
- ui.lineEditRowIndex->setValidator(new QIntValidator(CAMERA_ROW_NUM_MIN, CAMERA_ROW_NUM_MAX, this));
- connect(ui.ComboBoxSelectRow, QOverload<int>::of(& QComboBox::currentIndexChanged), this, &DeviceTempleteCreator::OnComboBoxCurrentIndexChanged);
- connect(ui.PushButtonIncRow, &QPushButton::clicked, this, &DeviceTempleteCreator::OnAddRowButtonClicked);
- connect(ui.PushButtonDecRow,&QPushButton::clicked, this, &DeviceTempleteCreator::OnDeleteRowButtonClicked);
- connect(ui.LineEditRowCameraNum,&QLineEdit::textEdited, this, &DeviceTempleteCreator::OnRowCameraNumChanged);
- connect(ui.lineEditColStartX,&QLineEdit::textEdited, this, &DeviceTempleteCreator::OnColumnOffsetChanged);
- connect(ui.lineEditRowStartY,&QLineEdit::textEdited, this, &DeviceTempleteCreator::OnRowOffsetChanged);
- connect(ui.buttonBox, &QDialogButtonBox::accepted, this, &DeviceTempleteCreator::close);
- connect(ui.buttonBox, &QDialogButtonBox::rejected, this, &DeviceTempleteCreator::close);
- connect(ui.CheckCameraPoseHor,&QCheckBox::stateChanged, this, &DeviceTempleteCreator::OnHorCameraPosCheckBoxStateChanged);
- connect(ui.CheckCameraPoseVec,&QCheckBox::stateChanged, this, &DeviceTempleteCreator::OnVecCameraPosCheckBoxStateChanged);
- }
- void DeviceTempleteCreator::SetScene(CameraModifyScene* pScene)
- {
- m_pCameraModifyScene = pScene;
- ui.graphicsView->setScene(m_pCameraModifyScene);
- ui.graphicsView->setMouseTracking(true);
- ui.graphicsView->viewport()->rect().setRect(0, 0, CAMERA_SCENE_WIDTH, CAMERA_SCENE_HEIGHT);
- ui.graphicsView->setDragMode(ui.graphicsView->NoDrag);
- ui.graphicsView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- ui.graphicsView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- }
- void DeviceTempleteCreator::Excute()
- {
- show();
- }
- void DeviceTempleteCreator::OnComboBoxCurrentIndexChanged(int index)
- {
- int nListSize = m_CameraRowGroupList.size();
- //if (nListSize <= index)
- //{
- // while (nListSize <= index)
- // {
- // m_CameraRowGroupList.push_back(TAG_CAM_ROW_GROUP());
- // }
- // m_pCurrentRowGroup = &m_CameraRowGroupList.back();
- // m_pCurrentRowGroup->nRowCameraIndex = index;
- //}
- //else
- {
- std::list<TAG_CAM_ROW_GROUP>::iterator it = m_CameraRowGroupList.begin();
- for (int i = 0; i < index; i++)
- it++;
- m_nCurrentRowNum = index;
- m_pCurrentRowGroup = &(*it);
- ChangeCurrentGroup(m_pCurrentRowGroup);
- ui.lineEditColStartX->SetEditTarget(m_pCurrentColumnCameraOffset);
- ui.lineEditColStartX->setText(QString::number(m_pCurrentRowGroup->nColOffset));
- ui.lineEditRowStartY->SetEditTarget(m_pCurrentRowCameraOffset);
- ui.lineEditRowStartY->setText(QString::number(m_pCurrentRowGroup->nRowOffset));
- ui.LineEditRowCameraNum->SetEditTarget(m_pCurrentCameraNumber);
- ui.LineEditRowCameraNum->setText(QString::number(m_pCurrentRowGroup->nRowCameraCount));
- ui.lineEditRowIndex->SetEditTarget(m_pCurrentCameraRowIndex);
- ui.lineEditRowIndex->setText(QString::number(m_pCurrentRowGroup->nRowCameraIndex));
- }
-
- }
- void DeviceTempleteCreator::ChangeCurrentGroup(LPTAG_CAM_ROW_GROUP pCurrentGroup)
- {
- //init the current row camera offset
- m_pCurrentRowCameraOffset = &pCurrentGroup->nRowOffset;
- //init the current column camera offset
- m_pCurrentColumnCameraOffset = &pCurrentGroup->nColOffset;
- //init the current camera row index
- m_pCurrentCameraRowIndex = &pCurrentGroup->nRowCameraIndex;
- //init the current camera number
- m_pCurrentCameraNumber = &pCurrentGroup->nRowCameraCount;
- update();
- }
- void DeviceTempleteCreator::OnAddRowButtonClicked()
- {
- int nListSize = m_CameraRowGroupList.size();
- TAG_CAM_ROW_GROUP tagCamRowGroup;
- tagCamRowGroup.nRowCameraIndex = nListSize;
- m_CameraRowGroupList.push_back(tagCamRowGroup);
- m_pCurrentRowGroup = &m_CameraRowGroupList.back();
- ui.ComboBoxSelectRow->addItem(QString::number(nListSize));
-
- //ui.ComboBoxSelectRow->setCurrentIndex(nListSize);
- emit ui.ComboBoxSelectRow->currentIndexChanged(nListSize);
- }
- void DeviceTempleteCreator::OnDeleteRowButtonClicked()
- {
- int nCurrentDeleteIndex = m_pCurrentRowGroup->nRowCameraIndex;
- std::list<TAG_CAM_ROW_GROUP>::iterator it = m_CameraRowGroupList.begin();
- for (int i = 0; i < nCurrentDeleteIndex; i++)
- it++;
- m_CameraRowGroupList.erase(it);
- //reset the index in group
- int nListSize = m_CameraRowGroupList.size();
- it = m_CameraRowGroupList.begin();
- for (int i = 0; i < nListSize; i++)
- {
- it->nRowCameraIndex = i;
- }
- }
- void DeviceTempleteCreator::OnRowCameraNumChanged(const QString& text)
- {
- int nCameraNum = text.toInt();
- if(nCameraNum == *m_pCurrentCameraNumber)
- return;
-
- auto iter = m_CameraRowGroupList.begin();
- for (int index = 0; index < (m_CameraRowGroupList.size()-1); index++)
- iter++;
- m_pCurrentRowGroup = &(*iter);
- if (m_pCurrentRowGroup != nullptr)
- {
- for (int i = 0; i < m_pCurrentRowGroup->CameraItemGroup.size(); i++)
- {
- std::list<CameraItem>::iterator it = m_pCurrentRowGroup->CameraItemGroup.begin();
- //remove the camera item
- m_pCameraModifyScene->removeItem(&(*(it++)));
- }
- }
- //update the camera row item number
- m_pCurrentRowGroup->CameraItemGroup.clear();
- int nIndex = 0;
- while (nIndex < nCameraNum)
- {
- if (nIndex < *m_pCurrentCameraNumber)
- continue;
- else
- m_pCurrentRowGroup->CameraItemGroup.push_back(CameraItem());
- nIndex++;
- }
- //put all item in group in scene again
- std::list<CameraItem>::iterator it = m_pCurrentRowGroup->CameraItemGroup.begin();
- for (int i = 0; i < m_pCurrentRowGroup->CameraItemGroup.size(); i++)
- {
- it->nItemColIndex = i;
- it->nItemRowIndex = *m_pCurrentCameraRowIndex;
- //add the camera item
- m_pCameraModifyScene->addItem(&(*(it++)));
- }
- //update the camera number
- *m_pCurrentCameraNumber = nCameraNum;
- //emit the camera item modified signal£¬let the camera item group Rearrange
- emit m_pCameraModifyScene->CameraItemModified();
- }
- void DeviceTempleteCreator::OnRowOffsetChanged(const QString& text)
- {
- int nOffset = text.toInt();
- *m_pCurrentRowCameraOffset = nOffset;
- emit m_pCameraModifyScene->CameraItemModified();
- }
- void DeviceTempleteCreator::OnColumnOffsetChanged(const QString& text)
- {
- int nOffset = text.toInt();
- *m_pCurrentColumnCameraOffset = nOffset;
- emit m_pCameraModifyScene->CameraItemModified();
- }
- void DeviceTempleteCreator::closeEvent(QCloseEvent* event)
- {
- //updata the current group data
- //m_pCurrentRowGroup->nRowOffset = *m_pCurrentRowCameraOffset;
- //m_pCurrentRowGroup->nColOffset = *m_pCurrentColumnCameraOffset;
- //m_pCurrentRowGroup->nRowCameraIndex = *m_pCurrentCameraRowIndex;
- //m_pCurrentRowGroup->nRowCameraCount = *m_pCurrentCameraNumber;
- //carry on the close event
- QWidget::closeEvent(event);
- }
- void DeviceTempleteCreator::OnHorCameraPosCheckBoxStateChanged(int state)
- {
- if (ui.CheckCameraPoseHor->checkState())
- {
- ui.CheckCameraPoseVec->setChecked(false);
- }
- else if (!ui.CheckCameraPoseHor->checkState())
- {
- ui.CheckCameraPoseVec->setCheckable(true);
- }
- }
- void DeviceTempleteCreator::OnVecCameraPosCheckBoxStateChanged(int state)
- {
- if (ui.CheckCameraPoseVec->checkState())
- {
- ui.CheckCameraPoseHor->setChecked(false);
- }
- else if (!ui.CheckCameraPoseVec->checkState())
- {
- ui.CheckCameraPoseHor->setCheckable(true);
- }
- }
|