From e8e1f038e6bf4a7bc938e316774374d3116ff39a Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Fri, 26 Sep 2008 01:27:44 +0200 Subject: [PATCH] More build system tweaking, plus making icons work --- CMakeLists.txt | 33 ++++++------- cmake/modules/QuasselMacros.cmake | 2 +- icons/CMakeLists.txt | 4 +- icons/hicolor.qrc | 2 +- icons/oxygen.qrc | 43 +++++++++++++++- icons/oxygen/16x16/devices/audio-card.png | Bin 0 -> 697 bytes icons/oxygen/16x16/devices/audio-headset.png | Bin 0 -> 412 bytes .../oxygen/16x16/devices/audio-input-line.png | Bin 0 -> 404 bytes .../16x16/devices/audio-input-microphone.png | Bin 0 -> 503 bytes icons/oxygen/16x16/devices/battery.png | Bin 0 -> 474 bytes icons/oxygen/16x16/devices/camera-photo.png | Bin 0 -> 372 bytes icons/oxygen/16x16/devices/camera-web.png | Bin 0 -> 846 bytes .../oxygen/16x16/devices/computer-laptop.png | Bin 0 -> 663 bytes icons/oxygen/16x16/devices/computer.png | Bin 0 -> 714 bytes icons/oxygen/16x16/devices/cpu.png | Bin 0 -> 621 bytes icons/oxygen/16x16/devices/drive-harddisk.png | Bin 0 -> 632 bytes icons/oxygen/16x16/devices/drive-optical.png | Bin 0 -> 556 bytes .../drive-removable-media-usb-pendrive.png | Bin 0 -> 534 bytes .../devices/drive-removable-media-usb.png | Bin 0 -> 672 bytes .../16x16/devices/drive-removable-media.png | Bin 0 -> 363 bytes icons/oxygen/16x16/devices/input-gaming.png | Bin 0 -> 758 bytes icons/oxygen/16x16/devices/input-keyboard.png | Bin 0 -> 299 bytes icons/oxygen/16x16/devices/input-mouse.png | Bin 0 -> 710 bytes icons/oxygen/16x16/devices/input-tablet.png | Bin 0 -> 577 bytes .../devices/media-flash-memory-stick.png | Bin 0 -> 257 bytes .../16x16/devices/media-flash-sd-mmc.png | Bin 0 -> 571 bytes .../16x16/devices/media-flash-smart-media.png | Bin 0 -> 464 bytes icons/oxygen/16x16/devices/media-flash.png | Bin 0 -> 740 bytes icons/oxygen/16x16/devices/media-floppy.png | Bin 0 -> 616 bytes .../16x16/devices/media-optical-audio.png | Bin 0 -> 949 bytes .../devices/media-optical-recordable.png | Bin 0 -> 983 bytes icons/oxygen/16x16/devices/media-optical.png | Bin 0 -> 905 bytes icons/oxygen/16x16/devices/media-tape.png | Bin 0 -> 350 bytes icons/oxygen/16x16/devices/modem.png | Bin 0 -> 581 bytes .../devices/multimedia-player-apple-ipod.png | Bin 0 -> 577 bytes .../16x16/devices/multimedia-player.png | Bin 0 -> 597 bytes icons/oxygen/16x16/devices/network-wired.png | Bin 0 -> 604 bytes .../oxygen/16x16/devices/network-wireless.png | Bin 0 -> 830 bytes icons/oxygen/16x16/devices/pda.png | Bin 0 -> 638 bytes .../devices/phone-openmoko-freerunner.png | Bin 0 -> 607 bytes icons/oxygen/16x16/devices/phone.png | Bin 0 -> 395 bytes icons/oxygen/16x16/devices/printer.png | Bin 0 -> 630 bytes icons/oxygen/16x16/devices/scanner.png | Bin 0 -> 574 bytes icons/oxygen/16x16/devices/video-display.png | Bin 0 -> 725 bytes .../oxygen/16x16/devices/video-projector.png | Bin 0 -> 720 bytes .../oxygen/16x16/devices/video-television.png | Bin 0 -> 542 bytes src/CMakeLists.txt | 10 ++++ src/common/quassel.cpp | 2 + src/qtui/mainwin.cpp | 18 +++---- src/qtui/mainwin.h | 7 +-- src/qtui/qtuiapplication.cpp | 5 -- src/uisupport/iconloader.cpp | 46 +++++++++++++++--- src/uisupport/iconloader.h | 2 +- 53 files changed, 128 insertions(+), 46 deletions(-) create mode 100644 icons/oxygen/16x16/devices/audio-card.png create mode 100644 icons/oxygen/16x16/devices/audio-headset.png create mode 100644 icons/oxygen/16x16/devices/audio-input-line.png create mode 100644 icons/oxygen/16x16/devices/audio-input-microphone.png create mode 100644 icons/oxygen/16x16/devices/battery.png create mode 100644 icons/oxygen/16x16/devices/camera-photo.png create mode 100644 icons/oxygen/16x16/devices/camera-web.png create mode 100644 icons/oxygen/16x16/devices/computer-laptop.png create mode 100644 icons/oxygen/16x16/devices/computer.png create mode 100644 icons/oxygen/16x16/devices/cpu.png create mode 100644 icons/oxygen/16x16/devices/drive-harddisk.png create mode 100644 icons/oxygen/16x16/devices/drive-optical.png create mode 100644 icons/oxygen/16x16/devices/drive-removable-media-usb-pendrive.png create mode 100644 icons/oxygen/16x16/devices/drive-removable-media-usb.png create mode 100644 icons/oxygen/16x16/devices/drive-removable-media.png create mode 100644 icons/oxygen/16x16/devices/input-gaming.png create mode 100644 icons/oxygen/16x16/devices/input-keyboard.png create mode 100644 icons/oxygen/16x16/devices/input-mouse.png create mode 100644 icons/oxygen/16x16/devices/input-tablet.png create mode 100644 icons/oxygen/16x16/devices/media-flash-memory-stick.png create mode 100644 icons/oxygen/16x16/devices/media-flash-sd-mmc.png create mode 100644 icons/oxygen/16x16/devices/media-flash-smart-media.png create mode 100644 icons/oxygen/16x16/devices/media-flash.png create mode 100644 icons/oxygen/16x16/devices/media-floppy.png create mode 100644 icons/oxygen/16x16/devices/media-optical-audio.png create mode 100644 icons/oxygen/16x16/devices/media-optical-recordable.png create mode 100644 icons/oxygen/16x16/devices/media-optical.png create mode 100644 icons/oxygen/16x16/devices/media-tape.png create mode 100644 icons/oxygen/16x16/devices/modem.png create mode 100644 icons/oxygen/16x16/devices/multimedia-player-apple-ipod.png create mode 100644 icons/oxygen/16x16/devices/multimedia-player.png create mode 100644 icons/oxygen/16x16/devices/network-wired.png create mode 100644 icons/oxygen/16x16/devices/network-wireless.png create mode 100644 icons/oxygen/16x16/devices/pda.png create mode 100644 icons/oxygen/16x16/devices/phone-openmoko-freerunner.png create mode 100644 icons/oxygen/16x16/devices/phone.png create mode 100644 icons/oxygen/16x16/devices/printer.png create mode 100644 icons/oxygen/16x16/devices/scanner.png create mode 100644 icons/oxygen/16x16/devices/video-display.png create mode 100644 icons/oxygen/16x16/devices/video-projector.png create mode 100644 icons/oxygen/16x16/devices/video-television.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b7e3dbe..041e2d78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,23 +86,6 @@ if(EXECINFO_FOUND) link_libraries(${EXECINFO_LIBRARIES}) endif(EXECINFO_FOUND) -# Decide what to do with icons -if(WANT_QTCLIENT OR WANT_MONO) - if(QUASSEL_ICONS MATCHES "External") - message(STATUS "Install Quassel icons to ${CMAKE_INSTALL_PREFIX}/share/apps/quassel") - else(QUASSEL_ICONS MATCHES "External") - set(QUASSEL_ICONS "Builtin") - message(STATUS "Compile Quassel icons into the binary") - endif(QUASSEL_ICONS MATCHES "External") - - if(OXYGEN_ICONS MATCHES "External") - message(STATUS "Use system-installed Oxygen icon theme") - else(OXYGEN_ICONS MATCHES "External") - set(OXYGEN_ICONS "Builtin") - message(STATUS "Compile Oxygen icon theme subset into the binary") - endif(OXYGEN_ICONS MATCHES "External") -endif(WANT_QTCLIENT OR WANT_MONO) - # Select a Qt installation here, if you don't want to use system Qt if(QT) # FindQt4 will look for the qmake binary in $PATH, so we just prepend the Qt dir @@ -188,6 +171,22 @@ add_custom_target(genversion_run ALL ${GENVERSION_EXECUTABLE} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}/src/common/version.gen) add_dependencies(genversion_run genversion) +# Decide what to do with icons +if(WANT_QTCLIENT OR WANT_MONO) + if(QUASSEL_ICONS MATCHES "External") + message(STATUS "Install Quassel icons to ${CMAKE_INSTALL_PREFIX}/share/apps/quassel") + else(QUASSEL_ICONS MATCHES "External") + set(QUASSEL_ICONS "Builtin") + message(STATUS "Compile Quassel icons into the binary") + endif(QUASSEL_ICONS MATCHES "External") + + if(OXYGEN_ICONS MATCHES "External") + message(STATUS "Use system-installed Oxygen icon theme") + else(OXYGEN_ICONS MATCHES "External") + set(OXYGEN_ICONS "Builtin") + message(STATUS "Compile Oxygen icon theme subset into the binary") + endif(OXYGEN_ICONS MATCHES "External") +endif(WANT_QTCLIENT OR WANT_MONO) # These variables will be added to the main targets (CORE, QTCLIENT, MONO) diff --git a/cmake/modules/QuasselMacros.cmake b/cmake/modules/QuasselMacros.cmake index d16dcd42..6b2f82d3 100644 --- a/cmake/modules/QuasselMacros.cmake +++ b/cmake/modules/QuasselMacros.cmake @@ -25,4 +25,4 @@ macro(generate_qm outvar basename) -silent -compress DEPENDS ${basename}.ts) set(${outvar} ${output}) -endmacro(generate_qm outvar basename) \ No newline at end of file +endmacro(generate_qm outvar basename) diff --git a/icons/CMakeLists.txt b/icons/CMakeLists.txt index c28de2ea..129bc884 100644 --- a/icons/CMakeLists.txt +++ b/icons/CMakeLists.txt @@ -3,9 +3,9 @@ if(QUASSEL_ICONS MATCHES "External") install(DIRECTORY hicolor DESTINATION ${ICON_INSTALL_DIR}) else(QUASSEL_ICONS MATCHES "External") - set(CLIENT_DEPS ${CLIENT_DEPS} hicolor.qrc) +# set(CLIENT_DEPS ${CLIENT_DEPS} hicolor.qrc) endif(QUASSEL_ICONS MATCHES "External") if(OXYGEN_ICONS MATCHES "Builtin") - set(CLIENT_DEPS ${CLIENT_DEPS} oxygen.qrc) +# set(CLIENT_DEPS ${CLIENT_DEPS} oxygen.qrc) endif(OXYGEN_ICONS MATCHES "Builtin") diff --git a/icons/hicolor.qrc b/icons/hicolor.qrc index d813d147..88e5c511 100644 --- a/icons/hicolor.qrc +++ b/icons/hicolor.qrc @@ -1,5 +1,5 @@ - + hicolor/16x16/apps/quassel_disconnected.png hicolor/16x16/apps/quassel_newmessage.png hicolor/16x16/apps/quassel.png diff --git a/icons/oxygen.qrc b/icons/oxygen.qrc index 9d080fd3..3fbfea5c 100644 --- a/icons/oxygen.qrc +++ b/icons/oxygen.qrc @@ -1,5 +1,46 @@ - + + oxygen/16x16/devices/audio-card.png + oxygen/16x16/devices/audio-headset.png + oxygen/16x16/devices/audio-input-line.png + oxygen/16x16/devices/audio-input-microphone.png + oxygen/16x16/devices/battery.png + oxygen/16x16/devices/camera-photo.png + oxygen/16x16/devices/camera-web.png + oxygen/16x16/devices/computer-laptop.png + oxygen/16x16/devices/computer.png + oxygen/16x16/devices/cpu.png + oxygen/16x16/devices/drive-harddisk.png + oxygen/16x16/devices/drive-optical.png + oxygen/16x16/devices/drive-removable-media.png + oxygen/16x16/devices/drive-removable-media-usb-pendrive.png + oxygen/16x16/devices/drive-removable-media-usb.png + oxygen/16x16/devices/input-gaming.png + oxygen/16x16/devices/input-keyboard.png + oxygen/16x16/devices/input-mouse.png + oxygen/16x16/devices/input-tablet.png + oxygen/16x16/devices/media-flash-memory-stick.png + oxygen/16x16/devices/media-flash.png + oxygen/16x16/devices/media-flash-sd-mmc.png + oxygen/16x16/devices/media-flash-smart-media.png + oxygen/16x16/devices/media-floppy.png + oxygen/16x16/devices/media-optical-audio.png + oxygen/16x16/devices/media-optical.png + oxygen/16x16/devices/media-optical-recordable.png + oxygen/16x16/devices/media-tape.png + oxygen/16x16/devices/modem.png + oxygen/16x16/devices/multimedia-player-apple-ipod.png + oxygen/16x16/devices/multimedia-player.png + oxygen/16x16/devices/network-wired.png + oxygen/16x16/devices/network-wireless.png + oxygen/16x16/devices/pda.png + oxygen/16x16/devices/phone-openmoko-freerunner.png + oxygen/16x16/devices/phone.png + oxygen/16x16/devices/printer.png + oxygen/16x16/devices/scanner.png + oxygen/16x16/devices/video-display.png + oxygen/16x16/devices/video-projector.png + oxygen/16x16/devices/video-television.png oxygen/16x16/emotes/face-angel.png oxygen/16x16/emotes/face-embarrassed.png oxygen/16x16/emotes/face-kiss.png diff --git a/icons/oxygen/16x16/devices/audio-card.png b/icons/oxygen/16x16/devices/audio-card.png new file mode 100644 index 0000000000000000000000000000000000000000..b2a9d8a43eccdfd32938f323487b208085160125 GIT binary patch literal 697 zcmV;q0!ICbP)Myc3EQNhPQ z;7)gfir{PMA}E4ItO!K}w=P_`QRp9_P(_5I(u&fiA=*~k#)@qoP1DT8d1t&4L>DeX zesDO8`+bM=T{3>}uHR)`OWx4X1RPtmx6A4vnuI(|f0CA`Uw)JZ_eY;iKKj1)HDl?9 zF;SRE-9ZEJeXr8^Qu-0}u5C-4Q5`IXZ8)oHw&4>ZD>;`~70wD&AW(usT|*$u8xDAU z^tGTzOxivigvMzQeImf2@qp|8V`QHrbC*0dgb0V(`B?A&1E|qD) z@D3=n3R5xOc?Vk0fG2<3)R=6S=^rQDI=?FxiP`ClbM^EPlAq@gHKqFFVbPM7C~LHA zZNO_$B+6mvFrmtTrR&H$Dr#BfJ~t3g+z#`$G}5g?6Ku$#HjJMe1#w)I7IP3h9vpEK zh}&K0FYkox2}kvS zXbb7>-7WX@hR)mKrZqF2e`*xfEin4}I^vYp+VLM0)v5R;+M-sBWz_568XN7bdo$v| fcr*3(Cz|9JZ_^zEh5T6*00000NkvXXu0mjfWT-bM literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/audio-headset.png b/icons/oxygen/16x16/devices/audio-headset.png new file mode 100644 index 0000000000000000000000000000000000000000..fc8e068bff0f740d7f06c30eefd554e19b826844 GIT binary patch literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6n2Mb|LpV4>-?)JUISV`@iy0Ug zcY`pa)tkqUfP#`Gt`Q}{`DrEPiAAXl<>lpinR(g8$%zH2dih1^v)|cB0aZ(Tx;TbZ z+$!z1^>9iQX`BDMHhkkjo`vyI!kQfmI+jI6-)eF@$#E;UC~L)1-CJBz*}2(VOpZ!i zQeB7Y*gSVk)NQK2e%p2-o4DPZ$_H}}TfTSvm(t1|SMX7z=%m!H-S4NdSRVN>b)`Z< z?}xKyr&VUE9c2`4aeCh7JI&gRgR{})#-q79Qu88&s!lVV-*8*f`M=9Ik*^hRo@o4Q zaQuJv-@??u=FbJD>KAwYyd7>mIbve)QJZbc)){8pVD{d;a46r9Vse0K<~O)78&qol`;+ E0EBF(`v3p{ literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/audio-input-line.png b/icons/oxygen/16x16/devices/audio-input-line.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8e1942136b36f6115b7a54df46c62b41d6c6b8 GIT binary patch literal 404 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJbFq_W2nPqp?T7vkfLzW3kH}&M z2FBeW%xLxI@gtz1WQl7;NpOBzNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)ET>(BJ zuK)l45Ad>^+}Dzs9GRXF%+JqnX`%}h3HEc^v}RF6kPACII}Z;xP+WkYM?{EER9HY% zL_|_TOh!sfQBG1xUP?_(MMFhaTU}94SJ%+c5UAbP$1~W+J}kgBJTy2mz%eS=EjA`P zHZ~?DC8e@By{00+tEIB1rF`DZ2@7WQE}B2{-`~GLXKd8}mIHJZcS(?6FoVaOjn7`c ze*O8+KimEypeRGCr;B4q#jUkxPl`1eFgRaSn0!hhYza@O)`A5W{{OckMmvY!u@|hHhQ}HxvXke=}=B}Lpj9_ z5o9!G($ds_;#gZ-(GWDcv=~kbp@t$+KJmz(zc{g?lGCzflKy*GPr zr>^_l-niRsHk-`P&wgyQTA$w^9Q5|z?T`2i$r^MNznUSsUyhELTwk;KY`fzX{hgX+ zby(pRYY07$(dd+ulOgT)1HKKvb9^B8kRf9n$23BnFY* zK?o^~478L0NGZwloGc8G*%YmFvxwa%k60uz)oK~XacFL~P{Ja*_tdPx{mwSknnkhl zf?SrF1u3yV-?)JUISV`@i-D@I zgD|6$#_S59pk#?_L`iUdT1k0gQ7S`udAVL@UUqSEVnM22eo^}DcQ#T$MV~!g977}| zTMypVYEEQec<{Wow)_3;Pn#$0-_$Y1`Ry)8ls|n|+*IG0*Na0=-de=W z?WNTBG>qrfu1(32{yJNFGnFzL_6@M}g(^s_Xs{Qsoaz7o literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/camera-web.png b/icons/oxygen/16x16/devices/camera-web.png new file mode 100644 index 0000000000000000000000000000000000000000..db115cd0f0f4920f400e18b2389864dad455b384 GIT binary patch literal 846 zcmV-U1F`&xP)2MbA3{D+;L9bZpRkDyd4A(P2)ad80# z6V%q$VtRU7AB{%8fpCMs?RL)|A0O9iwOTYaH9@b}Bb`o*p;oI=U0n_CYG7cXb!uwr z4K5+WCAPP>U)I&tK`xgg5{bZSwc_yb5Jg2rXlQ7_#KZ)eo12+LVltVY1Nd0zV0n32 z?eTajS#w221zawdm~6AzFgZEN!&9meJeWD<-*@A?=zP>mmB?KJkVx zEiHW*85wy%cu&M$+7mmS{Vou6baZ?t&G&RV-3tKDg@pxXW!+(lgFql~AB54-Q7OrL zwzs$U`RM4#?e%&eF#&Iug)|4~HO4O8Wdb=F_=KLZl%#wGkfcacXz0B>q>=s&hr?g~ Y0o)W|Zb#O%O#lD@07*qoM6N<$g3q#Uj{pDw literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/computer-laptop.png b/icons/oxygen/16x16/devices/computer-laptop.png new file mode 100644 index 0000000000000000000000000000000000000000..bf8a9893e6bec8b019285ed4389d45d3647086f8 GIT binary patch literal 663 zcmV;I0%-k-P)8bK7t|Ld-+<|-zN0f|K*qzowb3Kpik0b8F! z2q`3_%VYQyc>zHzEUYA2Bw$c(NM!xk&HA;oGdX8&l!!@n4-9jdIp=pi4W$$wBGyT1 zx7+Uvg~F>uB4NejaWfi?nj}Uf5-|WMDWwuZguC5NE*6W=tyZgj0m$d`Z;QoZDx1wB znM{Eoux%Rz0XZWKLj=JQtJMnQ@%S}>OMoQtk;13m0$cGNQbC^(fOk;1+e$<&6YpwI z!P#7u5Cj1{e~Wc^gXb?_AW(q#bC$~xj{!K}zTlVdv+Xs&Fbsr3;-?$Jbc60CdQj5%Kft!g@ZiGvIwYqEcmNT4Gw4>7 zVa_&Tn~xy=1)y;uCYJbk`vj>}3b9yBPrXaZyWMVh{^y5Ir&A*Guu`dDyiCf@pUryc+R002ovPDHLkV1hVW9Vq|+ literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/computer.png b/icons/oxygen/16x16/devices/computer.png new file mode 100644 index 0000000000000000000000000000000000000000..aa6289158ee93bcb712366fd1a24c8fe10c50c67 GIT binary patch literal 714 zcmV;*0yX`KP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00!&;00!&<9(6c100007bV*G`2iOQ7 z3>P_BFU=4D00K%$L_t(I%dL|=OjBVLhM({L6dEW@N|4lsK!`*KjA3I^w+FkwJ-zOjcq#*@R$>QHyB(saVQwdwah>hkFZkGtslW=Nq2)O}=vu z{9}pkN2yf$=y_hw_kDcd$MZaV-^X=bj4?NTH6P-g%AqJU0uA3KXMY` zfFlIL;m0`H4L=+`%&dWv>;s2x@x_{;bk! zWhw9MaN*o}C!f!Y`T6-%zVAP<)=pO{m7=vazr4J>Stu0D!7AUmcTY{9o^sjwOnPF1 zSH+^vj*N_rj*dQe9A_*HL&7kmr>BQ>I*n55{r2|u+1c6IGJyMRZEdl(Uq5Gr3+ z{rZcW3kx&ZY&JDCG&JLRUM`c#xc&Y8^!D}=1VL1-R*UQF>yHbCLePCo-A82;byKNS wW^Qh7d~$MfU~6luzPh^lE{dXkK=Z%qH;IT^O_E-Fg#Z8m07*qoM6N<$fG+^kKilCj~!1 z@WCfp*A}F8DJ5d5ZETy|n_TClq`$BShMCKqIdjg?twYp>F@{#Fl|(Mf(iBBO2(7i@ zpe)PGdcCIEY(~@R)C>j#0%T1v91hQgY7cBqTZo9=M*Z~0=3BVv! z2qEx?IE~|bt!fbmd_7n$mv3s>ED@dwfPW^Z?VcQOgk;h$qtW=PA_&9q1rI#MAey+w z7Sx9uAOpxC;qNpI?e{n$q+UR79LJU1cDqedO4@8T$oQ{@SY>5xGMRwk& zJM0{!!(J3cAmBdhq2!Il-{0eZ={9#4`x}@-D=Sw8V3=G;+Y+AZSgz*^wq&5lKWhGR z9Pv#i$=6S>U!J_xS{)Uo;rWdGJ6@oTD42+p);SsNdXDr;mXax@S%q4rf5xA$f*+#S z^XcsDF&|D7P!vt}AJ85FA5u__D9ZT``+7cK(dFewx_$fy(JDZ$p9=>m00000NkvXX Hu0mjfet!`f literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/drive-harddisk.png b/icons/oxygen/16x16/devices/drive-harddisk.png new file mode 100644 index 0000000000000000000000000000000000000000..bae21a835d1ba51055a3e1a4fd8988355c40a2f0 GIT binary patch literal 632 zcmV-;0*C#HP)Cc>si~{0tE{Z7uCA`H zudlGMu(GnUv$M0bw6wLgwYj;uy1Kf%ySu!+yuH1>zP`S{zrVo1z`?=6!otGD#KgtL z#m2_Q$H&LW$jHgb$;!&g%gf8m%*@Tr&Ct-$(b3V<)6>+{)YaA1+1c6J+S=RO+uYpT z-QC^Z-rnHg;NjunQy>yE7 z(m&{rM4=nl*-IxSAuzlcWzaSB=EYnCv)#Ab%(E$;EYSzUH}l@ixAQGL5k(O+o3~LI zhCnfyOu%s*kdkVt&SntM>-E4iP2k=_p&)<+8jU&$sK6%0Qp(8p{b)L!5>rig#OmI4 z-3S2&AV`f0!f-ewqMAa>`Hp7@2`(sv5EQDJa|GucJRC2;Ie9ea|6u+BVHhW18(M=SzABWf|S|@nh1l>cmqVdg>*U% zgTX-gpGPK>`4R9u?^mGT??bifq7V=L6D;63Hf$cAfjPW{mBl3p#3xibb$EO9A%UB0 ztgpddb|1p=JG^wC;ME&JDwP6)dQ9zh8%+gJtKGnH=@bMG8CXjhD0=~}Es;O)pK uIgsEo(t&N;TT)6NA5jYdq%NZxTCmm08@~+d0N}oPaNy!IF1vdD|p}vV7r=-QO2kt@g_1=hh#- zdma7kpsJK*TA37TWrC;2BK&>{j2LJc-d@)oSe6A%Z9)`%7# z+aOmxR7q1e!_g2FMS;h|BRbX%ji^P}C&VVYo|PU6I;9_$(WzcUM*SDA1H2MHq)$ literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/drive-removable-media-usb.png b/icons/oxygen/16x16/devices/drive-removable-media-usb.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e31d276d8046d482b149c42a15bbd5d64b765f GIT binary patch literal 672 zcmV;R0$=@!P)0V@%nF~5Q0fLF%vSz z1=tS;gSV-`sS#K%qdlcmMijY7aP|@U`U0i)b0%g&iCM>Sya(XaWP6_9R?31>Hl$Q= zoC1`Pa6S*Fg2x6Ef_|NZ10=+_lgZ3`p?+>7_1`HwXAl8cxe&+{6&fbaVcn9S7~ zUi1|ryhKEgprt@u--q0&0nm_AvWVeuZgvM=nFSc^<>Mo)$`1i$p%Bbq=>X2=4sLQ1 z!&y5*(T9Ns=LmNL(z^%i@&wDu4(#RuK*$9cuIu`F2Zchx<>0!>tph~0CuaSxu|UDi zIxrhWd4(HK-#)=wT_avakjerhn=O87!xi0b*H%giB7TM26Q}$Ns90ed@ADXsGjn>q zo~_2?@ouNn(P0?g8e4oc5!lIL8@MUQTpt6Hc~)E2?0JK zuK)l42QuNHU~)mr@|G!6rc9eQZRX6Gb2le#KUsd}%$alN&Rw{0;o`-Mmo8npeEIU# zt5DxzTOQK$nkV>43UszJ=n3h?>k)P4>FMg{vd$@?2>@r&nU??n literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/input-gaming.png b/icons/oxygen/16x16/devices/input-gaming.png new file mode 100644 index 0000000000000000000000000000000000000000..11979dd0c502e8c760bd440f706d5b9f959c0445 GIT binary patch literal 758 zcmV#M3Xd$Vrd~2j35q8VsJ=N zLyCe4UBnhTlnxH1c1i`iWN2q8k~O4M92C;QISjNv*EaZN~nCN7uj?)dn4{OIVYyt=wNS11&6Ajq=Z5eNjH zb-3Nuj|&U0i^bv&u0R&}2?m2t(&_a6;o%|sIyA)I_w}*p;2;b8{VdVb!#)D;}RgQ&ZEOOeV9Y)9K`mjSUR+_ro?MGwq96$N;o;#2rBVr^D8gVcz-%^SeSMu1&y*_8e(pj;@s_fMb9N5msFnjNSE9;+ z-rn9@CX)#kiv^0JK(*ob`%$mgq5bv&tp{JA4<)gpUqQ3B8R9PyUa$9dXJ=ADtoRZCEv$wamqgt)*Moc5!lIL8@MUQTpt6Hc~)EW&u7S zuK)l4-@0|{wr$%Wr;B4q#jUyL5Arn_a4-j`xw;-X z`~QEWq27$x@3)v=^3K}85X~fZ$dch;Z1tUT_LECzDyXc@Jbzmv@2pGm3j4L89BIEc n?%+9cykVum`p%s`f4(uqtYWiSe7T|;Xgq_btDnm{r-UW|yLy6U literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/input-mouse.png b/icons/oxygen/16x16/devices/input-mouse.png new file mode 100644 index 0000000000000000000000000000000000000000..0696376f161128fff413e59b836487f0afab9f38 GIT binary patch literal 710 zcmV;%0y+JOP)MEn9>6;WfMM#tPcM43%y4-CVbcg~r6 z&wE#PI2=F>tJV4}9*@7>?RJmO&dwCgX7jeuXne0!Dj#vXiTs_If5$*3lUY)!)Hk2c zcePrrz~k{isZ`=ap%ByS_4c`3?nfq*d5)UpQNw@;u~_U~Boet=EEW(91|gfxLZMJ# zbUGab0s(n68hz|^I^PiYKLZ&e91cIl7uakzFc=IlnM^>d)xvN%q<#8ECSl@ARq()W zw?CxPO(qiwgcj=cI&d5Zm>B*31P$%7FSdSS%JG z7>!11<#oc5!lIL8@MUQTpt6Hc~)E{{wtN zT>t<7Z({2TM_yqG5y^$AMUCZkZ6)>Hj-k1gP2K*9Wj-JszoQ}Sw4ikj04>$565v&-AFD?5tndW!0MOIl}^HujhHEUj#rP}M!Rx@TTZ`_$U@ zX|+9b>igz5bWLsOo6|ULZS$nX?Gt8o&s@Np0;51^d%c-EZsC~^}abP zw$59%ZNcgt%Qoy@wqeh*t;bev*}re}fm_paZ6_UX%a zCcTeEz@XqS3GxeO;O61wn{wmfqvvnmzWey8A>9i(`m{WavR(ZpJ`~wuisZ zRNgB#=?vNy91&Pn*Kl7?Eay#5u14zH;u(%9JM=!f3+=Dj(_4dz&RJKj6f@Hk;w?%C!V4$~8-E5j8l0v5UL z)!4RBeF;m7onXnL-S?mHip1s~j=t-?)JUISV`@iy0Ug zcY`pa)tkqUfP#`Gt`Q}{`DrEPiAAXl<>lpinR(g8$%zH2dih1^v)|cB0TnfPx;TbZ z+}eB5kh>{BqV?hWSniTtPQ{ChIA!L{PidcV3xe{XXLfza-#Oy-+ot=H`*X)~&-M#oyL_+!xyjC_b)I52+uDP2f x`o7DYjGYlby#*As9j`4+7n!dUX>d4_nfr;|jWS@-|| literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/media-flash-sd-mmc.png b/icons/oxygen/16x16/devices/media-flash-sd-mmc.png new file mode 100644 index 0000000000000000000000000000000000000000..e61f5bfa23d9d9a9618a68911d20bd17100a03a4 GIT binary patch literal 571 zcmV-B0>u4^P)jW^&_ zao{0%2ws3!Xs>X96Wl;ToPoB7s)hbnQ`%Cyik&##!QLuB71x)JG}1`(?QiGP>@p(4 zZ9$%ys1iY8u#~GQ!@{CR-c_u0BqMsvpZi27$yDg+3wnR0G$Z{5peM74bqwo z&IC*_fN@czscoG>2JLpKh4|uEJaAf0_~AtkVBnlzOC5%Amsh~TQmmvDTzgD8qH8jWzi_fObtHX$vA{_);A zfWJ2QxY!7uJ{P%wh|J-#5VnH!?#>qV1RzWFk3vut;|oeH2*))ezTK>&cba0(%kXd} zfhGPER{=DU8F82~99>G2Uwbt?njNC+rf@xG`uZjSkr~mfaQSh^Y~qfRc>U!FfWmxO z&--L_oc5!lIL8@MUQTpt6Hc~)Ea{_!q zT!Hle|Nns`1n8NVsq5(K7@0sA8hZL#28JpcTB=$)%Icbms%i>gB(JQZprR`3SSspN zCaa(%tEeQetP0enQ*c0RL7sn6@N!EjoeuoVN7!GXQoSDqo$^E}x zA&6g9!QAt0>M{`qhk&d}XP6TIMl_b#ao(=_J!kFqdvX1L0)5~49uC{)>foMzWTw-? zh0KSftFmt_%#Od!!?>pBY6p)^-elF{r5}E-2Zle_d literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/media-flash.png b/icons/oxygen/16x16/devices/media-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..04c45981cd1e81f6a2864ad57652205b34476eec GIT binary patch literal 740 zcmVQNC9rOgkUl3LrQNn=S$vMI5#X5ZFi*O??6 zlF;D5+c!Hq-+A+S?=7gR+H+i)47{1VHGP}>Yg2bVUJu;6+MUx=jCLUYJ;^@L#Ioog zUde3KK79JR(w)cAqurc?&gTw?<3deQK$aNLSDj7(#&&??0hlC1a(Q__>NbJCwToSD z*X!|<<9_#`yIx%(wWJEg25nch$Zpn^yARO`+VqpO!?1mO7Z~cNFiNx**l}h6jHjy(NjzBCn58+4z8gcCu z%lW)h0X?<02d>3Vk{wEsLN9G+n4U2%OwRM0>A^x4boS~jnE zy`!gsp|@JxL%EucI?xJj;}oB`c=^ef=(i*IK6mc?rAPBit7oFo+4qh39L3|%X8!=r Wg!SwvNpWca00006_-SOG&G2kB0X<`C{jfU zRR~>_gbEN6Q1Aeu0MP~U4CEc?;5Z?rxk$bf_N~v~nc1^eTA>t(wPt6$p84-@#;k2y z_@Cv__GEW2c3gM$(e@6k4>kZgQN}q4!GH_&oB@U~8vTaPA5US)b>lbh-uAV?csyS9 z10SLr0rdOQs53H#0t|g8;D+&su zyeN!7@+W~5i_#Ap z0Zia`Zr(cSt*pGlSY%lS`v*@oc8;ht11hFMqN4W_iQ_oVDc`}w27~ue7+y#z`81vk zs*$&H8^-6{7x+ng;eA8h( z?;Oq*14^t66a>To_6B?4|5I803STCd-aEK^|2xG`ZQUe<&k?g)? z6+Bp_04Vq%+(sOy>6MS>E-kGrZ=C=2{Cu@qy?guC?RvKp^}|V=AQmZ_&Bjp@Ms2TG z6mx7?c^k5jgG8nnWBfqrz}iA{p=Dkw@xZidc93=jk|;r90Go}5N6N*@l^&pHk|WT} zg6I1Vfb#gh@n`$J&*&z=Hr$9o=+{+QqU5B(8xle^Muz(Z#`EZt=2ea;GDuzfJ`;0MXjkrC#!yb z@TpjHD^dw0kD$1KLW1Ro_vc?f^{QYnnrXZ3q4wM@|0 z-v8u-&h}?Awuh$J$9#-Dow?Tf`seXy)2GhJzz>eQj{Ay~3R_#9`A#fmzWw3THg@P= Xh$oE#^%niq00000NkvXXu0mjfsp!CX literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/media-optical-recordable.png b/icons/oxygen/16x16/devices/media-optical-recordable.png new file mode 100644 index 0000000000000000000000000000000000000000..de714f64fd1569a15d90fa67efe7980c5cad3fbf GIT binary patch literal 983 zcmV;|11S87P)sBI>jNK zv#x?$3qB}wOc4=5M9>GHd{LwiA_`KOzBm+wS;i)<+q$VR!41+uCl0&0Catk{jro6X z?w{P;e`d-Ctp^T#U(V;{dkz%@0XFOOxAVNnbB`#p@BqUya2$8RbG-TCk$xMSv;i>p z_4gv5;HRia_ytLb(Q$zT+W~|+_I=;UpZNT|^4P(Nft}l|TN!fe_~FRZXuL{6Qoi8s-C|auxvSJp*I>mZ)@02=PQDt1#DV2&e7>FRo#wEU3j&)r>ZN z64ZPFTxK8W)&g3Ed04`5D!0`9fC*}gPjTrzG@$|*D;kuf4@V79=f}?N8W>zAgec{n z_>RiCFL%;X4}SY%5{$V3H=Q63>+U8LDIGwV0~M3evNh0xgBxYNlIa^-o}HaNp3P=Y zbtij&(d4Z)Q@7w=%feR1L3#&aES@>Uv=M~J;=8CaHa0Blq$cSG*q7Z3_F0bq5) zjaF?*)QjF>I{QAwcDZnD1A)`PmA^+1GaN5pSYK9x%)LD220-`F0r;Lz)yr$+*0qnD zZJH3P#)f14&p_w~Y*T{Oh=383K`4?rL2lNwcE{)i&kq2{>V#diZ3pI=x2QyQHX^E* z!q`3m%d_F}K3LHK9RgPM$n_`Qc-3S8ASxxsihs3hNv6m(bFaZMOvI!$SY-k_YCx~n z;7Vbzehe|b4p*RE!lriJF4B(sdd;hUR1c{YIAPz1hYeedQhPe`7j(^rJ}J`SW6mQtxTzuTq9)gC{O%DFQ9shgyrt*PSg7KKJ&d zx?zo*HTmZ2kpvgK81s$&e%qx=K7YFGb4TBs`c%ax{R3*%f>8U(eiW=S{o!no%cWmQvwvGguyeCd;kz47MUcL2Zq z{HLLN;vDL+Pgq7TE*S;TB!I{eLa>NN7u!DjVPy29=sm#iv$qeLZan9dl))HuV90|l zh7D$csm=fIK_dR%8fxADdN3JX_m z>iw=BShBQgARu-I*ya#&29K8;O$0h08{J>jh?a{}#yh4$v+nc%s&!i>mOfta9IPNI z><|+KX^XxP3NPw)Q|)z2ze>Q_w{8>Iy=Qm_02DpX``UHg zM%4CcUyr^$3qwFj28avbjDx8;zo~k`tO#kZZkbqBRluqOiUO$F@TZom)rT>Uw4%j# znl?tf#X+PJO$B5j6_!FON@qM*p0890>9#Lfd3zXP)L$CdYg=1)#e$%SCy z_`~+C%F^`H$N%~)>2$y#p-Jwxh$WC>XvqjEhn3ZO_~2Rfn=ijT-hS^hUA{DHsT!Io zm&->po+&hv5Xzt>fsMGC)t=n1WE4-HI&(63=QC|yr@udIJGL`z7{=$F$!j))g&?Lg fKVA6I-<-?)JUISV`@iy0Ug zcY`pa)tkqUfP#`Gt`Q}{`DrEPiAAXl<>lpinR(g8$%zH2dih1^v)|cB0Ttc#ba4#P zIKT9wtv*Yk%#n}h|L5t8^H0?1b82*X?YhEa57Sifhj(A>WsmB0S~sDitEKpzl9uDO zd3XP6PIG%SYqsXHnMt4KiY!~5daY?~_Q(C<`9Z6#@^rbEZd18pzb+(B)>Z7>T4m2$ zVj*7d@3kD#o%r$P!M7b0eT_kR zPcALwF7{Gfnzi0^{f0-LOBV;N`pVOKCvboFyt=akR{09p-<)&Kwi literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/modem.png b/icons/oxygen/16x16/devices/modem.png new file mode 100644 index 0000000000000000000000000000000000000000..fc7957ecac92c7ef4ecee2477bd857d893ea43d1 GIT binary patch literal 581 zcmV-L0=oT)P)Uxjc1iGyg}kY zJ^?uam_ft<(Gg(=GX+#(-s9GjjrB*%*OmnUq!?ao&(DFqhZ7GH0XqjG_XiN6F~UMX zZ)f|`_<|IA;#6}Uk|c0Gf%6{h1T1r;P)AmIy0;4k zft+7`RjMj*WLYdA$aBJUY+~{l5RO(Wt?sDYR0UW*G*LBhkQmd#zkR(k%*$ zX1#_F>up$TA*gd-JQo;_MxHYdJ>N*$mMn}(S*XDGA6HWHEHe=-KLsb{NJu_$!RE(J z1dxbZf+H%i;F$2&Lbun)YOBct8{wA9%IqP)+76T){D~-v-t0VovGw-g3xNl*556bRaQ5T|_io?Zllq)a_;g~F zrd$5$ZT3yZsmyR9F$`lvV;ZvfD@l@!Sqlwx9XPd7Xa$f2mQWkYwkGlogTa7af*=Uc z$`W}HX=#@Hsc0lyM;ym-KS3CV)U9P0Dm)FJmxiA!i|sfB_~##Zo`*4#L7L%*G;hS3 zLUP?IC-7f_(D(ROC=M5pCDJ5Tw6;`2;QM|*fl`Xgn=NVc4zOtT8=wT|vg7W(kH8Ja zlgUHEAYeY9gWLhywxwwr_ulu3uF$Dyk7G9;QC_^x=B)|AAa?eJq}PEX04SvK<<0|& z5Bq$~uX63qectarWwl!MIyfq*%8DdSovNo5*7_J@sH&>pL0#8aDg6HG8JF%p=5T(% zg)`@w?M|Hiq9|Akw@lqZdc8d!U#ZH{scWqPocdz1U^biWEtkujZmh2}FqN6NvN(1$ j8aWJyLn~wc*LD5{%RS=osgF2000000NkvXXu0mjfG=dHO literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/network-wired.png b/icons/oxygen/16x16/devices/network-wired.png new file mode 100644 index 0000000000000000000000000000000000000000..1f256a8dd8d4dd796b9ac6ca9da39d81f2d8e75c GIT binary patch literal 604 zcmV-i0;BzjP)bcA)^@#7|7saLELla#)<97dtX3;@yInM!O#}h~`3)qc7FPS8)*XwvmyWPfexh&dtK=V4C zPI$duuq><`2pWUVYz^ol1^6!V1_AjkOisjj`iRYDLuap#(CKsp_R{HmKK~SrMsGYG z51CMaR*^>6bqcsh27icIyM0NK_6@gTTz|jjBaz6n_!raZ6rw1e{$@}p6oh0lIcDj~ zx^D|5c!2kNnsIV|zF#VpZt)8IOK~ER7_+wJ*=&aNhZKbSOFZa09}b6eAa)r9gTXVl zS#qz}Lnf0!qtSq>E%D>(>L>fgWBi5ZUr<%`qtE9vB}wASP)K~#9!rIUL|Q&Akpe|HbN+nh>dIi}`H)TEdBk4oepJ^ZI3 zRM4OKNQan0fA*I`|MdX%`d}G>&_a4)QV51ksBJhOn=>CQak$Mb^KP=;x$eBX_jIq} z(z3ria5(4p{r%3D59fCdh7f}N49Q+%U8h462d)$_I4j~1hcJHpU=3@8XwYvx! zyXTUl9P_Y9ld3DoRAO0&WFVwHWE5uIVf58Q5mIUVp1!^~`j3IGZBivqm6>mzSLdWD zlECT=3I`dU0y~oFFsxYhVadjs)v^a~ofe9YL+vF^9*$Tdfh`bJcTC-Q@!5wamcpotu)pTTEi&|H zh1OOis_C-5x4S6RXY`_K!d@ZhzX>o*D-CL(zhBm&`0B9I6|XPD1;0K!vL>KgF6NphH%H-(&BCgGCAqWK^dvn338!*RYv z-tyV*Mc{zQnXG)xkOY z3qgPL)!dEj4E*rUHgDB5oMZ1+=6XLl)_lur8*h4>P6u}Vg=bAggFx7VD}ku8zCz=M zJ;uu~E1r1|wZYeVc0QzCv!-)Ow!Jr*ObkH~Az}Z&x$p1%3#G4>BVCt-PXGV_07*qo IM6N<$f?XSWF#rGn literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/pda.png b/icons/oxygen/16x16/devices/pda.png new file mode 100644 index 0000000000000000000000000000000000000000..37129f24440110a05ecf8a519085c8e74edcd95d GIT binary patch literal 638 zcmV-^0)hRBP)c1g22%zJ1}$s8*|>%u(=CgWtm$JUNSkXAn40fd6wBcUCp( z^?Gy$%#j9r`!oERPGL&{+oqO&eZ`g&;@tLa7JeKcl%i!rf=P zIOSZ2!O{vSa1L#2*rbgW4_iNpvABDx@B3)C+mKRrZqKzu?g;>Lxg1`<&L9LJgoF?h z-v^%%1i>})2mm62uIo6R=mPk80qDApR4N6=SS+t30YV69nugPnE`7SRrfJ}u-vRz= zkj-ZA4ASW|n$70N0LBxoOYuApQ53mE1R+G@_kbx3!`Ldv45BES9*@U2&+|wK0Yy<7 ts;V{$g#rx2Aja6+?d3azKlMM~`4=bdGIfD(thWFF002ovPDHLkV1gz@2zCGf literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/phone.png b/icons/oxygen/16x16/devices/phone.png new file mode 100644 index 0000000000000000000000000000000000000000..6fb85725c4973b350176a6aeca0b0113a5eb0a15 GIT binary patch literal 395 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4nU$^-sDChbJP)jK~#9!jZ@8PB0&%?wbwY~4;qCWB!~nRTmlR6kb@qAM_qgj z_f>oYA7Bq2LQc5^_26mGIml{)3v)7p8lBY{|Hj#>Vq4r{k$g~8cgAmY}*D2 z7XqCEr(xPhNy70_!EZ}A0qo&NXUM(VNm#Ep@L@O$)a&&hy8athtM&i56lczHOgQ9S zOsDU#-EKiu74Uk!6ayN0v)O=Qn9TX7K&@5_dOV(KCX*5S{T_zH5iFMm`2Bt?@Cn>* zH((qKY%#v1Vi%oG$JTXy*YEewMIw>7MZ$A99ES0DoOpVA3|W>%NiOu%k&9px8x63L zt|*E|v1~SbD+-0erK+kofavvlFc=Kr6q3ngER{;dXl)qAr7%qsBlbPhz6CU56p(P$K^)hhG4-R@_Bl6+W=CBD22AQXy#6I4gy_4OCt)R1p!G#Z6n zl}hDHFc`eUxvom3uiuKrqKA`?vZM+^yWO@P9`3(KB9Uio+&M^1r_=dnvuW>kyMy6_ zIyR0G2X7%S^Mvg1hQPP5#=|^=6Ce(%{VDg(-#Jbkn&7YP$vgHI=4dkK4;3>kq$#1J QkpKVy07*qoM6N<$fS->P)-8UEGMU_?;5)@F&}`dAsZ>ItP{`*5 zWdKA`wD&L!v-p#sXKJ-tePmLLkUW_n1VMmuxtv2B#{pO03%A>C9_c3pe8{^n9*<9d z{l5Bgc^h$62L;ClYe#BKE@u6V24NJ!_pfl|Dm?PUi(aqyO@ZdR?(wB(!G8PzZovU{ zNchkcCG-rC=mdhp*#?mD8dViE0qg)Q{Uod&!IbVJ5)v9a@iqhK6f8C09zbx3^Y9vF zbJ5y&VQagsKk5)l+R#Q|tqlT=-4?Wlr940&w^SMUM!~agc7RT&BVWIJfBZDQ0kpt| z;@BWRdBf7BlGv;HE*~<5=XuR;w<}e%*({%Z{d_PQjq);!#bWj`ZzazL>^C->&E6v( zWc851(^n5?vspn5heK4W)i=}W^!akRtogowuwJh{w#%kivaK07B{(K@Q>j#Z=3g`# zjWf3U?LU{P-|vg_^K)ylSf~sD8vli~R;wlLc3Tey14GC@|L$+&Uq%KSn`oiA#Q*>R M07*qoM6N<$f|_jxr~m)} literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/video-display.png b/icons/oxygen/16x16/devices/video-display.png new file mode 100644 index 0000000000000000000000000000000000000000..10cd322692660ab1603200e6078e84c38ab0801b GIT binary patch literal 725 zcmV;`0xJE9P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00VXa00VXbebs`@00007bV*G`2iOQ1 z2_gW8yBe7Q00LD>L_t(I%axPAOB_KI$3Jgo*WL3JydMeVKS*)dX(gBz+G1FU8)SCL~2(Gw(6;{l4$}&W!Bt z?yfW%jSo{(Qw;!P3?hPvFbY*2ud0goo-E6fv$M0;a&T~Pv9q(&NRos~r9u=%OiWA= zh9TBk0KE4&=g9M%!C*j^Wz=dlmY0{4pjxdq+U+*aH$LG31ysPxFgK-=0w`2*9)6^r z@0%~FR;!I*)ZzNZgOp$uKmZXiqa3aaIKA=Y3Pn)>5I|X6rG5-l0gQksh~QDq2THF1 zV+CvFj$mZURo|mVQIT;+jF39zVxV{ttOXkg#>&{(Kvjw3m`>l_Nk;Gjoq^}(Ue}Vq zV62XBDNt29oeojY59bxKLh0Qq7{ORda4^gr*Z|TrMO8}=@;s+|UEqNu#tJq7 zYYoQfP=&_^C1z}*bB<2mljY@H#()WivK>Peck^3UVgQ1Ezn{#`&NkX#UhrUYl1imQ z9LL0QOcX^JW4OJ&9Y3Hf%Sh9dR;xvtripBCZ?Cjkt&g=@t414k}S)JqKGgIudTIT zkB*KuR##WQjWEG|f@ZV%WO{n~S-oDLP*rATW)Km=Fho_Sk|cTRocj!X`>O&#>h=1= zg@uL1xw*MV^YimFQ54DH;bC`wfB$rEZ*Q;L?Vb<+900!n^MxRhprUIf00000NkvXX Hu0mjfv+qMj literal 0 HcmV?d00001 diff --git a/icons/oxygen/16x16/devices/video-projector.png b/icons/oxygen/16x16/devices/video-projector.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2be2258ad636e049e7903049b6f0a662191bd4 GIT binary patch literal 720 zcmV;>0x$iEP)XC`teT0$oW& zK~#9!#ZpUa6HyfYGI#Q7I!z)-lh~$dv?i^#L0yO-*e-m56(0!VKM<_H!~Oy3TCiQY zbfYd5L1GXJLSvJW(B{!L>6m2NyeG}|+`*J=T#6rj+?jjs`ObIFz4-62^gkkz2wPo! zeRXtnbir3vmbs>t`0j3jt7_`o%F4?z5F`*LCqqw_Vdb*bY8^1g z!MR}X*sR53fh@~V6y?(R`1rHFfYt5s+z>$lvMdr!cDr3+-`pF3Ddh3EuZvu1e*RkU zgx7m-Noua;f<1f~J)rNIIsy_4RdZrZy4q2QU$ufYC7!2m~-PG9ubB z3-o9<`z38w-rnA3^?Kb*rs<pF6|E##|o zsC9^iE3+6@hT(8Hgn&pkG)>#eX0vZB00doRDHx4L&(l+$a=Bcm_KJHxnaO8{TtiI~ z%`k~oNO*@5)nqdHovP;m)GhcsB%+PjBN{}Ge}Uhla5FU+K$&>}0000ugK~#9!#gacy!cY{&&wa0jh6!~c5G72okT^OyNaE_`>WA=y z7{lhra5C-=ZVtFel!O5=0b)!rPWUa+tB-sB8phlx% zyWK8Ir4oLVwRX+@ejl}34IWsi@z={F0*$kgw zCI*OT$_+Y@h*EG$iUAgwPNyj#I{BDrHdL8+E9-U4HtyT-|c6-jR ga|_^#=N`fO24Y*lVs#o6g#Z8m07*qoM6N<$f(69pvj6}9 literal 0 HcmV?d00001 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 50819f5c..fc41ec1b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -15,6 +15,16 @@ if(WANT_QTCLIENT OR WANT_MONO) include_directories(qtui) endif(WANT_QTCLIENT OR WANT_MONO) +if(QUASSEL_ICONS MATCHES "Builtin") + qt4_add_resources(RC_ICONS ../icons/hicolor.qrc) +endif(QUASSEL_ICONS MATCHES "Builtin") + +if(OXYGEN_ICONS MATCHES "Builtin") + qt4_add_resources(RC_ICONS ../icons/oxygen.qrc) +endif(OXYGEN_ICONS MATCHES "Builtin") + +set(CLIENT_DEPS ${CLIENT_DEPS} ${RC_ICONS}) + if(WANT_CORE) setup_qt4_variables(NETWORK SCRIPT SQL) add_executable(quasselcore common/main.cpp ${COMMON_DEPS} ${CORE_DEPS}) diff --git a/src/common/quassel.cpp b/src/common/quassel.cpp index 1ecc8969..2584a941 100644 --- a/src/common/quassel.cpp +++ b/src/common/quassel.cpp @@ -48,6 +48,8 @@ bool Quassel::_initialized = false; bool Quassel::DEBUG = false; Quassel::Quassel() { + Q_INIT_RESOURCE(i18n); + // We catch SIGTERM and SIGINT (caused by Ctrl+C) to graceful shutdown Quassel. signal(SIGTERM, handleSignal); signal(SIGINT, handleSignal); diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index d2363e6f..a8628580 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -36,7 +36,7 @@ #include "clientbacklogmanager.h" #include "coreinfodlg.h" #include "coreconnectdlg.h" -#include "icon.h" +#include "iconloader.h" #include "msgprocessorstatuswidget.h" #include "qtuimessageprocessor.h" #include "qtuiapplication.h" @@ -80,9 +80,9 @@ MainWin::MainWin(QWidget *parent) _titleSetter(this), systray(new QSystemTrayIcon(this)), - activeTrayIcon(":/icons/quassel-icon-active.png"), - onlineTrayIcon(":/icons/quassel-icon.png"), - offlineTrayIcon(":/icons/quassel-icon-offline.png"), + activeTrayIcon("quassel_newmessage"), + onlineTrayIcon("quassel"), + offlineTrayIcon("quassel_disconnected"), trayIconActive(false), timer(new QTimer(this)), @@ -422,7 +422,7 @@ void MainWin::setConnectedState() { qApp->setWindowIcon(onlineTrayIcon); systray->setIcon(onlineTrayIcon); if(sslLabel->width() == 0) - sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/no-ssl"))); + sslLabel->setPixmap(SmallIcon("security-low")); } void MainWin::loadLayout() { @@ -444,7 +444,7 @@ void MainWin::updateLagIndicator(int lag) { void MainWin::securedConnection() { // todo: make status bar entry - sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/ssl"))); + sslLabel->setPixmap(SmallIcon("security-high")); } void MainWin::disconnectedFromCore() { @@ -736,13 +736,13 @@ void MainWin::clientNetworkUpdated() { switch(net->connectionState()) { case Network::Initialized: - action->setIcon(QIcon(":/16x16/actions/network-connect")); + action->setIcon(SmallIcon("network-connect")); break; case Network::Disconnected: - action->setIcon(QIcon(":/16x16/actions/network-disconnect")); + action->setIcon(SmallIcon("network-disconnect")); break; default: - action->setIcon(QIcon(":/16x16/actions/gear")); + action->setIcon(SmallIcon("network-wired")); } } diff --git a/src/qtui/mainwin.h b/src/qtui/mainwin.h index ffa2ade1..a5626475 100644 --- a/src/qtui/mainwin.h +++ b/src/qtui/mainwin.h @@ -23,6 +23,7 @@ #include "ui_mainwin.h" +#include "icon.h" #include "qtui.h" #include "titlesetter.h" #include "sessionsettings.h" @@ -137,9 +138,9 @@ class MainWin : public QMainWindow { void enableMenus(); QSystemTrayIcon *systray; - QIcon activeTrayIcon; - QIcon onlineTrayIcon; - QIcon offlineTrayIcon; + Icon activeTrayIcon; + Icon onlineTrayIcon; + Icon offlineTrayIcon; bool trayIconActive; QTimer *timer; diff --git a/src/qtui/qtuiapplication.cpp b/src/qtui/qtuiapplication.cpp index 80cc4d40..6ae09c94 100644 --- a/src/qtui/qtuiapplication.cpp +++ b/src/qtui/qtuiapplication.cpp @@ -27,8 +27,6 @@ #include "qtui.h" #include "sessionsettings.h" -#include "iconloader.h" - QtUiApplication::QtUiApplication(int &argc, char **argv) : QApplication(argc, argv), Quassel() { setRunMode(Quassel::ClientOnly); @@ -48,9 +46,6 @@ bool QtUiApplication::init() { gui->init(); resumeSessionIfPossible(); - // DEBUG - QPixmap pix = IconLoader::global()->loadIcon("network-connect", IconLoader::Small); - qDebug() << pix; return true; } return false; diff --git a/src/uisupport/iconloader.cpp b/src/uisupport/iconloader.cpp index 0fff1e82..688d0b11 100644 --- a/src/uisupport/iconloader.cpp +++ b/src/uisupport/iconloader.cpp @@ -28,12 +28,16 @@ IconLoader IconLoader::_iconLoader; int IconLoader::_groupSize[] = { 48, 22, 22, 16, 32, 22 }; // default sizes taken from Oxygen IconLoader *IconLoader::global() { + // Workaround: the static _iconLoader might be initialized before the resources it needs + // This way, first call to global() will init it by setting the theme + if(_iconLoader.theme().isEmpty()) + _iconLoader.setTheme("oxygen"); return &_iconLoader; } IconLoader::IconLoader(QObject *parent) : QObject(parent) { - setTheme("oxygen"); + // setTheme("oxygen"); } IconLoader::~IconLoader() { @@ -59,17 +63,25 @@ void IconLoader::setTheme(const QString &theme) { if(QFile::exists(path)) _themedIconDirNames.append(path); - // Own icons in $data/apps/quassel/icons/hicolor and :/icons/hicolor - // Also, plain icon dirs $data/apps/quassel/pics and :/pics - dataDirNames.append(":"); + // Own icons in $data/apps/quassel/icons/hicolor + // Also, plain icon dirs $data/apps/quassel/pics foreach(QString dir, dataDirNames) { - path = QString("%1/apps/quassel/icons/hicolor"); + path = QString("%1/apps/quassel/icons/hicolor").arg(dir); if(QFile::exists(path)) _themedIconDirNames.append(path); - path = QString("%1/apps/quassel/pics"); + path = QString("%1/apps/quassel/pics").arg(dir); if(QFile::exists(path)) _plainIconDirNames.append(path); } + + // Same for :/icons/hicolor and :/pics + path = QString(":/icons/hicolor"); + if(QFile::exists(path)) + _themedIconDirNames.append(path); + + path = QString(":/pics"); + if(QFile::exists(path)) + _plainIconDirNames.append(path); } // TODO: optionally implement cache (speed/memory tradeoff?) @@ -110,3 +122,25 @@ QString IconLoader::findIconPath(const QString &name, int size) { return QString(); } + +// Convenience constructors + +QPixmap DesktopIcon(const QString& name, int force_size) { + IconLoader *loader = IconLoader::global(); + return loader->loadIcon(name, IconLoader::Desktop, force_size); +} + +QPixmap BarIcon(const QString& name, int force_size) { + IconLoader *loader = IconLoader::global(); + return loader->loadIcon(name, IconLoader::Toolbar, force_size); +} + +QPixmap MainBarIcon(const QString& name, int force_size) { + IconLoader *loader = IconLoader::global(); + return loader->loadIcon(name, IconLoader::MainToolbar, force_size); +} + +QPixmap SmallIcon(const QString& name, int force_size) { + IconLoader *loader = IconLoader::global(); + return loader->loadIcon(name, IconLoader::Small, force_size); +} diff --git a/src/uisupport/iconloader.h b/src/uisupport/iconloader.h index 165aa9b7..c40dc576 100644 --- a/src/uisupport/iconloader.h +++ b/src/uisupport/iconloader.h @@ -96,7 +96,7 @@ private: // convenience QPixmap DesktopIcon(const QString& name, int size = 0); QPixmap BarIcon(const QString& name, int size = 0); -QPixmap MainbarIcon(const QString& name, int size = 0); +QPixmap MainBarIcon(const QString& name, int size = 0); QPixmap SmallIcon(const QString& name, int size = 0); //QPixmap SmallMediumIcon(const QString &name, int size = 0); // not part of KIconLoader -- 2.20.1