setinfowidget.cpp 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. #include "setinfowidget.h"
  2. #include <QTabBar>
  3. #include "CompareItemData.h"
  4. #include "ui_setinfowidget.h"
  5. #include "UIStyleManager.h"
  6. #include "tipwidget.h"
  7. #include "GlobalInfo.h"
  8. SetInfoWidget::SetInfoWidget(QWidget *parent) :
  9. QWidget(parent),
  10. ui(new Ui::SetInfoWidget)
  11. {
  12. ui->setupUi(this);
  13. /* 连接信号和槽 */
  14. connect(ui->pBtn_save, &QPushButton::clicked, this, &SetInfoWidget::do_pBtn_save_clicked);
  15. connect(ui->pBtn_cancel, &QPushButton::clicked, this, &SetInfoWidget::do_pBtn_cancel_clicked);
  16. connect(ui->tabWidget, &QTabWidget::currentChanged, this, &SetInfoWidget::do_tabWidget_currentChanged);
  17. /* 设置样式表 */
  18. UIStyle.registerWidget(this);
  19. }
  20. SetInfoWidget::~SetInfoWidget()
  21. {
  22. /* 注销样式表 */
  23. UIStyle.unregisterWidget(this);
  24. delete ui;
  25. }
  26. /* 设置WebAPI */
  27. void SetInfoWidget::setWebAPI(FromWebAPI* api)
  28. {
  29. m_fromWebAPI = api;
  30. /* 设置BasicWidget的WebAPI */
  31. BasicWidget* basicWidget = qobject_cast<BasicWidget*>(ui->tabWidget->widget(0));
  32. if(basicWidget)
  33. {
  34. basicWidget->setWebAPI(m_fromWebAPI);
  35. }
  36. /* 设置ai对比项的webapi指针 */
  37. AICompareWidget* aiCompareWidget = qobject_cast<AICompareWidget*>(ui->tabWidget->widget(1));
  38. if(aiCompareWidget)
  39. {
  40. aiCompareWidget->setWebAPI(m_fromWebAPI);
  41. }
  42. /* 设置噪音检测的webapi */
  43. NoiseWidget* noiseWidget = qobject_cast<NoiseWidget*>(ui->tabWidget->widget(2));
  44. if(noiseWidget)
  45. {
  46. noiseWidget->setWebAPI(m_fromWebAPI);
  47. }
  48. /* 设置数据库配置的WebAPI */
  49. DatabaseWidget* databaseWidget = qobject_cast<DatabaseWidget*>(ui->tabWidget->widget(3));
  50. if(databaseWidget)
  51. {
  52. databaseWidget->setWebAPI(m_fromWebAPI);
  53. }
  54. /* 设置检测时段的WebAPI */
  55. CheckPeriodWidget* checkPeriodWidget = qobject_cast<CheckPeriodWidget*>(ui->tabWidget->widget(4));
  56. if(checkPeriodWidget)
  57. {
  58. checkPeriodWidget->setWebAPI(m_fromWebAPI);
  59. }
  60. }
  61. /* 保存按钮 */
  62. void SetInfoWidget::do_pBtn_save_clicked()
  63. {
  64. saveData();
  65. }
  66. /* 取消按钮 */
  67. void SetInfoWidget::do_pBtn_cancel_clicked()
  68. {
  69. }
  70. /* 切换了页面 */
  71. void SetInfoWidget::do_tabWidget_currentChanged(int index)
  72. {
  73. /* 获取当前页的编号 */
  74. QWidget* currentWidget = ui->tabWidget->currentWidget();
  75. if(currentWidget == nullptr)
  76. {
  77. return;
  78. }
  79. /* 根据当前页的编号执行不同的操作 */
  80. switch(index)
  81. {
  82. case 0: // 基础信息
  83. break;
  84. case 1: // 对比项
  85. break;
  86. case 2: // 噪音检测
  87. break;
  88. case 3: // 数据库
  89. break;
  90. case 4: // 检测时段
  91. {
  92. /* 设置对比项到可选列表中 */
  93. CheckPeriodWidget* checkPeriodWidget = qobject_cast<CheckPeriodWidget*>(currentWidget);
  94. if(checkPeriodWidget)
  95. {
  96. checkPeriodWidget->updateCompareItemList(CIData.getCompareItemList());
  97. }
  98. }
  99. break;
  100. default:
  101. break;
  102. }
  103. }
  104. /* 保存数据,这个是保存所有的数据 */
  105. bool SetInfoWidget::saveData()
  106. {
  107. bool isSuccess = true;
  108. /* 保存基础信息 */
  109. if(!ui->tabBasic->saveBasicInfo())
  110. {
  111. /* 保存失败 */
  112. TipWidget::display(TipWidget::OPERATOR_FAIL, "基础信息保存失败", GInfo.getTopWindow());
  113. isSuccess = false;
  114. }
  115. /* 保存AI对比信息 */
  116. if(!ui->tabAICompare->saveConfig())
  117. {
  118. /* 保存失败 */
  119. TipWidget::display(TipWidget::OPERATOR_FAIL, "AI对比信息保存失败", GInfo.getTopWindow());
  120. isSuccess = false;
  121. }
  122. /* 保存噪音检测信息 */
  123. if(!ui->tabNoiseCheck->saveConfig())
  124. {
  125. /* 保存失败 */
  126. TipWidget::display(TipWidget::OPERATOR_FAIL, "噪音检测信息保存失败", GInfo.getTopWindow());
  127. isSuccess = false;
  128. }
  129. /* 保存数据库信息 */
  130. if(!ui->tabDatabase->saveParams())
  131. {
  132. /* 保存失败 */
  133. TipWidget::display(TipWidget::OPERATOR_FAIL, "数据库信息保存失败", GInfo.getTopWindow());
  134. isSuccess = false;
  135. }
  136. /* 保存检测时段信息 */
  137. if(!ui->tabCheckPeriod->saveSettings())
  138. {
  139. /* 保存失败 */
  140. TipWidget::display(TipWidget::OPERATOR_FAIL, "检测时段信息保存失败", GInfo.getTopWindow());
  141. isSuccess = false;
  142. }
  143. if(isSuccess)
  144. {
  145. /* 保存成功 */
  146. TipWidget::display(TipWidget::OPERATOR_OK, "设置保存成功", GInfo.getTopWindow());
  147. }else {
  148. /* 保存失败 */
  149. TipWidget::display(TipWidget::OPERATOR_FAIL, "设置保存失败", GInfo.getTopWindow());
  150. }
  151. return isSuccess;
  152. }