#pragma once #include // for Core::RunningState #include namespace Ui { class ServiceWidget; } namespace ServiceManagement { class ServiceWidget : public QWidget { Q_OBJECT public: enum Status { UNKNOWN = 0, STARTING, STARTED, STOPPING, STOPPED, }; ServiceWidget(int32_t id, long long pid, const QString &name, const Core::RunningState &state, const QString &errorString, QWidget *parent = nullptr); ~ServiceWidget(); void setPid(long long pid); void setName(const QString &name); void setTimestamp(long long timestamp); void setState(Core::RunningState state); void setErrorString(const QString &errorString); void setStatus(const Status status); Status getStatus() const; int32_t id() const { return m_id; } private: Ui::ServiceWidget *m_ui; Status m_status; int32_t m_id; static QString greenStyleSheet() { return QLatin1String("background-color: rgb(124, 189, 124);"); } static QString orangeStyleSheet() { return QLatin1String("background-color: rgb(212, 190, 128);"); } static QString redStyleSheet() { return QLatin1String("background-color: rgb(202, 122, 122);"); } signals: void signalRestartService(int id); private slots: void slotRestartService(); }; } // namespace ServiceManagement