diff options
| author | David Hallas <[email protected]> | 2019-03-13 21:10:11 +0100 |
|---|---|---|
| committer | David Hallas <[email protected]> | 2019-03-17 19:11:37 +0100 |
| commit | 508dc815c75c9db8abaec26ae664ae41bf7f89b5 (patch) | |
| tree | b73465470b21d6953dd31c3cb59876fc983a8a8d /src/views/tooltips | |
| parent | f0a65179d8da50934ef2ef078c0e6bd221c4eed2 (diff) | |
Fix "Add Network Folder" tooltip icon does not show on Breeze, shows correctly on Breeze Dark
Summary:
Fix "Add Network Folder" tooltip icon does not show on Breeze, shows correctly
on Breeze Dark. The fix is taken from D19596.
Test Plan:
Open Dolphin with the Breeze theme
Hover the mouse over the "Add Network Folder"
The icon is black on black
BUG: 404858
Reviewers: #dolphin, elvisangelaccio, ngraham
Reviewed By: #dolphin, elvisangelaccio, ngraham
Subscribers: broulik, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D19738
Diffstat (limited to 'src/views/tooltips')
| -rw-r--r-- | src/views/tooltips/tooltipmanager.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/views/tooltips/tooltipmanager.cpp b/src/views/tooltips/tooltipmanager.cpp index 9e79a8f70..2990f4249 100644 --- a/src/views/tooltips/tooltipmanager.cpp +++ b/src/views/tooltips/tooltipmanager.cpp @@ -25,6 +25,7 @@ #include <KIO/PreviewJob> #include <KJobWidgets> #include <KToolTipWidget> +#include <KIconLoader> #include <QApplication> #include <QDesktopWidget> @@ -34,6 +35,15 @@ #include <QTimer> #include <QWindow> +class IconLoaderSingleton { +public: + IconLoaderSingleton() = default; + + KIconLoader self; +}; + +Q_GLOBAL_STATIC(IconLoaderSingleton, iconLoader) + ToolTipManager::ToolTipManager(QWidget* parent) : QObject(parent), m_showToolTipTimer(nullptr), @@ -167,8 +177,13 @@ void ToolTipManager::previewFailed() if (!m_toolTipRequested) { return; } - - const QPixmap pixmap = QIcon::fromTheme(m_item.iconName()).pixmap(128, 128); + QPalette pal; + for (auto state : { QPalette::Active, QPalette::Inactive, QPalette::Disabled }) { + pal.setBrush(state, QPalette::WindowText, pal.toolTipText()); + pal.setBrush(state, QPalette::Window, pal.toolTipBase()); + } + iconLoader->self.setCustomPalette(pal); + const QPixmap pixmap = KDE::icon(m_item.iconName(), &iconLoader->self).pixmap(128, 128); m_fileMetaDataWidget->setPreview(pixmap); if (!m_showToolTipTimer->isActive()) { showToolTip(); |
