From a060d79c123e98baad8f1ea48600bd7449c9c66a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Thu, 4 Dec 2014 01:05:49 +0100 Subject: GH-631, GH-658 Implement yellow status icon, refresh status icons in themes. --- gui/widgets/ServerStatus.cpp | 29 +++++++++++++++++++++-------- gui/widgets/ServerStatus.h | 3 ++- 2 files changed, 23 insertions(+), 9 deletions(-) (limited to 'gui') diff --git a/gui/widgets/ServerStatus.cpp b/gui/widgets/ServerStatus.cpp index 10ed79fb..3b02fd24 100644 --- a/gui/widgets/ServerStatus.cpp +++ b/gui/widgets/ServerStatus.cpp @@ -17,6 +17,7 @@ ServerStatus::ServerStatus(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, layout = new QHBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); goodIcon = QIcon::fromTheme("status-good"); + yellowIcon = QIcon::fromTheme("status-yellow"); badIcon = QIcon::fromTheme("status-bad"); addStatus("minecraft.net", tr("Web")); @@ -78,32 +79,44 @@ void ServerStatus::addStatus(QString key, QString name) } } -void ServerStatus::setStatus(QString key, bool value) +void ServerStatus::setStatus(QString key, int value) { if (!serverLabels.contains(key)) return; IconLabel *label = serverLabels[key]; - label->setIcon(value ? goodIcon : badIcon); + 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 statusEntries) { - auto convertStatus = [&](QString status)->bool + auto convertStatus = [&](QString status)->int { if (status == "green") - return true; + return 0; else if (status == "yellow") - return false; + return 1; else if (status == "red") - return false; - return false; + return 2; + return 2; } ; auto iter = statusEntries.begin(); while (iter != statusEntries.end()) { QString key = iter.key(); - bool value = convertStatus(iter.value()); + auto value = convertStatus(iter.value()); setStatus(key, value); iter++; } diff --git a/gui/widgets/ServerStatus.h b/gui/widgets/ServerStatus.h index 2244031b..1c6ae428 100644 --- a/gui/widgets/ServerStatus.h +++ b/gui/widgets/ServerStatus.h @@ -24,11 +24,12 @@ public slots: private: /* methods */ void addLine(); void addStatus(QString key, QString name); - void setStatus(QString key, bool value); + void setStatus(QString key, int value); private: /* data */ QHBoxLayout * layout = nullptr; QToolButton *m_statusRefresh = nullptr; QMap serverLabels; QIcon goodIcon; + QIcon yellowIcon; QIcon badIcon; }; -- cgit v1.2.3