2
0

totalswidget.cpp 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. #include "totalswidget.h"
  2. #include "QtWidgets/qlineedit.h"
  3. #include "src/functions/statistics.h"
  4. #include "src/opl.h"
  5. #include "ui_totalswidget.h"
  6. TotalsWidget::TotalsWidget(WidgetType widgetType, QWidget *parent) :
  7. QWidget(parent),
  8. ui(new Ui::TotalsWidget)
  9. {
  10. ui->setupUi(this);
  11. setup(widgetType);
  12. }
  13. TotalsWidget::~TotalsWidget()
  14. {
  15. delete ui;
  16. }
  17. /*!
  18. * \brief HomeWidget::fillTotals Retreives a Database Summary of Total Flight Time via the OPL::Statistics::totals
  19. * function and parses the return to fill out the QLineEdits.
  20. */
  21. void TotalsWidget::fillTotals(WidgetType widgetType)
  22. {
  23. switch (widgetType) {
  24. case TotalTimeWidget:
  25. {
  26. const auto data = OPL::Statistics::totals();
  27. for (const auto &field : data) {
  28. auto line_edit = this->findChild<QLineEdit *>(field.first + QLatin1String("LineEdit"));
  29. line_edit->setText(field.second);
  30. }
  31. break;
  32. }
  33. case PreviousExperienceWidget:
  34. WARN("NOT IMPLEMENTED!");
  35. qApp->quit();
  36. // get previous exp data and fill
  37. // implement query in opl statistics
  38. }
  39. }
  40. /*!
  41. * \brief TotalsWidget::setup Sets the line edits as editable or read-only and connects signals if required
  42. * \details This widget can be used to either display the totals (in the home widget) or
  43. * to edit the total previous experience, from previous logbooks (in the settings widget).
  44. */
  45. void TotalsWidget::setup(WidgetType widgetType)
  46. {
  47. const auto lineEdits = this->findChildren<QLineEdit *>();
  48. switch (widgetType) {
  49. case TotalTimeWidget:
  50. for (const auto &lineEdit : lineEdits) {
  51. lineEdit->setFocusPolicy(Qt::FocusPolicy::NoFocus);
  52. }
  53. fillTotals(widgetType);
  54. break;
  55. case PreviousExperienceWidget:
  56. for (const auto &lineEdit : lineEdits) {
  57. lineEdit->setFocusPolicy(Qt::FocusPolicy::ClickFocus);
  58. }
  59. fillTotals(widgetType);
  60. connectSignalsAndSlots();
  61. break;
  62. default:
  63. break;
  64. }
  65. }
  66. /*!
  67. * \brief TotalsWidget::connectSignalsAndSlots If the widget is editable, connects the signals and slots
  68. */
  69. void TotalsWidget::connectSignalsAndSlots()
  70. {
  71. // connect signals and slots that edit the applicable field in the database on editing finished
  72. connect(ui->totalLineEdit, &QLineEdit::editingFinished,
  73. this, &TotalsWidget::totalTimeEdited);
  74. connect(ui->spseLineEdit, &QLineEdit::editingFinished,
  75. this, &TotalsWidget::spseTimeEdited);
  76. connect(ui->spmeLineEdit, &QLineEdit::editingFinished,
  77. this, &TotalsWidget::spmeTimeEdited);
  78. connect(ui->multipilotLineEdit, &QLineEdit::editingFinished,
  79. this, &TotalsWidget::multipilotTimeEdited);
  80. connect(ui->picLineEdit, &QLineEdit::editingFinished,
  81. this, &TotalsWidget::picTimeEdited);
  82. connect(ui->sicLineEdit, &QLineEdit::editingFinished,
  83. this, &TotalsWidget::sicTimeEdited);
  84. connect(ui->dualLineEdit, &QLineEdit::editingFinished,
  85. this, &TotalsWidget::dualTimeEdited);
  86. connect(ui->fiLineEdit, &QLineEdit::editingFinished,
  87. this, &TotalsWidget::fiTimeEdited);
  88. connect(ui->picusLineEdit, &QLineEdit::editingFinished,
  89. this, &TotalsWidget::picusTimeEdited);
  90. connect(ui->ifrLineEdit, &QLineEdit::editingFinished,
  91. this, &TotalsWidget::ifrTimeEdited);
  92. connect(ui->simLineEdit, &QLineEdit::editingFinished,
  93. this, &TotalsWidget::simulatorTimeEdited);
  94. connect(ui->todayLineEdit, &QLineEdit::editingFinished,
  95. this, &TotalsWidget::toDayEdited);
  96. connect(ui->tonightLineEdit, &QLineEdit::editingFinished,
  97. this, &TotalsWidget::toNightedited);
  98. connect(ui->ldgdayLineEdit, &QLineEdit::editingFinished,
  99. this, &TotalsWidget::ldgDayEdited);
  100. connect(ui->ldgnightLineEdit, &QLineEdit::editingFinished,
  101. this, &TotalsWidget::ldgNightEdited);
  102. }
  103. void TotalsWidget::totalTimeEdited()
  104. {
  105. INFO("Total Time Edited.");
  106. }
  107. void TotalsWidget::spseTimeEdited()
  108. {
  109. }
  110. void TotalsWidget::spmeTimeEdited()
  111. {
  112. }
  113. void TotalsWidget::multipilotTimeEdited()
  114. {
  115. }
  116. void TotalsWidget::picTimeEdited()
  117. {
  118. }
  119. void TotalsWidget::sicTimeEdited()
  120. {
  121. }
  122. void TotalsWidget::dualTimeEdited()
  123. {
  124. }
  125. void TotalsWidget::fiTimeEdited()
  126. {
  127. }
  128. void TotalsWidget::picusTimeEdited()
  129. {
  130. }
  131. void TotalsWidget::ifrTimeEdited()
  132. {
  133. }
  134. void TotalsWidget::nightTimeEdited()
  135. {
  136. }
  137. void TotalsWidget::simulatorTimeEdited()
  138. {
  139. }
  140. void TotalsWidget::toDayEdited()
  141. {
  142. }
  143. void TotalsWidget::toNightedited()
  144. {
  145. }
  146. void TotalsWidget::ldgDayEdited()
  147. {
  148. }
  149. void TotalsWidget::ldgNightEdited()
  150. {
  151. }