diff options
author | kb1000 <kaeptmblaubaer1000@gmail.com> | 2020-06-05 14:41:25 +0200 |
---|---|---|
committer | kb1000 <kaeptmblaubaer1000@gmail.com> | 2021-10-08 19:29:49 +0200 |
commit | fa7a7d52d0d4084e2ee2c46a0cac07f4962ab71c (patch) | |
tree | 4d6e42f1e8fb5b6079cd33a6e04b9e9145e888f9 /launcher/widgets | |
parent | 8c4fb86ba09647b55d34099c38b1e90415261d01 (diff) | |
download | PrismLauncher-fa7a7d52d0d4084e2ee2c46a0cac07f4962ab71c.tar.gz PrismLauncher-fa7a7d52d0d4084e2ee2c46a0cac07f4962ab71c.tar.bz2 PrismLauncher-fa7a7d52d0d4084e2ee2c46a0cac07f4962ab71c.zip |
Remove broken Mojang services status
Diffstat (limited to 'launcher/widgets')
-rw-r--r-- | launcher/widgets/ServerStatus.cpp | 179 | ||||
-rw-r--r-- | launcher/widgets/ServerStatus.h | 40 |
2 files changed, 0 insertions, 219 deletions
diff --git a/launcher/widgets/ServerStatus.cpp b/launcher/widgets/ServerStatus.cpp deleted file mode 100644 index 87c34f70..00000000 --- a/launcher/widgets/ServerStatus.cpp +++ /dev/null @@ -1,179 +0,0 @@ -#include "ServerStatus.h" -#include "LineSeparator.h" -#include "IconLabel.h" -#include "status/StatusChecker.h" -#include <DesktopServices.h> - -#include "MultiMC.h" - -#include <QHBoxLayout> -#include <QFrame> -#include <QLabel> -#include <QMap> -#include <QToolButton> -#include <QAction> - -class ClickableLabel : public QLabel -{ - Q_OBJECT -public: - ClickableLabel(QWidget *parent) : QLabel(parent) - { - setCursor(Qt::PointingHandCursor); - } - - ~ClickableLabel(){}; - -signals: - void clicked(); - -protected: - void mousePressEvent(QMouseEvent *event) - { - emit clicked(); - } -}; - -class ClickableIconLabel : public IconLabel -{ - Q_OBJECT -public: - ClickableIconLabel(QWidget *parent, QIcon icon, QSize size) : IconLabel(parent, icon, size) - { - setCursor(Qt::PointingHandCursor); - } - - ~ClickableIconLabel(){}; - -signals: - void clicked(); - -protected: - void mousePressEvent(QMouseEvent *event) - { - emit clicked(); - } -}; - -ServerStatus::ServerStatus(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) -{ - layout = new QHBoxLayout(this); - layout->setContentsMargins(0, 0, 0, 0); - goodIcon = MMC->getThemedIcon("status-good"); - yellowIcon = MMC->getThemedIcon("status-yellow"); - badIcon = MMC->getThemedIcon("status-bad"); - - addStatus("authserver.mojang.com", tr("Auth")); - addLine(); - addStatus("session.minecraft.net", tr("Session")); - addLine(); - addStatus("textures.minecraft.net", tr("Skins")); - addLine(); - addStatus("api.mojang.com", tr("API")); - - m_statusRefresh = new QToolButton(this); - m_statusRefresh->setCheckable(true); - m_statusRefresh->setToolButtonStyle(Qt::ToolButtonIconOnly); - m_statusRefresh->setIcon(MMC->getThemedIcon("refresh")); - layout->addWidget(m_statusRefresh); - - setLayout(layout); - - // Start status checker - m_statusChecker.reset(new StatusChecker()); - { - auto reloader = m_statusChecker.get(); - connect(reloader, &StatusChecker::statusChanged, this, &ServerStatus::StatusChanged); - connect(reloader, &StatusChecker::statusLoading, this, &ServerStatus::StatusReloading); - connect(m_statusRefresh, &QAbstractButton::clicked, this, &ServerStatus::reloadStatus); - m_statusChecker->startTimer(60000); - reloadStatus(); - } -} - -ServerStatus::~ServerStatus() -{ -} - -void ServerStatus::reloadStatus() -{ - m_statusChecker->reloadStatus(); -} - -void ServerStatus::addLine() -{ - layout->addWidget(new LineSeparator(this, Qt::Vertical)); -} - -void ServerStatus::addStatus(QString key, QString name) -{ - { - auto label = new ClickableIconLabel(this, badIcon, QSize(16, 16)); - label->setToolTip(key); - serverLabels[key] = label; - layout->addWidget(label); - connect(label,SIGNAL(clicked()),SLOT(clicked())); - } - { - auto label = new ClickableLabel(this); - label->setText(name); - label->setToolTip(key); - layout->addWidget(label); - connect(label,SIGNAL(clicked()),SLOT(clicked())); - } -} - -void ServerStatus::clicked() -{ - DesktopServices::openUrl(QUrl("https://github.com/MultiMC/MultiMC5/wiki/Mojang-Services-Status")); -} - -void ServerStatus::setStatus(QString key, int value) -{ - if (!serverLabels.contains(key)) - return; - IconLabel *label = serverLabels[key]; - switch(value) - { - case 0: - label->setIcon(goodIcon); - break; - case 1: - label->setIcon(yellowIcon); - break; - default: - case 2: - label->setIcon(badIcon); - break; - } -} - -void ServerStatus::StatusChanged(const QMap<QString, QString> statusEntries) -{ - auto convertStatus = [&](QString status)->int - { - if (status == "green") - return 0; - else if (status == "yellow") - return 1; - else if (status == "red") - return 2; - return 2; - } - ; - auto iter = statusEntries.begin(); - while (iter != statusEntries.end()) - { - QString key = iter.key(); - auto value = convertStatus(iter.value()); - setStatus(key, value); - iter++; - } -} - -void ServerStatus::StatusReloading(bool is_reloading) -{ - m_statusRefresh->setChecked(is_reloading); -} - -#include "ServerStatus.moc" diff --git a/launcher/widgets/ServerStatus.h b/launcher/widgets/ServerStatus.h deleted file mode 100644 index e1e70dfb..00000000 --- a/launcher/widgets/ServerStatus.h +++ /dev/null @@ -1,40 +0,0 @@ -#pragma once -#include <QString> -#include <QWidget> -#include <QMap> -#include <QIcon> -#include <memory> - -class IconLabel; -class QToolButton; -class QHBoxLayout; -class StatusChecker; - -class ServerStatus: public QWidget -{ - Q_OBJECT -public: - explicit ServerStatus(QWidget *parent = nullptr, Qt::WindowFlags f = 0); - virtual ~ServerStatus(); - -public slots: - void reloadStatus(); - void StatusChanged(const QMap<QString, QString> statuses); - void StatusReloading(bool is_reloading); - -private slots: - void clicked(); - -private: /* methods */ - void addLine(); - void addStatus(QString key, QString name); - void setStatus(QString key, int value); -private: /* data */ - QHBoxLayout * layout = nullptr; - QToolButton *m_statusRefresh = nullptr; - QMap<QString, IconLabel *> serverLabels; - QIcon goodIcon; - QIcon yellowIcon; - QIcon badIcon; - std::shared_ptr<StatusChecker> m_statusChecker; -}; |