diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-02-14 11:52:05 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-16 01:56:01 +0100 |
commit | 1747f66457420e970b9402e6418693e17a950a6f (patch) | |
tree | f48f88e150a29cc7953eead0927222ad6e4c68bc /src/widgets/kernel/qwidget.cpp | |
parent | 394315d902d9068a53439737906c00d48023d182 (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.cpp | 15 |
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(); |