|
@@ -0,0 +1,177 @@
|
|
|
+#include "dialogroadobject_markingcornerreference.h"
|
|
|
+#include "ui_dialogroadobject_markingcornerreference.h"
|
|
|
+
|
|
|
+#include <iostream>
|
|
|
+
|
|
|
+DialogRoadObject_MarkingcornerReference::DialogRoadObject_MarkingcornerReference(Object_markings_marking * pmarking, QWidget *parent) :
|
|
|
+ QDialog(parent),
|
|
|
+ ui(new Ui::DialogRoadObject_MarkingcornerReference)
|
|
|
+{
|
|
|
+ ui->setupUi(this);
|
|
|
+ mpmarking = pmarking;
|
|
|
+
|
|
|
+ CreateView();
|
|
|
+
|
|
|
+ UpdateCB();
|
|
|
+
|
|
|
+ setWindowTitle("Edit Marking cornerReference");
|
|
|
+}
|
|
|
+
|
|
|
+DialogRoadObject_MarkingcornerReference::~DialogRoadObject_MarkingcornerReference()
|
|
|
+{
|
|
|
+ delete ui;
|
|
|
+}
|
|
|
+
|
|
|
+void DialogRoadObject_MarkingcornerReference::CreateView()
|
|
|
+{
|
|
|
+ int startpos_x = 30;
|
|
|
+ int startpos_y = 30;
|
|
|
+ int nSpace = 260;
|
|
|
+ int nLabelWidth = 80;
|
|
|
+ int nLEWidth = 150;
|
|
|
+ int nHeight = 35;
|
|
|
+ int nVSpace = 60;
|
|
|
+ int nVIndex = 0;
|
|
|
+ int nHIndex = 0;
|
|
|
+
|
|
|
+ mpCBcornerReference = ViewCreate::CreateCB(startpos_x+nHIndex*nSpace,startpos_y+nVIndex*nVSpace,nLabelWidth*15/10,nLEWidth*15/10,nHeight,"cornerReference",this);
|
|
|
+ nVIndex++;
|
|
|
+ nHIndex = 0;
|
|
|
+
|
|
|
+ mpLEid = ViewCreate::CreateLE(startpos_x+nHIndex*nSpace,startpos_y+nVIndex*nVSpace,nLabelWidth,nLEWidth,nHeight,"id",this);
|
|
|
+
|
|
|
+ nVIndex++;
|
|
|
+ int nPBSpace = 150;
|
|
|
+ int nPBWidth = 100;
|
|
|
+
|
|
|
+
|
|
|
+ mpPBAdd = ViewCreate::CreatePB(startpos_x+0*nPBSpace,startpos_y+nVIndex*nVSpace,nPBWidth,nHeight,"Add",this);
|
|
|
+ mpPBDelete = ViewCreate::CreatePB(startpos_x+1*nPBSpace,startpos_y+nVIndex*nVSpace,nPBWidth,nHeight,"Delete",this);
|
|
|
+ mpPBChange = ViewCreate::CreatePB(startpos_x+2*nPBSpace,startpos_y+nVIndex*nVSpace,nPBWidth,nHeight,"Change",this);
|
|
|
+
|
|
|
+ connect(mpCBcornerReference,SIGNAL(currentIndexChanged(int)),this,SLOT(CurrentcornerReference(int)));
|
|
|
+ connect(mpPBAdd,SIGNAL(clicked(bool)),this,SLOT(onClickAdd()));
|
|
|
+ connect(mpPBDelete,SIGNAL(clicked(bool)),this,SLOT(onClickDelete()));
|
|
|
+ connect(mpPBChange,SIGNAL(clicked(bool)),this,SLOT(onClickChange()));
|
|
|
+}
|
|
|
+
|
|
|
+void DialogRoadObject_MarkingcornerReference::UpdateCB()
|
|
|
+{
|
|
|
+ mpCBcornerReference->clear();
|
|
|
+ int i;
|
|
|
+ if(mpmarking == 0)return;
|
|
|
+ Object_markings_marking * pMarking = mpmarking;
|
|
|
+
|
|
|
+ int ncornerReferenceCount = pMarking->GetcornerReferenceCount();
|
|
|
+
|
|
|
+ for(i=0;i<ncornerReferenceCount;i++)
|
|
|
+ {
|
|
|
+ mpCBcornerReference->addItem(QString("cornerReference ")+ QString::number(i));
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void DialogRoadObject_MarkingcornerReference::CurrentcornerReference(int index)
|
|
|
+{
|
|
|
+ if(index == -1)return;
|
|
|
+ if(mpmarking == 0)return;
|
|
|
+
|
|
|
+ Object_markings_marking * pMarking = mpmarking;
|
|
|
+
|
|
|
+ if(pMarking == NULL)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Object_markings_marking_cornerReference * pcornerRef = pMarking->GetcornerReference(index);
|
|
|
+
|
|
|
+ if(pcornerRef == NULL)
|
|
|
+ {
|
|
|
+ std::cout<<" Object Marking cornerReference "<<index<<" is NULL"<<std::endl;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ mpLEid->setText(QString::number(pcornerRef->Getid()));
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void DialogRoadObject_MarkingcornerReference::onClickAdd()
|
|
|
+{
|
|
|
+ if(mpmarking == 0)
|
|
|
+ {
|
|
|
+ QMessageBox::warning(this,"Warning","Marking is NULL.",QMessageBox::YesAll);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Object_markings_marking * pMarking = mpmarking;
|
|
|
+
|
|
|
+ unsigned int id;
|
|
|
+
|
|
|
+ if(ViewCreate::CheckLE(mpLEid,"id",true,this) == true)
|
|
|
+ {
|
|
|
+ id = mpLEid->text().toInt();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ pMarking->AddcornerReference(id);
|
|
|
+
|
|
|
+ UpdateCB();
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void DialogRoadObject_MarkingcornerReference::onClickDelete()
|
|
|
+{
|
|
|
+ Object_markings_marking * pMarking = mpmarking;
|
|
|
+
|
|
|
+ if(mpmarking == 0)return;
|
|
|
+
|
|
|
+ if(pMarking->GetcornerReferenceCount() == 0)
|
|
|
+ {
|
|
|
+ QMessageBox::warning(this,"Warning","No cornerReference.",QMessageBox::YesAll);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ pMarking->DeletecornerReference(mpCBcornerReference->currentIndex());
|
|
|
+
|
|
|
+ UpdateCB();
|
|
|
+}
|
|
|
+
|
|
|
+void DialogRoadObject_MarkingcornerReference::onClickChange()
|
|
|
+{
|
|
|
+ if(mpmarking == 0)
|
|
|
+ {
|
|
|
+ QMessageBox::warning(this,"Warning","Marking is NULL.",QMessageBox::YesAll);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Object_markings_marking * pMarking = mpmarking;
|
|
|
+ if(pMarking->GetcornerReferenceCount() == 0)
|
|
|
+ {
|
|
|
+ QMessageBox::warning(this,"Warning","No cornerReference.",QMessageBox::YesAll);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Object_markings_marking_cornerReference * pcorner = pMarking->GetcornerReference(mpCBcornerReference->currentIndex());
|
|
|
+
|
|
|
+ if(pcorner == NULL)
|
|
|
+ {
|
|
|
+ QMessageBox::warning(this,"Warnig","cornerReference is NULL",QMessageBox::YesAll);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ unsigned int id;
|
|
|
+ if(ViewCreate::CheckLE(mpLEid,"id",true,this) == true)
|
|
|
+ {
|
|
|
+ id = mpLEid->text().toInt();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ pcorner->Setid(id);
|
|
|
+
|
|
|
+}
|