summaryrefslogtreecommitdiff
path: root/plugin/src/Caelestia/serviceref.hpp
blob: 072419ef7e6738ebe0e592e0e163c431d0e9cd77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#pragma once

#include "service.hpp"
#include <qqmlintegration.h>

namespace caelestia {

class ServiceRef : public QObject {
    Q_OBJECT
    QML_ELEMENT

    Q_PROPERTY(Service* service READ service WRITE setService NOTIFY serviceChanged)

public:
    explicit ServiceRef(Service* service = nullptr, QObject* parent = nullptr);
    ~ServiceRef();

    [[nodiscard]] Service* service() const;
    void setService(Service* service);

signals:
    void serviceChanged();

private:
    Service* m_service;
};

} // namespace caelestia