cloud.cpp 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. #include "qt/input/cloud.hpp"
  2. QtInputCloud::QtInputCloud(QtInputData* d,Cloud* c){
  3. data=d;
  4. cloud=(c==nullptr)?data->addCloud():c;
  5. init_groupbox=new QGroupBox("Initial values");
  6. amplitude_init_widget=new QWidget;
  7. left_right_init_widget=new QWidget;
  8. final_groupbox=new QGroupBox("Final values");
  9. amplitude_final_widget=new QWidget;
  10. left_right_final_widget=new QWidget;
  11. init_final_widget=new QWidget;
  12. main_layout=new QVBoxLayout;
  13. init_final_layout=new QHBoxLayout;
  14. init_layout=new QVBoxLayout;
  15. final_layout=new QVBoxLayout;
  16. amplitude_init_layout=new QHBoxLayout;
  17. left_right_init_layout=new QHBoxLayout;
  18. amplitude_final_layout=new QHBoxLayout;
  19. left_right_final_layout=new QHBoxLayout;
  20. amplitude_init_label=new QLabel("Amplitude: ");
  21. amplitude_init_input=new QLineEdit();
  22. amplitude_init_layout->addWidget(amplitude_init_label);
  23. amplitude_init_layout->addWidget(amplitude_init_input);
  24. amplitude_init_widget->setLayout(amplitude_init_layout);
  25. left_init_label=new QLabel("Left: ");
  26. delta_left_init_label=new QLabel(" Left delta: ");
  27. left_init_input=new QLineEdit();
  28. delta_left_init_input=new QLineEdit();
  29. right_init_label=new QLabel(" Right: ");
  30. delta_right_init_label=new QLabel(" Right delta: ");
  31. right_init_input=new QLineEdit();
  32. delta_right_init_input=new QLineEdit();
  33. left_right_init_layout->addWidget(left_init_label);
  34. left_right_init_layout->addWidget(left_init_input,1);
  35. left_right_init_layout->addWidget(delta_left_init_label);
  36. left_right_init_layout->addWidget(delta_left_init_input,1);
  37. left_right_init_layout->addWidget(right_init_label);
  38. left_right_init_layout->addWidget(right_init_input,1);
  39. left_right_init_layout->addWidget(delta_right_init_label);
  40. left_right_init_layout->addWidget(delta_right_init_input,1);
  41. left_right_init_widget->setLayout(left_right_init_layout);
  42. init_layout->addWidget(amplitude_init_widget);
  43. init_layout->addWidget(left_right_init_widget);
  44. init_groupbox->setLayout(init_layout);
  45. amplitude_final_label=new QLabel("Amplitude: ");
  46. amplitude_final_input=new QLineEdit();
  47. amplitude_final_layout->addWidget(amplitude_final_label);
  48. amplitude_final_layout->addWidget(amplitude_final_input);
  49. amplitude_final_widget->setLayout(amplitude_final_layout);
  50. left_final_label=new QLabel("Left: ");
  51. delta_left_final_label=new QLabel(" Left delta: ");
  52. left_final_input=new QLineEdit();
  53. delta_left_final_input=new QLineEdit();
  54. right_final_label=new QLabel(" Right: ");
  55. delta_right_final_label=new QLabel(" Right delta: ");
  56. right_final_input=new QLineEdit();
  57. delta_right_final_input=new QLineEdit();
  58. left_right_final_layout->addWidget(left_final_label);
  59. left_right_final_layout->addWidget(left_final_input,1);
  60. left_right_final_layout->addWidget(delta_left_final_label);
  61. left_right_final_layout->addWidget(delta_left_final_input,1);
  62. left_right_final_layout->addWidget(right_final_label);
  63. left_right_final_layout->addWidget(right_final_input,1);
  64. left_right_final_layout->addWidget(delta_right_final_label);
  65. left_right_final_layout->addWidget(delta_right_final_input,1);
  66. left_right_final_widget->setLayout(left_right_final_layout);
  67. final_layout->addWidget(amplitude_final_widget);
  68. final_layout->addWidget(left_right_final_widget);
  69. final_groupbox->setLayout(final_layout);
  70. init_final_layout->addWidget(init_groupbox);
  71. init_final_layout->addWidget(final_groupbox);
  72. init_final_widget->setLayout(init_final_layout);
  73. remove_button=new QPushButton("Remove",this);
  74. main_layout->addWidget(init_final_widget);
  75. main_layout->addWidget(remove_button);
  76. double_validator=new QDoubleValidator;
  77. double_amplitude_validator=new QDoubleValidator;
  78. double_validator->setBottom(0);
  79. double_validator->setTop(1);
  80. amplitude_init_input->setValidator(double_amplitude_validator);
  81. left_init_input->setValidator(double_validator);
  82. right_init_input->setValidator(double_validator);
  83. delta_left_init_input->setValidator(double_validator);
  84. delta_right_init_input->setValidator(double_validator);
  85. amplitude_final_input->setValidator(double_amplitude_validator);
  86. left_final_input->setValidator(double_validator);
  87. right_final_input->setValidator(double_validator);
  88. delta_left_final_input->setValidator(double_validator);
  89. delta_right_final_input->setValidator(double_validator);
  90. setLayout(main_layout);
  91. setFrameShape(QFrame::Box);
  92. connect(remove_button,&QPushButton::clicked,this,&QtInputCloud::emitRemove);
  93. getCloud();
  94. }
  95. QWidget*
  96. QtInputCloud::validate(){
  97. if(not amplitude_init_input->hasAcceptableInput()) return amplitude_init_input;
  98. if(not left_init_input->hasAcceptableInput()) return left_init_input;
  99. if(not right_init_input->hasAcceptableInput()) return right_init_input;
  100. if(not delta_left_init_input->hasAcceptableInput()) return delta_left_init_input;
  101. if(not delta_right_init_input->hasAcceptableInput()) return delta_right_init_input;
  102. if(not amplitude_final_input->hasAcceptableInput()) return amplitude_final_input;
  103. if(not left_final_input->hasAcceptableInput()) return left_final_input;
  104. if(not right_final_input->hasAcceptableInput()) return right_final_input;
  105. if(not delta_left_final_input->hasAcceptableInput()) return delta_left_final_input;
  106. if(not delta_right_final_input->hasAcceptableInput()) return delta_right_final_input;
  107. double li,lf,ri,rf;
  108. li=left_init_input->text().toDouble();
  109. lf=left_final_input->text().toDouble();
  110. ri=right_init_input->text().toDouble();
  111. rf=right_final_input->text().toDouble();
  112. if(li>=ri) return right_init_input;
  113. if(lf>=rf) return right_final_input;
  114. setCloud();
  115. return nullptr;
  116. }
  117. void
  118. QtInputCloud::setCloud(){
  119. cloud->left_init=left_init_input->text().toDouble();
  120. cloud->right_init=right_init_input->text().toDouble();
  121. cloud->left_final=left_final_input->text().toDouble();
  122. cloud->right_final=right_final_input->text().toDouble();
  123. cloud->amplitude_init=amplitude_init_input->text().toDouble();
  124. cloud->amplitude_final=amplitude_final_input->text().toDouble();
  125. cloud->delta_left_init=delta_left_init_input->text().toDouble();
  126. cloud->delta_right_init=delta_right_init_input->text().toDouble();
  127. cloud->delta_left_final=delta_left_final_input->text().toDouble();
  128. cloud->delta_right_final=delta_right_final_input->text().toDouble();
  129. }
  130. void
  131. QtInputCloud::getCloud(){
  132. amplitude_init_input->setText(QString::number(cloud->amplitude_init));
  133. left_init_input->setText(QString::number(cloud->left_init));
  134. right_init_input->setText(QString::number(cloud->right_init));
  135. delta_left_init_input->setText(QString::number(cloud->delta_left_init));
  136. delta_right_init_input->setText(QString::number(cloud->delta_right_init));
  137. amplitude_final_input->setText(QString::number(cloud->amplitude_final));
  138. left_final_input->setText(QString::number(cloud->left_final));
  139. right_final_input->setText(QString::number(cloud->right_final));
  140. delta_left_final_input->setText(QString::number(cloud->delta_left_final));
  141. delta_right_final_input->setText(QString::number(cloud->delta_right_final));
  142. }