23class QQmlGuardedContextData
25 Q_DISABLE_COPY(QQmlGuardedContextData);
27 QQmlGuardedContextData() =
default;
28 ~QQmlGuardedContextData() { unlink(); }
30 QQmlGuardedContextData(QQmlGuardedContextData &&) =
default;
31 QQmlGuardedContextData &operator=(QQmlGuardedContextData &&) =
default;
33 QQmlGuardedContextData(QQmlRefPointer<QQmlContextData> data)
35 setContextData(std::move(data));
38 QQmlGuardedContextData &operator=(QQmlRefPointer<QQmlContextData> d)
40 setContextData(std::move(d));
44 QQmlRefPointer<QQmlContextData> contextData()
const {
return m_contextData; }
45 void setContextData(QQmlRefPointer<QQmlContextData> contextData)
47 if (m_contextData.data() == contextData.data())
52 m_contextData = std::move(contextData);
53 m_next = m_contextData->m_contextGuards;
55 m_next->m_prev = &m_next;
57 m_contextData->m_contextGuards =
this;
58 m_prev = &m_contextData->m_contextGuards;
62 bool isNull()
const {
return !m_contextData; }
64 operator
const QQmlRefPointer<QQmlContextData> &()
const {
return m_contextData; }
65 QQmlContextData &operator*()
const {
return m_contextData.operator*(); }
66 QQmlContextData *operator->()
const {
return m_contextData.operator->(); }
68 QQmlGuardedContextData *next()
const {
return m_next; }
73 m_contextData.reset();
83 m_next->m_prev = m_prev;
88 QQmlRefPointer<QQmlContextData> m_contextData;
89 QQmlGuardedContextData *m_next =
nullptr;
90 QQmlGuardedContextData **m_prev =
nullptr;