diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-11-03 16:11:50 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-11-03 16:11:50 (GMT) |
commit | b162ee295586d732292498945f335884bfa86b3e (patch) | |
tree | f0acb6ddf0333ea092add2f3cc41625de75ef4db /src/gui/styles | |
parent | c5ac774717f1ec2c99407e3ee3c337127d94329e (diff) | |
parent | d5f33087eca066d70240e272d4109c5cca8001cf (diff) | |
download | Qt-b162ee295586d732292498945f335884bfa86b3e.zip Qt-b162ee295586d732292498945f335884bfa86b3e.tar.gz Qt-b162ee295586d732292498945f335884bfa86b3e.tar.bz2 |
Merge branch 4.7 into qt-master-from-4.7
Diffstat (limited to 'src/gui/styles')
-rw-r--r-- | src/gui/styles/qs60style.cpp | 22 | ||||
-rw-r--r-- | src/gui/styles/qs60style_p.h | 1 |
2 files changed, 21 insertions, 2 deletions
diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index c93efca..1262340 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -112,6 +112,8 @@ const short QS60StylePrivate::data[][MAX_PIXELMETRICS] = { // *** End of generated data *** }; +QSet<const QWidget *> *QS60StylePrivate::m_autoFillDisabledWidgets = 0; + const short *QS60StylePrivate::m_pmPointer = QS60StylePrivate::data[0]; // theme background texture @@ -152,6 +154,8 @@ const double KTabFontMul = 0.72; QS60StylePrivate::~QS60StylePrivate() { + delete m_autoFillDisabledWidgets; + m_autoFillDisabledWidgets = 0; clearCaches(); //deletes also background image deleteThemePalette(); #ifdef Q_WS_S60 @@ -2521,9 +2525,9 @@ int QS60Style::pixelMetric(PixelMetric metric, const QStyleOption *option, const metricValue = QS60StylePrivate::pixelMetric(PM_LayoutLeftMargin); } - if (widget && (metric == PM_LayoutTopMargin)) + if (widget && (metric == PM_LayoutTopMargin || metric == PM_LayoutLeftMargin || metric == PM_LayoutRightMargin)) if (widget->windowType() == Qt::Dialog) - //double the top layout margin for dialogs, it is very close to real value + //double the layout margins (except bottom) for dialogs, it is very close to real value //without having to define custom pixel metric metricValue *= 2; @@ -3184,6 +3188,13 @@ void QS60Style::polish(QWidget *widget) } d->setThemePalette(widget); d->setFont(widget); + + if (widget->autoFillBackground()) { + if (!d->m_autoFillDisabledWidgets) + d->m_autoFillDisabledWidgets = new QSet<const QWidget *>; + widget->setAutoFillBackground(false); + d->m_autoFillDisabledWidgets->insert(widget); + } } /*! @@ -3218,6 +3229,13 @@ void QS60Style::unpolish(QWidget *widget) if (widget) widget->setPalette(QPalette()); + + if (d->m_autoFillDisabledWidgets && + !d->m_autoFillDisabledWidgets->isEmpty() && + d->m_autoFillDisabledWidgets->contains(widget)) { + widget->setAutoFillBackground(true); + d->m_autoFillDisabledWidgets->remove(widget); + } #if defined(Q_WS_S60) && !defined(QT_NO_PROGRESSBAR) if (QProgressBar *bar = qobject_cast<QProgressBar *>(widget)) { diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h index b46f75e..3d66c40 100644 --- a/src/gui/styles/qs60style_p.h +++ b/src/gui/styles/qs60style_p.h @@ -625,6 +625,7 @@ private: static qint64 m_webPaletteKey; static QPointer<QWidget> m_pressedWidget; + static QSet<const QWidget *> *m_autoFillDisabledWidgets; #ifdef Q_WS_S60 //list of progress bars having animation running |