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