dialogupdateseg.cpp 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #include "dialogupdateseg.h"
  2. #include "ui_dialogupdateseg.h"
  3. #include "SNCDataBase.h"
  4. DialogUpdateSeg::DialogUpdateSeg(QWidget *parent) :
  5. QDialog(parent),
  6. ui(new Ui::DialogUpdateSeg)
  7. {
  8. ui->setupUi(this);
  9. ui->labelIcon->setPixmap(QPixmap(":/upgrade.png"));
  10. ui->labelOk->setPixmap(QPixmap(":/upgradeok.jpg"));
  11. ui->labelError->setPixmap(QPixmap(":/upgradeerror.jpg"));
  12. ui->labelWarning->setPixmap(QPixmap(":/upgradewarning.jpg"));
  13. ui->label->setStyleSheet("font:bold");
  14. ui->labelCurrentVersion->setStyleSheet("font:bold");
  15. movie = new QMovie(":/upgrading.gif");
  16. ui->labelAnimation->setMovie(movie);
  17. movie->start();
  18. ui->labelAnimation->setVisible(false);
  19. ui->labelOk->setVisible(false);
  20. ui->labelError->setVisible(false);
  21. ui->labelWarning->setVisible(false);
  22. upgrading = false;
  23. update = new SegmentUpdate();
  24. QObject::connect(update,SIGNAL(updateFinished()),this,SLOT(onFinished()));
  25. QObject::connect(update,SIGNAL(updateProgress(QString,int)),this,SLOT(onProgressUpdated(QString,int)));
  26. updateSegment();
  27. }
  28. DialogUpdateSeg::~DialogUpdateSeg()
  29. {
  30. movie->stop();
  31. delete movie;
  32. //qDebug()<<update->isRunning()<<update->isFinished();
  33. update->abort();
  34. update->wait();
  35. delete update;
  36. delete ui;
  37. qDebug()<<"DialogUpdateSeg dead";
  38. }
  39. void DialogUpdateSeg::updateSegment()
  40. {
  41. ui->labelCurrentVersion->setText("当前号段版本:"+SNCDataBase::getSegVersion());
  42. if(!upgrading)
  43. {
  44. ui->label->setText("正在检测号段库是否有更新...");
  45. ui->labelAnimation->setVisible(true);
  46. ui->labelOk->setVisible(false);
  47. ui->labelError->setVisible(false);
  48. ui->labelWarning->setVisible(false);
  49. ui->pushButtonChkSegVersion->setEnabled(false);
  50. update->setMethod(UpdateBaseInfo);
  51. upgrading = true;
  52. update->start();
  53. }
  54. }
  55. void DialogUpdateSeg::onProgressUpdated(QString msg,int code)
  56. {
  57. ui->label->setText(msg);
  58. ui->labelAnimation->setVisible(false);
  59. ui->labelOk->setVisible(false);
  60. ui->labelError->setVisible(false);
  61. ui->labelWarning->setVisible(false);
  62. ui->pushButtonChkSegVersion->setEnabled(false);
  63. if(code < -1)
  64. {
  65. ui->labelError->setVisible(true);
  66. }
  67. else if(code == -1)
  68. {
  69. ui->labelWarning->setVisible(true);
  70. }
  71. else if(code == 0)
  72. {
  73. ui->labelAnimation->setVisible(true);
  74. }
  75. else if(code == 1 )
  76. {
  77. ui->labelOk->setVisible(true);
  78. emit updateStatusBar();
  79. }
  80. }
  81. void DialogUpdateSeg::onFinished()
  82. {
  83. ui->labelCurrentVersion->setText("当前号段版本:"+SNCDataBase::getSegVersion());
  84. ui->pushButtonChkSegVersion->setEnabled(true);
  85. upgrading = false;
  86. emit updateStatusBar();
  87. }
  88. void DialogUpdateSeg::on_pushButtonChkSegVersion_clicked()
  89. {
  90. updateSegment();
  91. }