diff options
| author | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2023-04-15 14:33:26 +0800 |
|---|---|---|
| committer | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2023-04-15 14:33:26 +0800 |
| commit | 4b4f6220c1c223febb338c68a95e5e5791fecbca (patch) | |
| tree | 8454ba4c001ec9bb4221591d8a7bb0930312c9c3 /Bootstrap.cxx | |
| parent | 9760ed0fca36990ea69e68e6057266e27cba62a9 (diff) | |
Newly instantiated components check root mode
The ui.qml would be the root, when any attached property is set.
Make sure that UI's mode is set by its implementation.
Diffstat (limited to 'Bootstrap.cxx')
| -rw-r--r-- | Bootstrap.cxx | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Bootstrap.cxx b/Bootstrap.cxx index 38bbba5..e6b07ef 100644 --- a/Bootstrap.cxx +++ b/Bootstrap.cxx @@ -115,6 +115,18 @@ Bootstrap::Bootstrap(QObject *parent): OVERRIDE_HX_FONT_SIZE("H6FontSize", h6FontSize); toml_free(toml); + + QObject *ancestor; + QObject *grandAncestor = parent->parent(); + while ((ancestor = grandAncestor)) + if (!(grandAncestor = ancestor->parent())) + for (auto child : ancestor->findChildren<QObject *>()) + if (!strcmp(child->metaObject()->className(), + "Bootstrap")) { + bsMode = qobject_cast<Bootstrap *> + (child)->mode(); + break; + } } Bootstrap *Bootstrap::qmlAttachedProperties(QObject *object) |