4#include <QtCore/QMetaObject>
5#include <QtCore/QPointer>
6#include <QtQml/QQmlEngine>
10class PageContext :
public QObject {
13 Q_PROPERTY(PageContext* inherit READ inherit WRITE setInherit NOTIFY inheritChanged FINAL)
14 Q_PROPERTY(QObject* leadingAction READ leadingAction WRITE setLeadingAction RESET
15 resetLeadingAction NOTIFY leadingActionChanged FINAL)
16 Q_PROPERTY(qint32 headerType READ headerType WRITE setHeaderType RESET resetHeaderType NOTIFY
17 headerTypeChanged FINAL)
18 Q_PROPERTY(qint32 backgroundRadius READ backgroundRadius WRITE setBackgroundRadius RESET
19 resetBackgroundRadius NOTIFY backgroundRadiusChanged FINAL)
21 double headerBackgroundOpacity READ headerBackgroundOpacity WRITE setHeaderBackgroundOpacity
22 RESET resetHeaderBackgroundOpacity NOTIFY headerBackgroundOpacityChanged FINAL)
24 qint32 radius READ radius WRITE setRadius RESET resetRadius NOTIFY radiusChanged FINAL)
25 Q_PROPERTY(
bool showHeader READ showHeader WRITE setShowHeader RESET resetShowHeader NOTIFY
26 showHeaderChanged FINAL)
27 Q_PROPERTY(
bool showBackground READ showBackground WRITE setShowBackground RESET
28 resetShowBackground NOTIFY showBackgroundChanged FINAL)
29 Q_PROPERTY(qint32 leftMargin READ leftMargin WRITE setLeftMargin RESET resetLeftMargin NOTIFY
30 leftMarginChanged FINAL)
31 Q_PROPERTY(qint32 rightMargin READ rightMargin WRITE setRightMargin RESET resetRightMargin
32 NOTIFY rightMarginChanged FINAL)
33 Q_PROPERTY(qint32 topMargin READ topMargin WRITE setTopMargin RESET resetTopMargin NOTIFY
34 topMarginChanged FINAL)
35 Q_PROPERTY(qint32 bottomMargin READ bottomMargin WRITE setBottomMargin RESET resetBottomMargin
36 NOTIFY bottomMarginChanged FINAL)
38 PageContext(QObject* parent =
nullptr);
41 auto inherit() const -> PageContext*;
42 auto leadingAction() const -> QObject*;
43 auto backgroundRadius() const -> qint32;
44 auto headerBackgroundOpacity() const ->
double;
45 auto radius() const -> qint32;
46 auto headerType() const -> qint32;
47 auto showHeader() const ->
bool;
48 auto showBackground() const ->
bool;
49 auto leftMargin() const -> qint32;
50 auto rightMargin() const -> qint32;
51 auto topMargin() const -> qint32;
52 auto bottomMargin() const -> qint32;
54 Q_SLOT
void setInherit(PageContext*);
55 Q_SLOT
void setLeadingAction(QObject*);
56 Q_SLOT
void setBackgroundRadius(qint32);
57 Q_SLOT
void setHeaderBackgroundOpacity(
double);
58 Q_SLOT
void setRadius(qint32);
59 Q_SLOT
void setHeaderType(qint32);
60 Q_SLOT
void setShowHeader(
bool);
61 Q_SLOT
void setShowBackground(
bool);
62 Q_SLOT
void setLeftMargin(qint32);
63 Q_SLOT
void setRightMargin(qint32);
64 Q_SLOT
void setTopMargin(qint32);
65 Q_SLOT
void setBottomMargin(qint32);
67 Q_SLOT
void resetLeadingAction();
68 Q_SLOT
void resetBackgroundRadius();
69 Q_SLOT
void resetHeaderBackgroundOpacity();
70 Q_SLOT
void resetRadius();
71 Q_SLOT
void resetHeaderType();
72 Q_SLOT
void resetShowHeader();
73 Q_SLOT
void resetShowBackground();
74 Q_SLOT
void resetLeftMargin();
75 Q_SLOT
void resetRightMargin();
76 Q_SLOT
void resetTopMargin();
77 Q_SLOT
void resetBottomMargin();
79 Q_SIGNAL
void inheritChanged();
80 Q_SIGNAL
void leadingActionChanged();
81 Q_SIGNAL
void backgroundRadiusChanged();
82 Q_SIGNAL
void headerBackgroundOpacityChanged();
83 Q_SIGNAL
void radiusChanged();
84 Q_SIGNAL
void headerTypeChanged();
85 Q_SIGNAL
void showHeaderChanged();
86 Q_SIGNAL
void showBackgroundChanged();
87 Q_SIGNAL
void leftMarginChanged();
88 Q_SIGNAL
void rightMarginChanged();
89 Q_SIGNAL
void topMarginChanged();
90 Q_SIGNAL
void bottomMarginChanged();
92 Q_SIGNAL
void pushItem(const QJSValue& url_or_comp, const QVariantMap& props = {});
96 void disconnectInherit();
97 void notifyInheritedProperties();
99 QPointer<PageContext> m_inherit;
100 QList<QMetaObject::Connection> m_inherit_connections;
102 std::optional<QObject*> m_leading_action;
103 std::optional<qint32> m_header_type;
104 std::optional<qint32> m_background_radius;
105 std::optional<double> m_header_background_opacity;
106 std::optional<qint32> m_radius;
107 std::optional<bool> m_show_header;
108 std::optional<bool> m_show_background;
109 std::optional<qint32> m_left_margin;
110 std::optional<qint32> m_right_margin;
111 std::optional<qint32> m_top_margin;
112 std::optional<qint32> m_bottom_margin;