summaryrefslogtreecommitdiff
path: root/plugin/src/Caelestia/Services/serviceref.hpp
blob: f1bd0f52b9c4ece0473313ff906feddd79a3d3cd (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 <qpointer.h>
#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);

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

signals:
    void serviceChanged();

private:
    QPointer<Service> m_service;
};

} // namespace caelestia