serverstatuswidget.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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());
  27. if (!widget)
  28. continue;
  29. if (data.size() > 1 && data[1] == "on")
  30. widget->setStyleSheet(open_color);
  31. else
  32. widget->setStyleSheet(closed_color);
  33. }
  34. downloaded_data = "";
  35. }