dialogupdateseg.cpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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. QObject::connect(update,SIGNAL(newNumbers(QString)),this,SLOT(onNewNumber()));
  27. updateSegment();
  28. }
  29. DialogUpdateSeg::~DialogUpdateSeg()
  30. {
  31. movie->stop();
  32. delete movie;
  33. //qDebug()<<update->isRunning()<<update->isFinished();
  34. update->abort();
  35. update->wait();
  36. delete update;
  37. delete ui;
  38. qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
  39. <<"DialogUpdateSeg Destroyed.";
  40. }
  41. void DialogUpdateSeg::updateSegment()
  42. {
  43. ui->labelCurrentVersion->setText("号段版本:"+SNCDataBase::getSegVersion()+ "(共" + QString::number(SNCDataBase::getSegCount()) + "个号段)");
  44. if(!upgrading)
  45. {
  46. ui->label->setText("正在检测号段库是否有更新...");
  47. ui->labelAnimation->setVisible(true);
  48. ui->labelOk->setVisible(false);
  49. ui->labelError->setVisible(false);
  50. ui->labelWarning->setVisible(false);
  51. ui->pushButtonChkSegVersion->setEnabled(false);
  52. update->setMethod(UpdateBaseInfo);
  53. upgrading = true;
  54. update->start();
  55. }
  56. }
  57. void DialogUpdateSeg::onProgressUpdated(QString msg,int code)
  58. {
  59. ui->label->setText(msg);
  60. ui->labelAnimation->setVisible(false);
  61. ui->labelOk->setVisible(false);
  62. ui->labelError->setVisible(false);
  63. ui->labelWarning->setVisible(false);
  64. ui->pushButtonChkSegVersion->setEnabled(false);
  65. if(code < -1)
  66. {
  67. ui->labelError->setVisible(true);
  68. }
  69. else if(code == -1)
  70. {
  71. ui->labelWarning->setVisible(true);
  72. }
  73. else if(code == 0)
  74. {
  75. ui->labelAnimation->setVisible(true);
  76. }
  77. else if(code == 1 )
  78. {
  79. ui->labelOk->setVisible(true);
  80. emit segUpdated();
  81. }
  82. }
  83. void DialogUpdateSeg::onFinished()
  84. {
  85. ui->labelCurrentVersion->setText("号段版本:"+SNCDataBase::getSegVersion()+ "(共" + QString::number(SNCDataBase::getSegCount()) + "个号段)");
  86. ui->pushButtonChkSegVersion->setEnabled(true);
  87. upgrading = false;
  88. emit segUpdated();
  89. }
  90. void DialogUpdateSeg::onNewNumber()
  91. {
  92. emit segNewVersionFound();
  93. }
  94. void DialogUpdateSeg::on_pushButtonChkSegVersion_clicked()
  95. {
  96. updateSegment();
  97. }
  98. void DialogUpdateSeg::on_pushButtonHide_clicked()
  99. {
  100. this->hide();
  101. }