123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- #include "dialogroadnoavoid.h"
- #include "ui_dialogroadnoavoid.h"
- #include "mainwindow.h"
- #include <QMessageBox>
- DialogRoadNoavoid::DialogRoadNoavoid(OpenDrive * pxodr,std::string strdefroad,QWidget *parent) :
- QDialog(parent),
- ui(new Ui::DialogRoadNoavoid)
- {
- ui->setupUi(this);
- mpxodr = pxodr;
- int i;
- int nroadcount = mpxodr->GetRoadCount();
- for(i=0;i<nroadcount;i++)
- {
- const char * strname = mpxodr->GetRoad(i)->GetRoadId().data();
- ui->comboBox_Road->addItem(strname);
- }
- MainWindow::ComboToString(strdefroad,ui->comboBox_Road);
- setWindowTitle("Road Noavoid");
- }
- DialogRoadNoavoid::~DialogRoadNoavoid()
- {
- delete ui;
- }
- void DialogRoadNoavoid::on_comboBox_Road_currentIndexChanged(int index)
- {
- Road * pRoad = mpxodr->GetRoad(index);
- if(pRoad == 0)
- {
- return;
- }
- ui->lineEdit_RoadLen->setText(QString::number(pRoad->GetRoadLength(),'f',3));
- ui->lineEdit_s->setText("");
- ui->lineEdit_t->setText("");
- unsigned int nNoavoidCount = pRoad->GetRoadNoavoidCount();
- ui->comboBox_Noavoid->clear();
- unsigned int i;
- for(i=0;i<nNoavoidCount;i++)
- {
- ui->comboBox_Noavoid->addItem(QString::number(pRoad->GetRoadNoavoid(i)->GetS(),'g'));
- }
- }
- void DialogRoadNoavoid::on_comboBox_Noavoid_currentIndexChanged(int index)
- {
- Road * pRoad = mpxodr->GetRoad(ui->comboBox_Road->currentIndex());
- if(pRoad == 0)
- {
- return;
- }
- if(pRoad->GetRoadNoavoidCount() == 0)
- {
- ui->lineEdit_s->setText("");
- ui->lineEdit_t->setText("");
- return;
- }
- if(index<0)return;
- if(index>=pRoad->GetRoadNoavoidCount())return;
- RoadNoavoid * pRoadNoavoid = pRoad->GetRoadNoavoid(index);
- if(pRoadNoavoid == NULL)
- {
- return;
- }
- ui->lineEdit_s->setText(QString::number(pRoadNoavoid->GetS()));
- ui->lineEdit_t->setText(QString::number(pRoadNoavoid->GetLength()));
- }
- void DialogRoadNoavoid::on_pushButton_Add_clicked()
- {
- Road * pRoad = mpxodr->GetRoad(ui->comboBox_Road->currentIndex());
- if(pRoad == 0)
- {
- return;
- }
- if(ui->lineEdit_s->text().toStdString() == "")
- {
- QMessageBox::warning(this,"Warning","s is empty.",QMessageBox::YesAll);
- return;
- }
- if(ui->lineEdit_t->text().toStdString() == "")
- {
- QMessageBox::warning(this,"Warning","length is empty.",QMessageBox::YesAll);
- return;
- }
- double s = ui->lineEdit_s->text().toDouble();
- double length = ui->lineEdit_t->text().toDouble();
- pRoad->AddRoadNoavoid(s,length);
- on_comboBox_Road_currentIndexChanged(ui->comboBox_Road->currentIndex());
- }
- void DialogRoadNoavoid::on_pushButton_Delete_clicked()
- {
- Road * pRoad = mpxodr->GetRoad(ui->comboBox_Road->currentIndex());
- if(pRoad == 0)
- {
- return;
- }
- pRoad->DeleteRoadNoavoid(ui->comboBox_Noavoid->currentIndex());
- on_comboBox_Road_currentIndexChanged(ui->comboBox_Road->currentIndex());
- }
- void DialogRoadNoavoid::on_pushButton_Change_clicked()
- {
- Road * pRoad = mpxodr->GetRoad(ui->comboBox_Road->currentIndex());
- if(pRoad == NULL)
- {
- return;
- }
- RoadNoavoid * pRoadNoavoid = pRoad->GetRoadNoavoid(ui->comboBox_Noavoid->currentIndex());
- pRoadNoavoid->SetS(ui->lineEdit_s->text().toDouble());
- pRoadNoavoid->SetLength(ui->lineEdit_t->text().toDouble());
- QMessageBox::information(this,"Info","Change RoadNoavoid Successfully.",QMessageBox::YesAll);
- }
|