summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2012-10-19 14:34:37 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-10-19 15:19:03 +0200
commit59009cfd0c0ac36bab5864c2a48dfc052ea29191 (patch)
tree9af9dc55a7e09070ead8bfd9aa841514845f94b0
parent391d2e37f3b301097cd23fdaf99dc34ed6a114a5 (diff)
QStyleSheetStyle: kill more dependencies to QWidget
Change-Id: I5e58ec68c5d20fd7b201c83743f9d284e7c4dc52 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
-rw-r--r--src/widgets/styles/qstylesheetstyle.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp
index 857750b466..4abedb07c8 100644
--- a/src/widgets/styles/qstylesheetstyle.cpp
+++ b/src/widgets/styles/qstylesheetstyle.cpp
@@ -1408,7 +1408,7 @@ void QRenderRule::configurePalette(QPalette *p, QPalette::ColorGroup cg, const Q
///////////////////////////////////////////////////////////////////////////////
// Style rules
-#define WIDGET(x) (static_cast<QWidget *>(x.ptr))
+#define OBJECT_PTR(x) (static_cast<QObject *>(x.ptr))
static inline QObject *parentObject(const QObject *obj)
{
@@ -1429,7 +1429,7 @@ public:
{
if (isNullNode(node))
return QStringList();
- const QMetaObject *metaObject = WIDGET(node)->metaObject();
+ const QMetaObject *metaObject = OBJECT_PTR(node)->metaObject();
#ifndef QT_NO_TOOLTIP
if (qstrcmp(metaObject->className(), "QTipLabel") == 0)
return QStringList(QLatin1String("QToolTip"));
@@ -1446,21 +1446,23 @@ public:
if (isNullNode(node))
return QString();
- QHash<QString, QString> &cache = m_attributeCache[WIDGET(node)];
+ QHash<QString, QString> &cache = m_attributeCache[OBJECT_PTR(node)];
QHash<QString, QString>::const_iterator cacheIt = cache.constFind(name);
if (cacheIt != cache.constEnd())
return cacheIt.value();
- QVariant value = WIDGET(node)->property(name.toLatin1());
+ QObject *obj = OBJECT_PTR(node);
+ QVariant value = obj->property(name.toLatin1());
if (!value.isValid()) {
if (name == QLatin1String("class")) {
- QString className = QString::fromLatin1(WIDGET(node)->metaObject()->className());
+ QString className = QString::fromLatin1(obj->metaObject()->className());
if (className.contains(QLatin1Char(':')))
className.replace(QLatin1Char(':'), QLatin1Char('-'));
cache[name] = className;
return className;
} else if (name == QLatin1String("style")) {
- QStyleSheetStyle *proxy = qobject_cast<QStyleSheetStyle *>(WIDGET(node)->style());
+ QWidget *w = qobject_cast<QWidget *>(obj);
+ QStyleSheetStyle *proxy = w ? qobject_cast<QStyleSheetStyle *>(w->style()) : 0;
if (proxy) {
QString styleName = QString::fromLatin1(proxy->baseStyle()->metaObject()->className());
cache[name] = styleName;
@@ -1480,7 +1482,7 @@ public:
{
if (isNullNode(node))
return false;
- const QMetaObject *metaObject = WIDGET(node)->metaObject();
+ const QMetaObject *metaObject = OBJECT_PTR(node)->metaObject();
#ifndef QT_NO_TOOLTIP
if (qstrcmp(metaObject->className(), "QTipLabel") == 0)
return nodeName == QLatin1String("QToolTip");
@@ -1502,11 +1504,11 @@ public:
bool hasAttributes(NodePtr) const
{ return true; }
QStringList nodeIds(NodePtr node) const
- { return isNullNode(node) ? QStringList() : QStringList(WIDGET(node)->objectName()); }
+ { return isNullNode(node) ? QStringList() : QStringList(OBJECT_PTR(node)->objectName()); }
bool isNullNode(NodePtr node) const
{ return node.ptr == 0; }
NodePtr parentNode(NodePtr node) const
- { NodePtr n; n.ptr = isNullNode(node) ? 0 : parentObject(WIDGET(node)); return n; }
+ { NodePtr n; n.ptr = isNullNode(node) ? 0 : parentObject(OBJECT_PTR(node)); return n; }
NodePtr previousSiblingNode(NodePtr) const
{ NodePtr n; n.ptr = 0; return n; }
NodePtr duplicateNode(NodePtr node) const
@@ -1515,7 +1517,7 @@ public:
{ }
private:
- mutable QHash<const QWidget *, QHash<QString, QString> > m_attributeCache;
+ mutable QHash<const QObject *, QHash<QString, QString> > m_attributeCache;
};
QVector<QCss::StyleRule> QStyleSheetStyle::styleRules(const QObject *obj) const