From e66dba6a2d9c9a883e8f4fc2415396b3bc6094b8 Mon Sep 17 00:00:00 2001 From: Eugene Shalygin Date: Wed, 5 Jul 2017 13:16:57 +0200 Subject: [PATCH] Use SVG files for monochrome tray icons. Closes #6085. --- dist/unix/CMakeLists.txt | 6 ++ src/gui/mainwindow.cpp | 36 +++++--- src/icons.qrc | 4 +- ...ent_mono.svg => qbittorrent-tray-dark.svg} | 0 src/icons/skin/qbittorrent-tray-light.svg | 83 ++++++++++++++++++ src/icons/skin/qbittorrent_mono_dark.png | Bin 1433 -> 0 bytes src/icons/skin/qbittorrent_mono_light.png | Bin 1386 -> 0 bytes unixconf.pri | 8 +- 8 files changed, 121 insertions(+), 16 deletions(-) rename src/icons/skin/{qbittorrent_mono.svg => qbittorrent-tray-dark.svg} (100%) create mode 100644 src/icons/skin/qbittorrent-tray-light.svg delete mode 100644 src/icons/skin/qbittorrent_mono_dark.png delete mode 100644 src/icons/skin/qbittorrent_mono_light.png diff --git a/dist/unix/CMakeLists.txt b/dist/unix/CMakeLists.txt index 8d4be6399..2dfb3f4fa 100644 --- a/dist/unix/CMakeLists.txt +++ b/dist/unix/CMakeLists.txt @@ -36,4 +36,10 @@ if (GUI) install(FILES qbittorrent.appdata.xml DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/appdata/ COMPONENT data) + + install(FILES + ${qBittorrent_SOURCE_DIR}/src/icons/skin/qbittorrent-tray-dark.svg + ${qBittorrent_SOURCE_DIR}/src/icons/skin/qbittorrent-tray-light.svg + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/status + COMPONENT data) endif() diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index d76768c2c..0ea66a4e8 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -1813,27 +1813,37 @@ void MainWindow::checkForActiveTorrents() QIcon MainWindow::getSystrayIcon() const { - TrayIcon::Style style = Preferences::instance()->trayIconStyle(); +#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) + if (Preferences::instance()->useSystemIconTheme()) + return QIcon::fromTheme("qbittorrent-tray"); +#endif + + const TrayIcon::Style style = Preferences::instance()->trayIconStyle(); + // on Linux we use theme icons, and icons from resources everywhere else +#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) + switch (style) { + case TrayIcon::MONO_DARK: + return QIcon::fromTheme(QLatin1String("qbittorrent-tray-dark")); + case TrayIcon::MONO_LIGHT: + return QIcon::fromTheme(QLatin1String("qbittorrent-tray-light")); + default: + break; + } +#else switch (style) { case TrayIcon::MONO_DARK: - return QIcon(":/icons/skin/qbittorrent_mono_dark.png"); + return QIcon(QLatin1String(":/icons/skin/qbittorrent-tray-dark.svg")); case TrayIcon::MONO_LIGHT: - return QIcon(":/icons/skin/qbittorrent_mono_light.png"); + return QIcon(QLatin1String(":/icons/skin/qbittorrent-tray-light.svg")); default: break; } +#endif QIcon icon; -#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) - if (Preferences::instance()->useSystemIconTheme()) - icon = QIcon::fromTheme("qbittorrent-tray"); - -#endif - if (icon.isNull()) { - icon.addFile(":/icons/skin/qbittorrent22.png", QSize(22, 22)); - icon.addFile(":/icons/skin/qbittorrent16.png", QSize(16, 16)); - icon.addFile(":/icons/skin/qbittorrent32.png", QSize(32, 32)); - } + icon.addFile(":/icons/skin/qbittorrent22.png", QSize(22, 22)); + icon.addFile(":/icons/skin/qbittorrent16.png", QSize(16, 16)); + icon.addFile(":/icons/skin/qbittorrent32.png", QSize(32, 32)); return icon; } diff --git a/src/icons.qrc b/src/icons.qrc index 47d182380..b3247798f 100644 --- a/src/icons.qrc +++ b/src/icons.qrc @@ -353,8 +353,8 @@ icons/skin/qbittorrent16.png icons/skin/qbittorrent22.png icons/skin/qbittorrent32.png - icons/skin/qbittorrent_mono_dark.png - icons/skin/qbittorrent_mono_light.png + icons/skin/qbittorrent-tray-dark.svg + icons/skin/qbittorrent-tray-light.svg icons/skin/queued.png icons/skin/ratio.png icons/skin/seeding.png diff --git a/src/icons/skin/qbittorrent_mono.svg b/src/icons/skin/qbittorrent-tray-dark.svg similarity index 100% rename from src/icons/skin/qbittorrent_mono.svg rename to src/icons/skin/qbittorrent-tray-dark.svg diff --git a/src/icons/skin/qbittorrent-tray-light.svg b/src/icons/skin/qbittorrent-tray-light.svg new file mode 100644 index 000000000..5fab7a0bd --- /dev/null +++ b/src/icons/skin/qbittorrent-tray-light.svg @@ -0,0 +1,83 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/src/icons/skin/qbittorrent_mono_dark.png b/src/icons/skin/qbittorrent_mono_dark.png deleted file mode 100644 index fe2cdeafd2c890a50dcbdcc03f79ba8f01212f83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1433 zcmV;K1!nq*P)1{cdmf_O7%_FBFQXLaQJmF48gqljDM`q7I^v{wh?8K|n9kNs@|Q&UqnlYB-*P71(>MPv)fZ&WNxr=@8+ zS1ENhfB_MiT_d8DdbqQ*^OaU?8?|m@%*)1@iO}BDT3<^tYT{qt@^Kt5(^`L0n;*yV ztIg&%0?28tw-{q4wAP2?I9^LqwF+vjy|`Mf4w9Tzr;p+|en4w|C}3@Dgfjyyj^k&- zghR%d%i35mthLWsYiX_R%i1O@K5JL?$5E+NZc$3zO_JXGRmEcQlXfm$ zD=C-D?*q7tqz7=PF{Z!XUQeKl>z+9kbRBhjzqT`$4#H!`VydoI7BxowU|&3T@I_n_6pc4ZcOK^>^XZ zTsD0PNnROPZVUY^@BM24wD-O*ilQ}96s;k-7{Eo%_MK!mfJIRht%#y%1%RsnR7tJ_ zPyjF`BBNm!&YwO4rPQLZh1&oiP18OR=>@Q{P$=xF1?cGL_?qMkEeJdxMbVDhIEtdr z0c;YHUTf|3!Dn~q&z&X!U@ic7?`y_|q2Gp#D5XZ45l~9K-GJ1);pc*|$lYOl41w&V zg~9ni)|Mp63|&pqH2o>7t6_-9SpmC7;Jl^;@YhqCYe3F6BcPP(Zln(V6aaYdD*>l4 zZS>wx1?B9(_J=T@mqp9x^Yfb#Ai1D{ZeGCrF{tK*@h{T^MC9|(Uls^`6~=>EKoMEi zi~zzpXZ#22F>|@x>B01KJ%LX{-vM}h@4`K*^pVJLz`7@ z5D(y(&ozpoVF0}(zwhemdbXyo&jYE5tR$I;$dK0hwi5{0Qnc16YW2ca zb>i6A*t}Y0t+hUCj9J~tuPHzr#}9^y6LB2x)LO43S!$z5Jy~o0nAZB&5PZxSb8|EQ zmVZo)F#{s90U>>oJWBFIrPOu++tW0iR7w@S_g&$A?+0*&h(y8vBLEMTN~JHFo>40T z0I+xO-a>D0?~sVxFCyo(aqa-HljIYnQfbEXe8L3keT^}f0O$)T`_k~OPl<@ZpSk^= nTrRh@P$+!gHs}cu_)p{yO5)EumhpBe00000NkvXXu0mjfjrOL6 diff --git a/src/icons/skin/qbittorrent_mono_light.png b/src/icons/skin/qbittorrent_mono_light.png deleted file mode 100644 index 695cc3faf852bc663f04a103074521b2fdbf3bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1386 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U@{5t332`Z|36R!2tq?c9UL5t zjg7UnwLLvOEiEm9Y&SPIprEz2wYj;ui;D}8ZDV5tlrl3j1G25GtbkHLE>IRI4ivGo zvx6vrFo3c^hOMnFkO5Q-VFMMw84z)MdwZZ7pg6KJAR8`-Y#LA;2!M)#0ImSY0GbaZ zfl?5~Kv}plkOr7(XyOnPAc7F>KoZUXibJH38E8fU6$51zO5$Ot4ukfqSraAiPopli`&AzUc`=nB65oe!&ckOw25- zZ0wv|+&sK|`~reP!Xjc)(lT-iib^V~YU-L=+B&*=`i4fvCZ?ul<`$M#*0%Nzj!rJF zZk}E~z5#(j!NDP6;gM0%v2pP!8ClsmdHDr}Ma3m$m6cVsb@dI6%`L4RUEMvsef<+A zPnkAj*6cZR=gptLVBw<0OO~%#yKeo4O`ErF-?3}Y{zHe496NRT?78z7E?vHI_4p%-!mtH*+9$F#WAEJZtD4$ z;XQ>C$3A91%Ut5{P1Z$OBc)4hv5M9v{)H*|!Yoe}Px^I*O_{Pt#rSND=hxrQ=luS2 zuCh-p|JS}X35`(&rUAfh# zcAYr)_wj*}$u(O~Gs-#%y*{b+nx*IXpQjt0#h>;u$f*CWJfGL-^eune7hX~A!=?w4 zUQ9UYpw+~9r%o+f;NH2-GdKbcSV=E2u8~(dm&Yh^nc>Wvv|SC7wLVNi@jXA@oq2sq zT%dk>a<67XJ1<*9iWzg^;(M2Z;@4`4e#l+1C@DjSJJ@;##{;AFii@uAmx&O*pdi4y zM*bad>&e9o_l#scSFtdx%PMgFR=SnHQiu7&%-028J6Vrp3g}mF-_^jg?+QctRW?R% zlL)oy#Z?UI`?DH~M3oa7+5B!Az7h-D$nU@%dm=cKDarK2l)1}3JxEe+@OpM=tq!Wdz>pfTTcg2AtYeL_E(F20%H`_@_c>azdsY`p(gxhwB4 zS9oLnRPo9u6M>&q6(7nrH8lBmzvKT``Iu$XjV$2_=gt){@G