setinfowidget.cpp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #include "setinfowidget.h"
  2. #include "ui_setinfowidget.h"
  3. #include "UIStyleManager.h"
  4. #include "tipwidget.h"
  5. #include "GLobalInfo.h"
  6. SetInfoWidget::SetInfoWidget(QWidget *parent) :
  7. QWidget(parent),
  8. ui(new Ui::SetInfoWidget)
  9. {
  10. ui->setupUi(this);
  11. /* 连接信号和槽 */
  12. connect(ui->pBtn_save, &QPushButton::clicked, this, &SetInfoWidget::do_pBtn_save_clicked);
  13. connect(ui->pBtn_cancel, &QPushButton::clicked, this, &SetInfoWidget::do_pBtn_cancel_clicked);
  14. /* 设置样式表 */
  15. UIStyle.registerWidget(this);
  16. }
  17. SetInfoWidget::~SetInfoWidget()
  18. {
  19. /* 注销样式表 */
  20. UIStyle.unregisterWidget(this);
  21. delete ui;
  22. }
  23. /* 设置WebAPI */
  24. void SetInfoWidget::setWebAPI(FromWebAPI* api)
  25. {
  26. m_fromWebAPI = api;
  27. /* 设置BasicWidget的WebAPI */
  28. BasicWidget* basicWidget = qobject_cast<BasicWidget*>(ui->tabWidget->widget(0));
  29. if(basicWidget)
  30. {
  31. basicWidget->setWebAPI(m_fromWebAPI);
  32. }
  33. /* 设置ai对比项的webapi指针 */
  34. AICompareWidget* aiCompareWidget = qobject_cast<AICompareWidget*>(ui->tabWidget->widget(1));
  35. if(aiCompareWidget)
  36. {
  37. aiCompareWidget->setWebAPI(m_fromWebAPI);
  38. }
  39. /* 设置噪音检测的webapi */
  40. NoiseWidget* noiseWidget = qobject_cast<NoiseWidget*>(ui->tabWidget->widget(2));
  41. if(noiseWidget)
  42. {
  43. noiseWidget->setWebAPI(m_fromWebAPI);
  44. }
  45. /* 设置数据库配置的WebAPI */
  46. DatabaseWidget* databaseWidget = qobject_cast<DatabaseWidget*>(ui->tabWidget->widget(3));
  47. if(databaseWidget)
  48. {
  49. databaseWidget->setWebAPI(m_fromWebAPI);
  50. }
  51. }
  52. /* 保存按钮 */
  53. void SetInfoWidget::do_pBtn_save_clicked()
  54. {
  55. saveData();
  56. }
  57. /* 取消按钮 */
  58. void SetInfoWidget::do_pBtn_cancel_clicked()
  59. {
  60. }
  61. /* 保存数据 */
  62. void SetInfoWidget::saveData()
  63. {
  64. /* 获取当前页的编号 */
  65. int currentIndex = ui->tabWidget->currentIndex();
  66. QWidget* currentWidget = ui->tabWidget->currentWidget();
  67. bool isSuccess = false;
  68. switch(currentIndex)
  69. {
  70. case 0: /* 基础信息 */
  71. {
  72. BasicWidget* widget = qobject_cast<BasicWidget*>(currentWidget);
  73. if(widget)
  74. {
  75. /* 保存基础信息 */
  76. isSuccess = widget->saveBasicInfo();
  77. }
  78. }
  79. break;
  80. case 1: /* 对比项 */
  81. {
  82. AICompareWidget* widget = qobject_cast<AICompareWidget*>(currentWidget);
  83. if(widget)
  84. {
  85. /* 保存对比项信息 */
  86. isSuccess = widget->saveConfig();
  87. }
  88. }
  89. break;
  90. case 2: /* 噪音检测 */
  91. {
  92. NoiseWidget* widget = qobject_cast<NoiseWidget*>(currentWidget);
  93. if(widget)
  94. {
  95. /* 保存噪音检测信息 */
  96. isSuccess = widget->saveConfig();
  97. }
  98. }
  99. break;
  100. case 3: /* 数据库 */
  101. {
  102. DatabaseWidget* widget = qobject_cast<DatabaseWidget*>(currentWidget);
  103. if(widget)
  104. {
  105. /* 保存数据库信息 */
  106. isSuccess = widget->saveParams();
  107. }
  108. }
  109. break;
  110. case 4: /* 检测时段 */
  111. break;
  112. default:
  113. break;
  114. }
  115. if(isSuccess)
  116. {
  117. /* 保存成功 */
  118. TipWidget::display(TipWidget::OPERATOR_OK, "设置保存成功", GInfo.getTopWindow());
  119. }else {
  120. /* 保存失败 */
  121. TipWidget::display(TipWidget::OPERATOR_FAIL, "设置保存失败", GInfo.getTopWindow());
  122. }
  123. }