[ColorScope] Work with plain QObjects again

Otherwise colorScope doesn't attach to things like Plasma.Svg.
Also remove superfluous cast as parentItem() returns a QQuickItem *.

Differential Revision: https://phabricator.kde.org/D25887
This commit is contained in:
Kai Uwe Broulik 2019-12-11 16:02:11 +01:00
parent e44cab6ab5
commit 8f7b2c9ae0

View File

@ -109,12 +109,19 @@ void ColorScope::setParentScope(ColorScope* parentScope)
ColorScope *ColorScope::findParentScope()
{
QQuickItem *candidate = qobject_cast<QQuickItem *>(parentItem());
QObject *candidate = parentItem();
if (!candidate) {
candidate = qobject_cast<QQuickItem *>(parent());
candidate = parent();
}
while (candidate) {
candidate = candidate->parentItem();
auto *quickCandidate = qobject_cast<QQuickItem *>(candidate);
if (quickCandidate && quickCandidate->parentItem()) {
candidate = quickCandidate->parentItem();
} else {
candidate = candidate->parent();
}
ColorScope *s = qobject_cast<ColorScope *>(candidate);
if (!s) {
// Make sure AppletInterface always has a ColorScope