diff options
Diffstat (limited to 'launcher/widgets/ServerStatus.h')
-rw-r--r-- | launcher/widgets/ServerStatus.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/launcher/widgets/ServerStatus.h b/launcher/widgets/ServerStatus.h new file mode 100644 index 00000000..e1e70dfb --- /dev/null +++ b/launcher/widgets/ServerStatus.h @@ -0,0 +1,40 @@ +#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; +}; |