QmlMaterial 0.1.0
Loading...
Searching...
No Matches
layout_item_adapter_p.hpp
1#pragma once
2
3#include <QPointer>
4#include <QQuickItem>
5#include <QVector>
6#include <functional>
7#include <private/qquickitemchangelistener_p.h>
8
9namespace qml_material
10{
11
12class LayoutItemAdapter final : public QQuickItemChangeListener {
13public:
14 explicit LayoutItemAdapter(std::function<void(QQuickItem*)> siblingOrderChanged);
15 ~LayoutItemAdapter() override;
16
17 void watch(QQuickItem* item);
18 void unwatch(QQuickItem* item);
19 bool participates(const QQuickItem* item) const;
20 bool isExplicitlyVisible(const QQuickItem* item) const;
21
22private:
23 void itemSiblingOrderChanged(QQuickItem* item) override;
24
25 std::function<void(QQuickItem*)> m_sibling_order_changed;
26 QVector<QPointer<QQuickItem>> m_watched_items;
27};
28
29} // namespace qml_material