summaryrefslogtreecommitdiffstats
path: root/src/widgets/styles
diff options
context:
space:
mode:
authorZhang Yu <zhangyub@uniontech.com>2021-06-15 21:05:41 +0800
committerZhang Yu <zhangyub@uniontech.com>2021-06-18 05:34:52 +0000
commite9cdcc7cb314586aec76b8b9979435f0af963443 (patch)
treed1f31e33e2992b47dda8e25531c58e998cb7d72a /src/widgets/styles
parent0c2ca26cd9583092f3ade7b18bc2423336a6202b (diff)
Fix recursion crash when calling setStyleSheet with `qproperty-styleSheet`
When calling `setStyleSheet` with property `qproperty-styleSheet`, `QStyleSheetStyle::polish` will call`QStyleSheetStyle::setProperties`, and then`QStyleSheetStyle::setProperties` goes on to call `setProperty`.Because there is property `qproperty-styleSheet`, it will update stylesheet by calling QStyleSheetStyle::polish`. This causes the recursive call to crash. Fixes: QTBUG-94448 Pick-to: 5.15 6.2 Change-Id: I79c51192a939b0b62e5b1d0dcc90d38f79e28222 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src/widgets/styles')
-rw-r--r--src/widgets/styles/qstylesheetstyle.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp
index b02e4011b2..226c1ecbf9 100644
--- a/src/widgets/styles/qstylesheetstyle.cpp
+++ b/src/widgets/styles/qstylesheetstyle.cpp
@@ -2670,6 +2670,9 @@ void QStyleSheetStyle::setProperties(QWidget *w)
default: v = decl.d->values.at(0).variant; break;
}
+ if (propertyL1 == QByteArrayView("styleSheet") && value == v)
+ continue;
+
w->setProperty(propertyL1, v);
}
}