QmlMaterial 0.1.0
Loading...
Searching...
No Matches
item_holder.hpp
1#pragma once
2
3#include <QtQml/QQmlEngine>
4#include <QPointer>
5
6namespace qml_material
7{
8class ItemHolder : public QObject {
9 Q_OBJECT
10 QML_ELEMENT
11
12 Q_PROPERTY(QObject* item READ item WRITE setItem NOTIFY itemChanged FINAL)
13 Q_PROPERTY(bool visible READ visible WRITE setVisible NOTIFY visibleChanged FINAL)
14public:
15 ItemHolder(QObject* parent = nullptr);
16 ~ItemHolder();
17
18 QObject* item() const;
19 bool visible() const;
20
21 Q_SLOT void setItem(QObject*);
22 Q_SLOT void setVisible(bool);
23 Q_SLOT void refreshParent();
24
25 Q_SIGNAL void itemChanged();
26 Q_SIGNAL void visibleChanged();
27
28private:
29 QPointer<QObject> m_item;
30 bool m_visible;
31};
32
33} // namespace qml_material