mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-07 23:53:58 +02:00
Scale window icon manually when getting from icon theme
This commit is contained in:
parent
f528a240d9
commit
0cd8cc67c5
1 changed files with 37 additions and 1 deletions
|
@ -119,7 +119,43 @@ QIcon CreateOfficialIcon(Main::Session *session) {
|
||||||
QIcon CreateIcon(Main::Session *session) {
|
QIcon CreateIcon(Main::Session *session) {
|
||||||
auto result = CreateOfficialIcon(session);
|
auto result = CreateOfficialIcon(session);
|
||||||
#if defined Q_OS_UNIX && !defined Q_OS_MAC
|
#if defined Q_OS_UNIX && !defined Q_OS_MAC
|
||||||
return QIcon::fromTheme(Platform::GetIconName(), result);
|
const auto iconFromTheme = QIcon::fromTheme(
|
||||||
|
Platform::GetIconName(),
|
||||||
|
result);
|
||||||
|
|
||||||
|
result = QIcon();
|
||||||
|
|
||||||
|
static const auto iconSizes = {
|
||||||
|
16,
|
||||||
|
22,
|
||||||
|
32,
|
||||||
|
48,
|
||||||
|
64,
|
||||||
|
128,
|
||||||
|
256,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Qt's standard QIconLoaderEngine sets availableSizes
|
||||||
|
// to XDG directories sizes, since svg icons are scalable,
|
||||||
|
// they could be only in one XDG folder (like 48x48)
|
||||||
|
// and Qt will set only a 48px icon to the window
|
||||||
|
// even though the icon could be scaled to other sizes.
|
||||||
|
// Thus, scale it manually to the most widespread sizes.
|
||||||
|
for (const auto iconSize : iconSizes) {
|
||||||
|
// We can't use QIcon::actualSize here
|
||||||
|
// since it works incorrectly with svg icon themes
|
||||||
|
const auto iconPixmap = iconFromTheme.pixmap(iconSize);
|
||||||
|
|
||||||
|
const auto iconPixmapSize = iconPixmap.size()
|
||||||
|
/ iconPixmap.devicePixelRatio();
|
||||||
|
|
||||||
|
// Not a svg icon, don't scale it
|
||||||
|
if (iconPixmapSize.width() != iconSize) {
|
||||||
|
return iconFromTheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
result.addPixmap(iconPixmap);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue