Changeset View
Changeset View
Standalone View
Standalone View
src/views/tooltips/tooltipmanager.cpp
Show All 19 Lines | |||||
20 | #include "tooltipmanager.h" | 20 | #include "tooltipmanager.h" | ||
21 | 21 | | |||
22 | #include "dolphinfilemetadatawidget.h" | 22 | #include "dolphinfilemetadatawidget.h" | ||
23 | 23 | | |||
24 | #include <KIO/JobUiDelegate> | 24 | #include <KIO/JobUiDelegate> | ||
25 | #include <KIO/PreviewJob> | 25 | #include <KIO/PreviewJob> | ||
26 | #include <KJobWidgets> | 26 | #include <KJobWidgets> | ||
27 | #include <KToolTipWidget> | 27 | #include <KToolTipWidget> | ||
28 | #include <KIconLoader> | ||||
28 | 29 | | |||
29 | #include <QApplication> | 30 | #include <QApplication> | ||
30 | #include <QDesktopWidget> | 31 | #include <QDesktopWidget> | ||
31 | #include <QIcon> | 32 | #include <QIcon> | ||
32 | #include <QLayout> | 33 | #include <QLayout> | ||
33 | #include <QStyle> | 34 | #include <QStyle> | ||
34 | #include <QTimer> | 35 | #include <QTimer> | ||
35 | #include <QWindow> | 36 | #include <QWindow> | ||
36 | 37 | | |||
38 | class IconLoaderSingleton { | ||||
39 | public: | ||||
40 | IconLoaderSingleton() = default; | ||||
41 | | ||||
42 | KIconLoader self; | ||||
43 | }; | ||||
44 | | ||||
45 | Q_GLOBAL_STATIC(IconLoaderSingleton, iconLoader) | ||||
46 | | ||||
37 | ToolTipManager::ToolTipManager(QWidget* parent) : | 47 | ToolTipManager::ToolTipManager(QWidget* parent) : | ||
38 | QObject(parent), | 48 | QObject(parent), | ||
39 | m_showToolTipTimer(nullptr), | 49 | m_showToolTipTimer(nullptr), | ||
40 | m_contentRetrievalTimer(nullptr), | 50 | m_contentRetrievalTimer(nullptr), | ||
41 | m_transientParent(nullptr), | 51 | m_transientParent(nullptr), | ||
42 | m_fileMetaDataWidget(nullptr), | 52 | m_fileMetaDataWidget(nullptr), | ||
43 | m_toolTipRequested(false), | 53 | m_toolTipRequested(false), | ||
44 | m_metaDataRequested(false), | 54 | m_metaDataRequested(false), | ||
▲ Show 20 Lines • Show All 117 Lines • ▼ Show 20 Line(s) | 159 | { | |||
162 | } | 172 | } | ||
163 | } | 173 | } | ||
164 | 174 | | |||
165 | void ToolTipManager::previewFailed() | 175 | void ToolTipManager::previewFailed() | ||
166 | { | 176 | { | ||
167 | if (!m_toolTipRequested) { | 177 | if (!m_toolTipRequested) { | ||
168 | return; | 178 | return; | ||
169 | } | 179 | } | ||
170 | 180 | QPalette pal; | |||
171 | const QPixmap pixmap = QIcon::fromTheme(m_item.iconName()).pixmap(128, 128); | 181 | for (auto state : { QPalette::Active, QPalette::Inactive, QPalette::Disabled }) { | ||
182 | pal.setBrush(state, QPalette::WindowText, pal.toolTipText()); | ||||
183 | pal.setBrush(state, QPalette::Window, pal.toolTipBase()); | ||||
184 | } | ||||
185 | iconLoader->self.setCustomPalette(pal); | ||||
186 | const QPixmap pixmap = KDE::icon(m_item.iconName(), &iconLoader->self).pixmap(128, 128); | ||||
172 | m_fileMetaDataWidget->setPreview(pixmap); | 187 | m_fileMetaDataWidget->setPreview(pixmap); | ||
173 | if (!m_showToolTipTimer->isActive()) { | 188 | if (!m_showToolTipTimer->isActive()) { | ||
174 | showToolTip(); | 189 | showToolTip(); | ||
175 | } | 190 | } | ||
176 | } | 191 | } | ||
177 | 192 | | |||
178 | void ToolTipManager::slotMetaDataRequestFinished() | 193 | void ToolTipManager::slotMetaDataRequestFinished() | ||
179 | { | 194 | { | ||
Show All 35 Lines |