bool QGtkStyleFilter::eventFilter(QObject *obj, QEvent *e) { if (e->type() == QEvent::ApplicationPaletteChange) { // Only do this the first time since this will also // generate applicationPaletteChange events if (!qt_app_palettes_hash() || qt_app_palettes_hash()->isEmpty()) { stylePrivate->applyCustomPaletteHash(); } } return QObject::eventFilter(obj, e); }
void QApplicationPrivate::initializeWidgetPaletteHash() { QPlatformTheme *platformTheme = QGuiApplicationPrivate::platformTheme(); if (!platformTheme) return; qt_app_palettes_hash()->clear(); setPossiblePalette(platformTheme->palette(QPlatformTheme::ToolButtonPalette), "QToolButton"); setPossiblePalette(platformTheme->palette(QPlatformTheme::ButtonPalette), "QAbstractButton"); setPossiblePalette(platformTheme->palette(QPlatformTheme::CheckBoxPalette), "QCheckBox"); setPossiblePalette(platformTheme->palette(QPlatformTheme::RadioButtonPalette), "QRadioButton"); setPossiblePalette(platformTheme->palette(QPlatformTheme::HeaderPalette), "QHeaderView"); setPossiblePalette(platformTheme->palette(QPlatformTheme::ItemViewPalette), "QAbstractItemView"); setPossiblePalette(platformTheme->palette(QPlatformTheme::MessageBoxLabelPalette), "QMessageBoxLabel"); setPossiblePalette(platformTheme->palette(QPlatformTheme::TabBarPalette), "QTabBar"); setPossiblePalette(platformTheme->palette(QPlatformTheme::LabelPalette), "QLabel"); setPossiblePalette(platformTheme->palette(QPlatformTheme::GroupBoxPalette), "QGroupBox"); setPossiblePalette(platformTheme->palette(QPlatformTheme::MenuPalette), "QMenu"); setPossiblePalette(platformTheme->palette(QPlatformTheme::MenuBarPalette), "QMenuBar"); setPossiblePalette(platformTheme->palette(QPlatformTheme::TextEditPalette), "QTextEdit"); setPossiblePalette(platformTheme->palette(QPlatformTheme::TextEditPalette), "QTextControl"); setPossiblePalette(platformTheme->palette(QPlatformTheme::TextLineEditPalette), "QLineEdit"); }