dialogroadobject_outline_cornerroad.cpp 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. #include "dialogroadobject_outline_cornerroad.h"
  2. #include "ui_dialogroadobject_outline_cornerroad.h"
  3. DialogRoadObject_Outline_cornerRoad::DialogRoadObject_Outline_cornerRoad(Object_outlines_outline * poutline,int ntype,QWidget *parent) :
  4. QDialog(parent),
  5. ui(new Ui::DialogRoadObject_Outline_cornerRoad)
  6. {
  7. ui->setupUi(this);
  8. mpoutline = poutline;
  9. mntype = ntype;
  10. if(ntype == 1)
  11. {
  12. ui->label_s->setText("u");
  13. ui->label_t->setText("v");
  14. ui->label_dz->setText("z");
  15. ui->label_corner->setText("cornerLocal");
  16. }
  17. UpdateCB();
  18. if(ntype == 0)
  19. setWindowTitle("Edit Road Object Outline cornerRoad");
  20. else
  21. setWindowTitle("Edit Road Object Outline cornerLocal");
  22. }
  23. DialogRoadObject_Outline_cornerRoad::~DialogRoadObject_Outline_cornerRoad()
  24. {
  25. delete ui;
  26. }
  27. void DialogRoadObject_Outline_cornerRoad::on_pushButton_Add_clicked()
  28. {
  29. if(mpoutline == NULL)return;
  30. if(mntype == 0)
  31. {
  32. if(ViewCreate::CheckLE(ui->lineEdit_s,"s",true,this) == false)return;
  33. if(ViewCreate::CheckLE(ui->lineEdit_t,"t",true,this) == false)return;
  34. if(ViewCreate::CheckLE(ui->lineEdit_dz,"dz",true,this) == false)return;
  35. }
  36. else
  37. {
  38. if(ViewCreate::CheckLE(ui->lineEdit_s,"u",true,this) == false)return;
  39. if(ViewCreate::CheckLE(ui->lineEdit_t,"v",true,this) == false)return;
  40. if(ViewCreate::CheckLE(ui->lineEdit_dz,"z",true,this) == false)return;
  41. }
  42. if(ViewCreate::CheckLE(ui->lineEdit_height,"height",true,this) == false)return;
  43. if(mntype == 0)
  44. {
  45. mpoutline->AddcornerRoad(ui->lineEdit_s->text().toDouble(),
  46. ui->lineEdit_t->text().toDouble(),
  47. ui->lineEdit_dz->text().toDouble(),
  48. ui->lineEdit_height->text().toDouble());
  49. Object_outlines_outline_cornerRoad * pcornerRoad = mpoutline->GetLastAddedcornerRoad();
  50. if(ViewCreate::CheckLE(ui->lineEdit_id,"id",false,this) == true)
  51. {
  52. pcornerRoad->Setid(ui->lineEdit_id->text().toInt());
  53. }
  54. }
  55. else
  56. {
  57. mpoutline->AddcornerLocal(ui->lineEdit_s->text().toDouble(),
  58. ui->lineEdit_t->text().toDouble(),
  59. ui->lineEdit_dz->text().toDouble(),
  60. ui->lineEdit_height->text().toDouble());
  61. Object_outlines_outline_cornerLocal * pcornerLocal = mpoutline->GetLastAddedcornerLocal();
  62. if(ViewCreate::CheckLE(ui->lineEdit_id,"id",false,this) == true)
  63. {
  64. pcornerLocal->Setid(ui->lineEdit_id->text().toInt());
  65. }
  66. }
  67. UpdateCB();
  68. }
  69. void DialogRoadObject_Outline_cornerRoad::on_pushButton_Delete_clicked()
  70. {
  71. if(mpoutline == NULL)return;
  72. if(mntype == 0)
  73. {
  74. if(mpoutline->GetcornerRoadCount() == 0)
  75. {
  76. QMessageBox::warning(this,"Warning","No CornerRoad.",QMessageBox::YesAll);
  77. return;
  78. }
  79. mpoutline->DeletecornerRoad(ui->comboBox_corner->currentIndex());
  80. }
  81. else
  82. {
  83. if(mpoutline->GetcornerLocalCount() == 0)
  84. {
  85. QMessageBox::warning(this,"Warning","No CornerLocal.",QMessageBox::YesAll);
  86. return;
  87. }
  88. mpoutline->DeletecornerLocal(ui->comboBox_corner->currentIndex());
  89. }
  90. UpdateCB();
  91. }
  92. void DialogRoadObject_Outline_cornerRoad::on_pushButton_Change_clicked()
  93. {
  94. if(mpoutline == NULL)return;
  95. Object_outlines_outline_cornerRoad * pcornerRoad = NULL;
  96. Object_outlines_outline_cornerLocal * pcornerLocal = NULL;
  97. if(mntype == 0)
  98. {
  99. if(mpoutline->GetcornerRoadCount() == 0)
  100. {
  101. QMessageBox::warning(this,"Warning","No CornerRoad.",QMessageBox::YesAll);
  102. return;
  103. }
  104. pcornerRoad = mpoutline->GetcornerRoad(ui->comboBox_corner->currentIndex());
  105. if(pcornerRoad == NULL)
  106. {
  107. QMessageBox::warning(this,"Warning","cornerRoad NULL.",QMessageBox::YesAll);
  108. return;
  109. }
  110. }
  111. else
  112. {
  113. if(mpoutline->GetcornerLocalCount() == 0)
  114. {
  115. QMessageBox::warning(this,"Warning","No CornerLocal.",QMessageBox::YesAll);
  116. return;
  117. }
  118. pcornerLocal = mpoutline->GetcornerLocal(ui->comboBox_corner->currentIndex());
  119. if(pcornerLocal == NULL)
  120. {
  121. QMessageBox::warning(this,"Warning","cornerLocal NULL.",QMessageBox::YesAll);
  122. return;
  123. }
  124. }
  125. if(mntype == 0)
  126. {
  127. if(ViewCreate::CheckLE(ui->lineEdit_s,"s",true,this) == false)return;
  128. if(ViewCreate::CheckLE(ui->lineEdit_t,"t",true,this) == false)return;
  129. if(ViewCreate::CheckLE(ui->lineEdit_dz,"dz",true,this) == false)return;
  130. }
  131. else
  132. {
  133. if(ViewCreate::CheckLE(ui->lineEdit_s,"u",true,this) == false)return;
  134. if(ViewCreate::CheckLE(ui->lineEdit_t,"v",true,this) == false)return;
  135. if(ViewCreate::CheckLE(ui->lineEdit_dz,"z",true,this) == false)return;
  136. }
  137. if(ViewCreate::CheckLE(ui->lineEdit_height,"height",true,this) == false)return;
  138. if(mntype == 0)
  139. {
  140. pcornerRoad->Sets(ui->lineEdit_s->text().toDouble());
  141. pcornerRoad->Sett(ui->lineEdit_t->text().toDouble());
  142. pcornerRoad->Setdz(ui->lineEdit_dz->text().toDouble());
  143. pcornerRoad->Setheight(ui->lineEdit_height->text().toDouble());
  144. if(ViewCreate::CheckLE(ui->lineEdit_id,"id",false,this) == true)
  145. {
  146. pcornerRoad->Setid(ui->lineEdit_id->text().toInt());
  147. }
  148. QMessageBox::information(this,"Info","Change cornerRoad Successfully",QMessageBox::YesAll);
  149. }
  150. else
  151. {
  152. pcornerLocal->Setu(ui->lineEdit_s->text().toDouble());
  153. pcornerLocal->Setv(ui->lineEdit_t->text().toDouble());
  154. pcornerLocal->Setz(ui->lineEdit_dz->text().toDouble());
  155. pcornerLocal->Setheight(ui->lineEdit_height->text().toDouble());
  156. if(ViewCreate::CheckLE(ui->lineEdit_id,"id",false,this) == true)
  157. {
  158. pcornerLocal->Setid(ui->lineEdit_id->text().toInt());
  159. }
  160. QMessageBox::information(this,"Info","Change cornerLocal Successfully",QMessageBox::YesAll);
  161. }
  162. int index = ui->comboBox_corner->currentIndex();
  163. UpdateCB();
  164. ui->comboBox_corner->setCurrentIndex(index);
  165. }
  166. void DialogRoadObject_Outline_cornerRoad::UpdateCB()
  167. {
  168. ui->comboBox_corner->clear();
  169. if(mpoutline == NULL)return;
  170. if(mntype == 0)
  171. {
  172. unsigned ncornerRoadCount = mpoutline->GetcornerRoadCount();
  173. unsigned i;
  174. for(i=0;i<ncornerRoadCount;i++)
  175. {
  176. ui->comboBox_corner->addItem("cornerRoad "+ QString::number(i));
  177. }
  178. }
  179. else
  180. {
  181. unsigned ncornerLocalCount = mpoutline->GetcornerLocalCount();
  182. unsigned i;
  183. for(i=0;i<ncornerLocalCount;i++)
  184. {
  185. ui->comboBox_corner->addItem("cornerLocal "+ QString::number(i));
  186. }
  187. }
  188. }
  189. void DialogRoadObject_Outline_cornerRoad::on_comboBox_corner_currentIndexChanged(int index)
  190. {
  191. if(index <0)return;
  192. if(mpoutline == NULL)return;
  193. if(mntype == 0)
  194. {
  195. Object_outlines_outline_cornerRoad * pcornerRoad = mpoutline->GetcornerRoad(index);
  196. if(pcornerRoad == NULL)
  197. {
  198. qDebug(" DialogRoadObject_Outline_cornerRoad::on_comboBox_corner_currentIndexChanged get cornerRoad Fail,index:%d",index);
  199. return;
  200. }
  201. ui->lineEdit_s->setText(QString::number(pcornerRoad->Gets()));
  202. ui->lineEdit_t->setText(QString::number(pcornerRoad->Gett()));
  203. ui->lineEdit_dz->setText(QString::number(pcornerRoad->Getdz()));
  204. ui->lineEdit_height->setText(QString::number(pcornerRoad->Getheight()));
  205. int id;
  206. if(pcornerRoad->Getid(id) == 1)
  207. {
  208. ui->lineEdit_id->setText(QString::number(id));
  209. }
  210. else
  211. {
  212. ui->lineEdit_id->setText("");
  213. }
  214. }
  215. else
  216. {
  217. Object_outlines_outline_cornerLocal * pcornerLocal = mpoutline->GetcornerLocal(index);
  218. if(pcornerLocal == NULL)
  219. {
  220. qDebug(" DialogRoadObject_Outline_cornerRoad::on_comboBox_corner_currentIndexChanged get cornerRoad Fail,index:%d",index);
  221. return;
  222. }
  223. ui->lineEdit_s->setText(QString::number(pcornerLocal->Getu()));
  224. ui->lineEdit_t->setText(QString::number(pcornerLocal->Getv()));
  225. ui->lineEdit_dz->setText(QString::number(pcornerLocal->Getz()));
  226. ui->lineEdit_height->setText(QString::number(pcornerLocal->Getheight()));
  227. int id;
  228. if(pcornerLocal->Getid(id) == 1)
  229. {
  230. ui->lineEdit_id->setText(QString::number(id));
  231. }
  232. else
  233. {
  234. ui->lineEdit_id->setText("");
  235. }
  236. }
  237. }