Let QApplication emit paletteChanged

Only QGuiApplication would emit the signal. Untangling the duplicate
code is rather non-trivial, so left alone for now.

Fixes: QTBUG-71186
Change-Id: I4021e3b9ff39718562f4fa3a03c092436b559e9a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This commit is contained in:
Frederik Gladhorn 2018-10-16 17:11:12 +02:00
parent ccb396b401
commit 4afd9234c2
2 changed files with 7 additions and 1 deletions

View File

@ -1444,6 +1444,7 @@ void QApplicationPrivate::setPalette_helper(const QPalette &palette, const char*
else else
*QApplicationPrivate::set_pal = palette; *QApplicationPrivate::set_pal = palette;
QCoreApplication::setAttribute(Qt::AA_SetPalette); QCoreApplication::setAttribute(Qt::AA_SetPalette);
emit qGuiApp->paletteChanged(*QGuiApplicationPrivate::app_pal);
} }
} }

View File

@ -240,6 +240,7 @@ void tst_QApplication::staticSetup()
QVERIFY(style); QVERIFY(style);
QApplication::setStyle(style); QApplication::setStyle(style);
bool palette_changed = false;
QPalette pal; QPalette pal;
QApplication::setPalette(pal); QApplication::setPalette(pal);
@ -247,7 +248,11 @@ void tst_QApplication::staticSetup()
QApplication::setFont(font);*/ QApplication::setFont(font);*/
int argc = 0; int argc = 0;
QApplication app(argc, 0); QApplication app(argc, nullptr);
QObject::connect(&app, &QApplication::paletteChanged, [&palette_changed]{ palette_changed = true; });
QVERIFY(!palette_changed);
qApp->setPalette(QPalette(Qt::red));
QVERIFY(palette_changed);
} }