#pragma once #include #include #include #include #include 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 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 serverLabels; QIcon goodIcon; QIcon yellowIcon; QIcon badIcon; std::shared_ptr m_statusChecker; };