OSDN Git Service

reduce QStyleSheetStyle::getDefaultStyleSheet() calls
authorIvailo Monev <xakepa10@gmail.com>
Sat, 1 Aug 2020 19:49:08 +0000 (22:49 +0300)
committerIvailo Monev <xakepa10@gmail.com>
Sat, 1 Aug 2020 19:49:08 +0000 (22:49 +0300)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/gui/styles/qstylesheetstyle.cpp

index 0e4c484..a331723 100644 (file)
@@ -1499,15 +1499,12 @@ QVector<QCss::StyleRule> QStyleSheetStyle::styleRules(const QWidget *w) const
 
     QStyleSheetStyleSelector styleSelector;
 
-    StyleSheet defaultSs;
-    QHash<const void *, StyleSheet>::const_iterator defaultCacheIt = styleSheetCaches->styleSheetCache.constFind(baseStyle());
+    QStyle *bs = baseStyle();
+    static StyleSheet defaultSs = getDefaultStyleSheet();
+    QHash<const void *, StyleSheet>::const_iterator defaultCacheIt = styleSheetCaches->styleSheetCache.constFind(bs);
     if (defaultCacheIt == styleSheetCaches->styleSheetCache.constEnd()) {
-        defaultSs = getDefaultStyleSheet();
-        QStyle *bs = baseStyle();
         styleSheetCaches->styleSheetCache.insert(bs, defaultSs);
         QObject::connect(bs, SIGNAL(destroyed(QObject*)), styleSheetCaches, SLOT(styleDestroyed(QObject*)), Qt::UniqueConnection);
-    } else {
-        defaultSs = defaultCacheIt.value();
     }
     styleSelector.styleSheets += defaultSs;