24class QQmlGuardedContextData
26 Q_DISABLE_COPY(QQmlGuardedContextData);
28 QQmlGuardedContextData() =
default;
29 ~QQmlGuardedContextData() { unlink(); }
31 QQmlGuardedContextData(QQmlGuardedContextData &&) =
default;
32 QQmlGuardedContextData &operator=(QQmlGuardedContextData &&) =
default;
34 QQmlGuardedContextData(QQmlRefPointer<QQmlContextData> data)
36 setContextData(std::move(data));
39 QQmlGuardedContextData &operator=(QQmlRefPointer<QQmlContextData> d)
41 setContextData(std::move(d));
45 QQmlRefPointer<QQmlContextData> contextData()
const {
return m_contextData; }
46 void setContextData(QQmlRefPointer<QQmlContextData> contextData)
48 if (m_contextData.data() == contextData.data())
53 m_contextData = std::move(contextData);
54 m_next = m_contextData->m_contextGuards;
56 m_next->m_prev = &m_next;
58 m_contextData->m_contextGuards =
this;
59 m_prev = &m_contextData->m_contextGuards;
63 bool isNull()
const {
return !m_contextData; }
65 operator
const QQmlRefPointer<QQmlContextData> &()
const {
return m_contextData; }
66 QQmlContextData &operator*()
const {
return m_contextData.operator*(); }
67 QQmlContextData *operator->()
const {
return m_contextData.operator->(); }
69 QQmlGuardedContextData *next()
const {
return m_next; }
74 m_contextData.reset();
84 m_next->m_prev = m_prev;
89 QQmlRefPointer<QQmlContextData> m_contextData;
90 QQmlGuardedContextData *m_next =
nullptr;
91 QQmlGuardedContextData **m_prev =
nullptr;