diff --git a/sidebar/ToolTips/tooltipmanager.cpp b/sidebar/ToolTips/tooltipmanager.cpp --- a/sidebar/ToolTips/tooltipmanager.cpp +++ b/sidebar/ToolTips/tooltipmanager.cpp @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -35,6 +36,16 @@ #include #include +class IconLoaderSingleton +{ +public: + IconLoaderSingleton() = default; + + KIconLoader self; +}; + +Q_GLOBAL_STATIC(IconLoaderSingleton, privateIconLoaderSelf); + class ToolTipManager::Private { public: @@ -200,8 +211,17 @@ textLabel->setText( text ); // Get icon + QPalette pal = textLabel->palette(); + for (auto state : { QPalette::Active, QPalette::Inactive, QPalette::Disabled }) { + pal.setBrush(state, QPalette::WindowText, pal.toolTipText()); + pal.setBrush(state, QPalette::Window, pal.toolTipBase()); + } + + privateIconLoaderSelf->self.setCustomPalette(pal); + + QIcon icon = KDE::icon(menuItem->service()->icon(), &privateIconLoaderSelf->self); QLabel * iconLabel = new QLabel( toolTip ); - iconLabel->setPixmap( QIcon::fromTheme(menuItem->service()->icon()).pixmap(iconSize) ); + iconLabel->setPixmap( icon.pixmap(iconSize) ); iconLabel->setMaximumSize( iconSize ); // Generate layout