File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed
Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -58,6 +58,8 @@ class Theme : public QQuickAttachedPropertyPropagator
5858
5959 const ThemePalette* palette () const ;
6060
61+ Q_INVOKABLE Theme* rootTheme ();
62+
6163 static Theme *qmlAttachedProperties (QObject *object);
6264
6365signals:
Original file line number Diff line number Diff line change 11#include " StatusQ/theme.h"
22
3+ #include < QQmlApplicationEngine>
4+
35namespace {
46
57constexpr qreal s_defaultPadding = 16 ;
@@ -165,6 +167,23 @@ const ThemePalette* Theme::palette() const
165167 : s_paletteDark.get ();
166168}
167169
170+ Theme *Theme::rootTheme ()
171+ {
172+ auto theme = qobject_cast<Theme*>(attachedParent ());
173+
174+ if (!theme)
175+ return this ;
176+
177+ while (true ) {
178+ auto next = qobject_cast<Theme*>(theme->attachedParent ());
179+
180+ if (!next || qobject_cast<QQmlApplicationEngine*>(next->parent ()))
181+ return theme;
182+ else
183+ theme = next;
184+ }
185+ }
186+
168187Theme* Theme::qmlAttachedProperties (QObject *object)
169188{
170189 return new Theme (object);
You can’t perform that action at this time.
0 commit comments