summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qwidget.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-02-14 11:52:05 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-16 01:56:01 +0100
commit1747f66457420e970b9402e6418693e17a950a6f (patch)
treef48f88e150a29cc7953eead0927222ad6e4c68bc /src/widgets/kernel/qwidget.cpp
parent394315d902d9068a53439737906c00d48023d182 (diff)
Add a ThemeChange event.
- Pass it from QWindowSystemInterface via QWindow to the widgets. - Add handler code from 4.8 / qapplication_win.cpp to qwidget.cpp. Change-Id: Ic759563aa00cb93fe014c1bf41020446c1927dec Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/widgets/kernel/qwidget.cpp')
-rw-r--r--src/widgets/kernel/qwidget.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index f5a1ea15cd..f98f7fbe66 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -8046,6 +8046,7 @@ bool QWidget::event(QEvent *event)
case QEvent::LocaleChange:
case QEvent::MacSizeChange:
case QEvent::ContentsRectChange:
+ case QEvent::ThemeChange:
changeEvent(event);
break;
@@ -8249,6 +8250,20 @@ void QWidget::changeEvent(QEvent * event)
update();
break;
+ case QEvent::ThemeChange:
+ if (QApplication::desktopSettingsAware() && windowType() != Qt::Desktop
+ && qApp && !QApplication::closingDown()) {
+ if (testAttribute(Qt::WA_WState_Polished))
+ QApplication::style()->unpolish(this);
+ if (testAttribute(Qt::WA_WState_Polished))
+ QApplication::style()->polish(this);
+ QEvent styleChangedEvent(QEvent::StyleChange);
+ QCoreApplication::sendEvent(this, &styleChangedEvent);
+ if (isVisible())
+ update();
+ }
+ break;
+
#ifdef Q_WS_MAC
case QEvent::MacSizeChange:
updateGeometry();