serverstatuswidget.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "serverstatuswidget.h"
  2. #include "ui_serverstatuswidget.h"
  3. #include <QDebug>
  4. ServerStatusWidget::ServerStatusWidget(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::ServerStatusWidget)
  7. {
  8. ui->setupUi(this);
  9. downloader.targetBytearray = &downloaded_data;
  10. downloader.setUrl(QUrl("http://translate.lotros.ru/servers.txt"));
  11. connect(&update_timer, &QTimer::timeout, &downloader, &Downloader::start);
  12. connect(&downloader, &Downloader::downloadFinished, this, &ServerStatusWidget::updateStatus, Qt::QueuedConnection);
  13. emit downloader.start();
  14. update_timer.setInterval(1000 * 60); // 1 minute;
  15. update_timer.start();
  16. }
  17. ServerStatusWidget::~ServerStatusWidget()
  18. {
  19. delete ui;
  20. }
  21. void ServerStatusWidget::updateStatus()
  22. {
  23. QStringList servers = QString(downloaded_data).split("|||");
  24. foreach (QString server, servers) {
  25. QStringList data = server.split(":::");
  26. QWidget* widget = findChild<QWidget*>(QString(data[0]).toLower() + "_common");
  27. qDebug() << data;
  28. if (!widget)
  29. continue;
  30. if (data.size() > 1 && data[1] == "on")
  31. widget->setStyleSheet(open_color);
  32. else
  33. widget->setStyleSheet(closed_color);
  34. }
  35. downloaded_data = "";
  36. }