From 6654182032acfe45bfa98344305fdedc85ef087b Mon Sep 17 00:00:00 2001 From: David Sansome Date: Sat, 3 Jul 2010 21:05:55 +0000 Subject: [PATCH] Don't connect new devices automatically, put them in a list model. Add icons for ipods, android phones and USB memory sticks. --- data/data.qrc | 55 +++++++ .../drive-removable-media-usb-pendrive.png | Bin 0 -> 806 bytes .../22x22/multimedia-player-ipod-U2-color.png | Bin 0 -> 737 bytes .../multimedia-player-ipod-U2-monochrome.png | Bin 0 -> 679 bytes .../multimedia-player-ipod-mini-blue.png | Bin 0 -> 702 bytes .../multimedia-player-ipod-mini-gold.png | Bin 0 -> 702 bytes .../multimedia-player-ipod-mini-green.png | Bin 0 -> 700 bytes .../multimedia-player-ipod-mini-pink.png | Bin 0 -> 686 bytes .../multimedia-player-ipod-mini-silver.png | Bin 0 -> 655 bytes .../multimedia-player-ipod-nano-black.png | Bin 0 -> 562 bytes .../multimedia-player-ipod-nano-white.png | Bin 0 -> 582 bytes .../22x22/multimedia-player-ipod-shuffle.png | Bin 0 -> 521 bytes .../multimedia-player-ipod-standard-color.png | Bin 0 -> 720 bytes ...imedia-player-ipod-standard-monochrome.png | Bin 0 -> 614 bytes data/icons/22x22/phone-google-nexus-one.png | Bin 0 -> 3625 bytes data/icons/22x22/phone-htc-g1-white.png | Bin 0 -> 944 bytes data/icons/22x22/phone-nokia-n900.png | Bin 0 -> 892 bytes data/icons/22x22/phone-palm-pre.png | Bin 0 -> 939 bytes data/icons/22x22/phone.png | Bin 0 -> 600 bytes .../drive-removable-media-usb-pendrive.png | Bin 0 -> 1221 bytes .../32x32/multimedia-player-ipod-U2-color.png | Bin 0 -> 1547 bytes .../multimedia-player-ipod-U2-monochrome.png | Bin 0 -> 1502 bytes .../multimedia-player-ipod-mini-blue.png | Bin 0 -> 1550 bytes .../multimedia-player-ipod-mini-gold.png | Bin 0 -> 1559 bytes .../multimedia-player-ipod-mini-green.png | Bin 0 -> 1566 bytes .../multimedia-player-ipod-mini-pink.png | Bin 0 -> 1488 bytes .../multimedia-player-ipod-mini-silver.png | Bin 0 -> 1512 bytes .../multimedia-player-ipod-nano-black.png | Bin 0 -> 1357 bytes .../multimedia-player-ipod-nano-white.png | Bin 0 -> 1296 bytes .../32x32/multimedia-player-ipod-shuffle.png | Bin 0 -> 1111 bytes .../multimedia-player-ipod-standard-color.png | Bin 0 -> 1409 bytes ...imedia-player-ipod-standard-monochrome.png | Bin 0 -> 1391 bytes data/icons/32x32/phone-google-nexus-one.png | Bin 0 -> 4142 bytes data/icons/32x32/phone-htc-g1-white.png | Bin 0 -> 1423 bytes data/icons/32x32/phone-nokia-n900.png | Bin 0 -> 1323 bytes data/icons/32x32/phone-palm-pre.png | Bin 0 -> 1618 bytes data/icons/32x32/phone.png | Bin 0 -> 972 bytes .../drive-removable-media-usb-pendrive.png | Bin 0 -> 2033 bytes .../48x48/multimedia-player-ipod-U2-color.png | Bin 0 -> 2462 bytes .../multimedia-player-ipod-U2-monochrome.png | Bin 0 -> 2419 bytes .../multimedia-player-ipod-mini-blue.png | Bin 0 -> 2479 bytes .../multimedia-player-ipod-mini-gold.png | Bin 0 -> 2563 bytes .../multimedia-player-ipod-mini-green.png | Bin 0 -> 2566 bytes .../multimedia-player-ipod-mini-pink.png | Bin 0 -> 2463 bytes .../multimedia-player-ipod-mini-silver.png | Bin 0 -> 2517 bytes .../multimedia-player-ipod-nano-black.png | Bin 0 -> 2158 bytes .../multimedia-player-ipod-nano-white.png | Bin 0 -> 2053 bytes .../48x48/multimedia-player-ipod-shuffle.png | Bin 0 -> 1546 bytes .../multimedia-player-ipod-standard-color.png | Bin 0 -> 2235 bytes ...imedia-player-ipod-standard-monochrome.png | Bin 0 -> 2190 bytes data/icons/48x48/phone-google-nexus-one.png | Bin 0 -> 5463 bytes data/icons/48x48/phone-htc-g1-white.png | Bin 0 -> 2276 bytes data/icons/48x48/phone-nokia-n900.png | Bin 0 -> 1962 bytes data/icons/48x48/phone-palm-pre.png | Bin 0 -> 2964 bytes data/icons/48x48/phone.png | Bin 0 -> 2471 bytes data/schema-14.sql | 8 + src/CMakeLists.txt | 2 + src/core/database.cpp | 2 +- src/core/utilities.cpp | 24 ++- src/core/utilities.h | 1 + src/devices/devicekitlister.cpp | 3 + src/devices/devicelister.h | 1 + src/devices/devicemanager.cpp | 137 +++++++++++++++--- src/devices/devicemanager.h | 50 ++++++- src/devices/deviceview.cpp | 25 ++++ src/devices/deviceview.h | 36 +++++ src/playlist/playlistdelegates.cpp | 15 +- src/translations/ar.po | 3 + src/translations/cs.po | 17 +-- src/translations/da.po | 3 + src/translations/de.po | 16 +- src/translations/el.po | 27 ++-- src/translations/en_CA.po | 3 + src/translations/en_GB.po | 3 + src/translations/es.po | 33 ++--- src/translations/fi.po | 8 +- src/translations/fr.po | 18 +-- src/translations/gl.po | 3 + src/translations/it.po | 23 +-- src/translations/kk.po | 3 + src/translations/nb.po | 3 + src/translations/oc.po | 3 + src/translations/pl.po | 3 + src/translations/pt.po | 21 ++- src/translations/pt_BR.po | 19 +-- src/translations/ro.po | 3 + src/translations/ru.po | 25 ++-- src/translations/sk.po | 19 ++- src/translations/sv.po | 3 + src/translations/tr.po | 3 + src/translations/translations.pot | 3 + src/translations/uk.po | 26 ++-- src/translations/zh_CN.po | 3 + src/translations/zh_TW.po | 3 + src/ui/mainwindow.cpp | 5 +- src/ui/mainwindow.ui | 33 ++++- 96 files changed, 518 insertions(+), 176 deletions(-) create mode 100644 data/icons/22x22/drive-removable-media-usb-pendrive.png create mode 100644 data/icons/22x22/multimedia-player-ipod-U2-color.png create mode 100644 data/icons/22x22/multimedia-player-ipod-U2-monochrome.png create mode 100644 data/icons/22x22/multimedia-player-ipod-mini-blue.png create mode 100644 data/icons/22x22/multimedia-player-ipod-mini-gold.png create mode 100644 data/icons/22x22/multimedia-player-ipod-mini-green.png create mode 100644 data/icons/22x22/multimedia-player-ipod-mini-pink.png create mode 100644 data/icons/22x22/multimedia-player-ipod-mini-silver.png create mode 100644 data/icons/22x22/multimedia-player-ipod-nano-black.png create mode 100644 data/icons/22x22/multimedia-player-ipod-nano-white.png create mode 100644 data/icons/22x22/multimedia-player-ipod-shuffle.png create mode 100644 data/icons/22x22/multimedia-player-ipod-standard-color.png create mode 100644 data/icons/22x22/multimedia-player-ipod-standard-monochrome.png create mode 100644 data/icons/22x22/phone-google-nexus-one.png create mode 100644 data/icons/22x22/phone-htc-g1-white.png create mode 100644 data/icons/22x22/phone-nokia-n900.png create mode 100644 data/icons/22x22/phone-palm-pre.png create mode 100644 data/icons/22x22/phone.png create mode 100644 data/icons/32x32/drive-removable-media-usb-pendrive.png create mode 100644 data/icons/32x32/multimedia-player-ipod-U2-color.png create mode 100644 data/icons/32x32/multimedia-player-ipod-U2-monochrome.png create mode 100644 data/icons/32x32/multimedia-player-ipod-mini-blue.png create mode 100644 data/icons/32x32/multimedia-player-ipod-mini-gold.png create mode 100644 data/icons/32x32/multimedia-player-ipod-mini-green.png create mode 100644 data/icons/32x32/multimedia-player-ipod-mini-pink.png create mode 100644 data/icons/32x32/multimedia-player-ipod-mini-silver.png create mode 100644 data/icons/32x32/multimedia-player-ipod-nano-black.png create mode 100644 data/icons/32x32/multimedia-player-ipod-nano-white.png create mode 100644 data/icons/32x32/multimedia-player-ipod-shuffle.png create mode 100644 data/icons/32x32/multimedia-player-ipod-standard-color.png create mode 100644 data/icons/32x32/multimedia-player-ipod-standard-monochrome.png create mode 100644 data/icons/32x32/phone-google-nexus-one.png create mode 100644 data/icons/32x32/phone-htc-g1-white.png create mode 100644 data/icons/32x32/phone-nokia-n900.png create mode 100644 data/icons/32x32/phone-palm-pre.png create mode 100644 data/icons/32x32/phone.png create mode 100644 data/icons/48x48/drive-removable-media-usb-pendrive.png create mode 100644 data/icons/48x48/multimedia-player-ipod-U2-color.png create mode 100644 data/icons/48x48/multimedia-player-ipod-U2-monochrome.png create mode 100644 data/icons/48x48/multimedia-player-ipod-mini-blue.png create mode 100644 data/icons/48x48/multimedia-player-ipod-mini-gold.png create mode 100644 data/icons/48x48/multimedia-player-ipod-mini-green.png create mode 100644 data/icons/48x48/multimedia-player-ipod-mini-pink.png create mode 100644 data/icons/48x48/multimedia-player-ipod-mini-silver.png create mode 100644 data/icons/48x48/multimedia-player-ipod-nano-black.png create mode 100644 data/icons/48x48/multimedia-player-ipod-nano-white.png create mode 100644 data/icons/48x48/multimedia-player-ipod-shuffle.png create mode 100644 data/icons/48x48/multimedia-player-ipod-standard-color.png create mode 100644 data/icons/48x48/multimedia-player-ipod-standard-monochrome.png create mode 100644 data/icons/48x48/phone-google-nexus-one.png create mode 100644 data/icons/48x48/phone-htc-g1-white.png create mode 100644 data/icons/48x48/phone-nokia-n900.png create mode 100644 data/icons/48x48/phone-palm-pre.png create mode 100644 data/icons/48x48/phone.png create mode 100644 data/schema-14.sql create mode 100644 src/devices/deviceview.cpp create mode 100644 src/devices/deviceview.h diff --git a/data/data.qrc b/data/data.qrc index a91e7dbb1..b1e9ed24f 100644 --- a/data/data.qrc +++ b/data/data.qrc @@ -189,5 +189,60 @@ icons/22x22/edit-delete.png icons/32x32/edit-delete.png icons/48x48/edit-delete.png + schema-14.sql + icons/22x22/multimedia-player-ipod-mini-blue.png + icons/22x22/multimedia-player-ipod-mini-gold.png + icons/22x22/multimedia-player-ipod-mini-green.png + icons/22x22/multimedia-player-ipod-mini-pink.png + icons/22x22/multimedia-player-ipod-mini-silver.png + icons/22x22/multimedia-player-ipod-nano-black.png + icons/22x22/multimedia-player-ipod-nano-white.png + icons/22x22/multimedia-player-ipod-shuffle.png + icons/22x22/multimedia-player-ipod-standard-color.png + icons/22x22/multimedia-player-ipod-standard-monochrome.png + icons/22x22/multimedia-player-ipod-U2-color.png + icons/22x22/multimedia-player-ipod-U2-monochrome.png + icons/32x32/multimedia-player-ipod-mini-blue.png + icons/32x32/multimedia-player-ipod-mini-gold.png + icons/32x32/multimedia-player-ipod-mini-green.png + icons/32x32/multimedia-player-ipod-mini-pink.png + icons/32x32/multimedia-player-ipod-mini-silver.png + icons/32x32/multimedia-player-ipod-nano-black.png + icons/32x32/multimedia-player-ipod-nano-white.png + icons/32x32/multimedia-player-ipod-shuffle.png + icons/32x32/multimedia-player-ipod-standard-color.png + icons/32x32/multimedia-player-ipod-standard-monochrome.png + icons/32x32/multimedia-player-ipod-U2-color.png + icons/32x32/multimedia-player-ipod-U2-monochrome.png + icons/48x48/multimedia-player-ipod-mini-blue.png + icons/48x48/multimedia-player-ipod-mini-gold.png + icons/48x48/multimedia-player-ipod-mini-green.png + icons/48x48/multimedia-player-ipod-mini-pink.png + icons/48x48/multimedia-player-ipod-mini-silver.png + icons/48x48/multimedia-player-ipod-nano-black.png + icons/48x48/multimedia-player-ipod-nano-white.png + icons/48x48/multimedia-player-ipod-shuffle.png + icons/48x48/multimedia-player-ipod-standard-color.png + icons/48x48/multimedia-player-ipod-standard-monochrome.png + icons/48x48/multimedia-player-ipod-U2-color.png + icons/48x48/multimedia-player-ipod-U2-monochrome.png + icons/22x22/phone-google-nexus-one.png + icons/22x22/phone-htc-g1-white.png + icons/22x22/phone-nokia-n900.png + icons/22x22/phone-palm-pre.png + icons/32x32/phone-google-nexus-one.png + icons/32x32/phone-htc-g1-white.png + icons/32x32/phone-nokia-n900.png + icons/32x32/phone-palm-pre.png + icons/48x48/phone-google-nexus-one.png + icons/48x48/phone-htc-g1-white.png + icons/48x48/phone-nokia-n900.png + icons/48x48/phone-palm-pre.png + icons/22x22/phone.png + icons/32x32/phone.png + icons/48x48/phone.png + icons/22x22/drive-removable-media-usb-pendrive.png + icons/32x32/drive-removable-media-usb-pendrive.png + icons/48x48/drive-removable-media-usb-pendrive.png diff --git a/data/icons/22x22/drive-removable-media-usb-pendrive.png b/data/icons/22x22/drive-removable-media-usb-pendrive.png new file mode 100644 index 0000000000000000000000000000000000000000..56f9c0473be3405d7447d61f43ad843f32278e22 GIT binary patch literal 806 zcmV+>1KIqEP)jf(gJd5VHiT=)d-QbC~#F06J@6-+mZ8(VCONt!nQW+v%OX6DZIW}q7vkqmxt z;BdJ7=Hr_Khj7j@NON;@5K{gcvtqI6VSr@(L$O#aUnmqlMWYewI4(L}6Fa-RFT@9* z2sjT6=A0+;`Ft{!O2afQ)EgQ!UAqil!5#bB-rfQbLS{0Djdw3Gd42}}1w1=Dj}yo7 zdyi4v{(^sr4*F>;D=W7iK6P2l&R@ATpMNz<*1F>Fk90#&2;qBVDkmSX3!-9Re4u@-bKB!WuAeYNw zWF&@qO+&M#Lx=~w(i3xxH{c8!mp6U02z>)x4Z5Nz#*me)P?z=?g zR}+?F1>a*rDC}dv^Ei^pF~1n|aCBgRd0ueGR3hLu1?L_N!w@-_1(>1Jwm~Tg1{S$; zN+_T>009pt>Zrr^BIl_8`kb01ek5f}jBLpx_6P<1sT~WuP4~G=oS)q&OLV^WW&R`1wftEN5@7M zgFG6IrskeMqm|i0P%IYe_FlhwQ^yxO3H;&x#}kPS!yuo}AFrn$KWaD=Yo%;{egWGS zWHJ>xGZiwOWjYcm+&?De^>uJz^vPUPY=kyunu3E$70W6kgo#=Dic$E?&bN0haj|y9 zns!vVYIUDOu}X#t)y<#awZ^qoytcMYKL3N#?@iDo0G?y{ZT=6%6BC!oW>a)`_t2f~ zC*f8|ja`F2z&$7N?Cea#-qzL@#bU9Yo|B0u?@uD7#FGjo6;es0RAhR47|7+2QX)Nt zC*|1{D>M?W!|mcG*A0V|5Nz8v>+v{Cy3T>7nvYmJ;{N z(BVZojiJ=pZ^hk0fiBBFo_^Q;*R6}viZT}TM?d@?x2%hej0l4XT zXi96ZczJm_9(Y?fT9gzLJ@?CdZNpw#hPe2>OXJ$ZHU zR|f|%bsfiX8i1upl*ME+T;itBrUt}=rz~CPWnV9M4h5r@Ame$M(I^|S7)yGR0~FNX z;}l>6GECf2Tj=pPyX9R(1Xc$6SqUlb^F3spfCI>ISuP9>4KAJM*ED`>{0nfYmbDgA ztOIEv;Rn+F^pb(HMSL>hr)>jOjvmsgzb~~W&C>z_BfiIgs83k??gd=>Udw>LLdy`! TCaxii00000NkvXXu0mjfKGaOy literal 0 HcmV?d00001 diff --git a/data/icons/22x22/multimedia-player-ipod-U2-monochrome.png b/data/icons/22x22/multimedia-player-ipod-U2-monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..2c6db3ab56c513dae58faee1b6285723b8f14dc6 GIT binary patch literal 679 zcmV;Y0$BZtP))Dp-qYs1VbOl*^^I*sGVX+xQ~Az#q0h_9V6}i(;|Z8m~Qm)UhVgPubgd@4Lp8 zR7j-&m_Cu{x~4BN!1kvf9kF^{(6AlWA71H+8%TWn)`gCk=gC1ZLc=Hys?KiilHJ_x ziyK+7QuHmsP{jA{-sy-{DizA*^7zE7H&>BT;z^~uKq93gF>{jnbQ&oo(o=X+j;>f? zFyT5}E&t@4WicrPzipdu(I`37-&fh?99)x6Hq*>Jz&QH2av(COfM{?a^pNrE0Q-8v(^85C{S|;Ty8JxDw_!+o1PE)w=Dg=~slAy2{{Ybg^Sw_$79jut N002ovPDHLkV1k4^HUaOw(wSrZKgOwpxmtZbWb+RQGo4uTXFy?)(ET{R3|N0anD7 zv@3Ul7D22aQD~afbef6zoVm%kn50HYnzZV`Fx+#`dFH+Ex%a|gMtp_jj70;a; z7n1PvPd1)Dyw@MogAyyAJ9qo$RiuPYXD}=bLjaT#Jb%qyU^KW__~zrmNVV6OQv>6A zRN>=0nP15|N;k%!wdVe_{Lnf*j)%oUf$i;2IL;*L%o)6LnT5s0BWp&2jcGHJp5;b1 zi!p7CF-%P*@crO#!3IAFMuNr$ccP~AXuX0`0x9@6V1W4<2TKdG(=krREi5Gn+9B1Z z;k(y5IoP%&*Oro8%uI4A8%GKdLQpKXc%Sol_oaL?@LY0&E9VlNO~p`Bpk!pp`Lu(Q zg2F))KNx(1yVnVhl&~s7D8Zai4+{F?fG2sT(p+N zYK|WmU_weiS`-eNC@EN;PjGo@8LcE=_iAkKRN2{Ykc?YngH``v^FxXG8HcT0g_tb~ zOo&_c+1YO#_M&g~o%PMF$+gv$x*l-x+YmJ@b1Le3%Wt#mHhydD0Hqe-udS}shguP{ zWa-7m+w{1{*YS(5{_K|+VowZ60kc4|t7f7*7Xks$0$iX7lz|3dy7P!5c1zC|)gAY~ kVfSr!e-HqjzBm9s0VmYX0Ay~54*&oF07*qoM6N<$f?U8nM*si- literal 0 HcmV?d00001 diff --git a/data/icons/22x22/multimedia-player-ipod-mini-gold.png b/data/icons/22x22/multimedia-player-ipod-mini-gold.png new file mode 100644 index 0000000000000000000000000000000000000000..869ab0e0235c6e65833f446dd12a88bd211bafef GIT binary patch literal 702 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 literal 0 HcmV?d00001 diff --git a/data/icons/22x22/multimedia-player-ipod-nano-black.png b/data/icons/22x22/multimedia-player-ipod-nano-black.png new file mode 100644 index 0000000000000000000000000000000000000000..f238e6a0a33cf16ffeb4f6f61b8ab0010de56f48 GIT binary patch literal 562 zcmV-20?qx2P);yVmZ~<~yZ->^Jl46Ji^A0P=-z99 z1@#43fDkv3agrot(+F!DOx;i@jZ*qBa2&_TSW*-UAp}xRSuPj2fs6;iX_8>Q%K%0U+h{FtD?ZapVMw%5&wpss!g}=fwSV*+6Rb*{M$r2)pg%-AH#0&Tr zEbQ#lC23p;JGo8H%m(Ljj>XOn5i*%^gZROL^L_BX=RMCkITEVXZr%Ytl3ovq-crTJ5G7{GA^b1`RevOqU<%B3=;Qh76D z#}Q1X6T&b=q3}EpYh(dnn&$aY2uA>LY3DN48#S(8xdwnew>M)P_yJN%Ow%Nv&&Mf! z&)>{g(>1~{LlVJZE4?EnJ!1;`|09WVg~g8|iQHPNlx?VfG7fkkAzGO+@Dz&ZMP z^zhS{4{y`nU^bh*1KdcbmJ_aGycHdK5hz4x3K2^pmbrSpUg>l?KY%e1oM8a?4OP9z Uj1XBJ>;M1&07*qoM6N<$f^nMuzyJUM literal 0 HcmV?d00001 diff --git a/data/icons/22x22/multimedia-player-ipod-shuffle.png b/data/icons/22x22/multimedia-player-ipod-shuffle.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae0a3fb780fe310e0e1ca0ddae191c544b7e461 GIT binary patch literal 521 zcmV+k0`~ohP)6N1V$96IjF6ZkMVVn>&4NJvPuR0&p;Bn6?f4GP z!FG?K4pbseQrwDHI@vni_xRO&-)D;kjVGh$z(;oL#p_pZ-m|a9laX007G|5Ilx92` znN9W1Hh90^M=AB!zA<;KFbo@OZJtQZK8KW&NF^zY68pd=I0`sE?z96dCCOyQNpy-3 zf;`W;y8hZe3aKO~(J98=99*Wa$_w7t9_xVxYvjnO|ej_c6vblZ2u z8Xg4U@4?tddk@G%pieq^|7WC=Bq7gps;b)D<7N48;3$e7)v_aqO&K55A3X$)fS`VQ^_dE=hQnchI-Pz7Zh#WFT|<5WD)p0x$iEP)bMVd#QMqVzLdH&)V_4?t|&0WvMvMd1B*Dvzm{=xW#vbQ9n2V;C;F;bQ1rw1pyp?alUtivxic{wiOA;VKuXn`n{wEAvdW~-oo{pOv@$T+V4i3K3YBoTM00;-i!$t8Q z5pQgq$25zSN@YrBm4(2ixV{P%AovI3wY3Yp|L}OiZ`(Glb}RW_Sy|0SeC_IWM4YP- zqnrg{7$O891kupQMl7TuCW<0DoerMo5d;B>qEIXpSu8Cg%Q8`vu@n*z1R>TBi@{)! z_`@*7^<4bEPo;7WSyr=6g%AR}W1k>ROArJ&&QbPK0C=94*rsV>7zV!Y(`+^Y@O}U9 z=6GjkCznJFN%KxNa3Zz&#I;&&kOpX)o;unNjYcDh7NAfl%seCVl%6GW)-=iGa#Mkd zs$dufv+(km^8|~ksw^)rqw6|~q6`TY1x?dfsw|*`$kc%W5KT-){qXy(SFc|_%K9$ZcIU~gno2+(I0G!iDdpqz3aRYmcxd{7 zA8U`{McRw~ku;_FQffmvRuxcU!qIw|(kRyC^7sSGb04W~56y=F0000U!s0rN>j zK~y-)t(38D(@+$KKl|R&q_K+;sgj`#*~-Er-lQ=RByi%#~?(CFq_i|&KM@Nr&fA(P|F0%@{-Am5Tzib3P zIeC^EmzxSNe*DbL9Y1}NncE1wu6Ui9+jP9#bz1Ddbi54k_E-$Uc4QT$MpOCxLbfip^zcOs>Vig^T2VC zGF>ep1-5OIRc|f@cSvX9fMA8^udClLF1~;LnD;hw-O;BkO$}fd*aPlGly)O}g#o^qd2Mks`j4_@EiN1VjXQn^y@BB9AYRe@Fu9g+KyVMF0Q*07*qoM6N<$f)w}; AWdHyG literal 0 HcmV?d00001 diff --git a/data/icons/22x22/phone-google-nexus-one.png b/data/icons/22x22/phone-google-nexus-one.png new file mode 100644 index 0000000000000000000000000000000000000000..5dbf7aa08a63291aeffec683aae35559c97075b5 GIT binary patch literal 3625 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 literal 0 HcmV?d00001 diff --git a/data/icons/22x22/phone-htc-g1-white.png b/data/icons/22x22/phone-htc-g1-white.png new file mode 100644 index 0000000000000000000000000000000000000000..40040f75a661be9ae0c6d33529dd53397c4002a5 GIT binary patch literal 944 zcmV;h15f;kP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iOY= z7cC>P@O%FN00S^dL_t(I%cYgiZ(BtW$3MGo_xah5e%~~{sA00fFhtsl@$far4criBsFbBtGKD_*ui$5{rr|g zlMtdb3C&m9%gpGrGppGdVT@s;KK<;&PNmei@B7b&oRBdBFa`q#U@gAcbS)v|H=fse z{k79?FS1E$vq4IE_NgOBj~^Nuu`J6%2*Fk|#xOfK^ZZX2CyKxuJAy6CIx{plY~^w} zT(`m0)X!8Z)ph@|V@ElBco@%XlX^5QGm{ri?Fy_c9h6e?!MRT;T%Sj48*Q&1t+_l~ zK-)G0=``=X^A>HNz*ZG0?x8?FCJvnQlTDwmtnlbrkbBPM_Njxa3(me?Ek!H_~Vsx%r6(y0_9hlXjb z)b|eV2`L61IY4E(PCow|<)tc#SbSIDZQs~5T>y@sc!}p;c#%XjgpvY$e{bN-uk$<* z4RAoW33n&(tIL$7!fm$jjkr&+5G)m@sdXe6=!vmUxYRmgls$>WAnrS3W4KxiLT!aB z#T6X8#M2`OiH04bVFw}1{{u_;Z;#H+7m3*|hC2Tytb&BS5Y0w{<&E(|?hdTgUDIRf zG=)oF(~8HKXnF)3hwn34>_7l1C4>F_cjL9SJFwCkfH%*aMoNio+t{`y7K;-MI#`xk z8=D9LmeRWfD@`_=rC2QD`#!Gg;&~oxBUEd>enBV{TCZ?NaL{qg=-4Rve2!=&%Hr)s znr@5U-d=I7z8gB9Z9i+lgB{|2!dtP};t8c{z1h;v8_p7_+h&yq0|w=mx?-jGa{h>cDNF3V3F9+x`QbgC$C5 SsLR0s0000Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01ejw01ejxLMWSf00007bV*G`2igJ* z5I8LX0XokB00R6;L_t(I%e9oxODk6t$3OSZq$W8z*UQz zZn|y%30M9DT|Fuk-l7!RW&Z&;{Rad^h=>ZJ!93!O6DOIu_jL1;Mw8O^y}kp7?`7^i z-#Pc(?>S0D_z|atX8YP?(OY)zVDOGX2${^ zA0O#jV&U%8IsyxiU0^{%e22*Z&1`FU!!+AyHmY;t#Z zH%2r{IIvtU$Ii~q^ufWw7p~U&vqGUj9LMDIc}`DHxxBpmH`m4(gNV@SbeNr;rPu3G zC=`^|`cu~!^CFwg(&=;nD3wZ-%jG8-S!;**d~L1e;o*TG2vAB+9>GDn>0$Q-A@na+OkPr_*r@g#zt%n^vnunx=gB!!^d3F@jpHhEi%+ z|Fg3*0E{uXu1gq(0LFD3Cuy}>ZV&`SQ8c{D>gp;0=jZ27hzCTIRN^=etyT-IwQ;Sr zncLf2JkKKt0u~n+0f?dqfQ5yHu|}BG9L5-?rlx4O+Zba$Qh?0N%&@(^O(v5;M4kkX zcG*B`qdwRZ5&Hc;M@L6QQDgyRWo1RQ)}oYpZ(mwk5~WnC2MW$^5duzMdZl zf0CR=_4;>X6X4|Jz|cU>7=awqZ_5vZ$Mp%2udk`FgN}ui~j`VkSznv S6-Ceh0000LO-b4WCYc#G_9XInE{BDki)Y-V zpEQee=9}ld=R5CrMo1~yAA`A^I*`fCO-xJvh&wAM<9Zgp`uSC#xW#|41Lj zLV*Vh3;yj}KY!tv=GXf<8nH;}sZU?bX0^MO3XMhsq@;h~D1R+35y^-k2tdM?TgTn3 z@#?99t_U#=91K=eWw`28nS8y-@X6!x*B!C&XpOm*D!`cpCq5BHQOdF`&Yn7frYZ+M z=ZY_5Z&*k$;+%xyD2h^!ZS9V~o4LlX^S`lk76QRrXD{&i#c4odSr$^t)boH<+je%x z<@>+$&byQ3j^%0k9;UrU`KMpnU~n7NWE6ul>KP6U^!=c6}Ym zo|9bH?FvpP2C0TYfTr*5?uFg~j8q@GX5a@wEL|QB9?a!bK*W=l*O%zs>?MjK+=iRf z0_tIk6+rHXOQ7F4LXXjhlo24X_^%uM*G1LR$ay@!eTc331i0HJv}x$6^w`)r z>V*|D%LS%CexGlzUPo0`KKtYn-(0!I!{rr5yHJioc-m}dU4QZxX{cm6z>+K#q`yu_j%@`Vt<|3MC4|o2sgK>2w-h+w=Y9%O5dyX=-<@X&UKt8buLa6ox+#Gh|1Ng%G+B;*Cr; zdt>P6VCLA+kfQ5}ZUw;eJS@iv9mjT_TGj+`UrM>#?}-{qDgCD#8&`eLd(U$0ybvOB zCARaLL9_XIt5*A-R)akIpC^P+fD=FoI8K+#B`zHJ7bpXkZ1p?<{{vY-E~kKQa-c)oLZs$?Gkw z9D$%f1hD}~jdY;J0-Md|3u0s@_lfZJ+jj%ye5QM5+5SK3rL^>)RwjEr3OnX_dsu;Bvfo>iTQkvcDoI&@pz0zqk-e`s3#k)D1IIj zkc2nQW8E1f5O?TEpQGtyT+B6iF+l)2Z|Br-{|& mOWWz~B%i-AQrbMko;lcM7hGtySDeo0TIJCBzgHO*)Sx!_3?}_x<`k=R~ql zkS5&JGn~2q{m>VJBZ%kw@bQQ5L#x%|`4^vm0&Bn4dHhrWDCqve=qNIKftt@fl^|rv z=ksv&+PeoXc;n5tpl{l+@%!5GF|e?(pww!$A_krc{~?7!L8o`&35DvwlNg7osi_xk zd~o9%UC$SFT{Gw`?a^_5(nmrVhhgXX_4i)c+uK{mbj-{J0%@Nu8xzw}95eNb5Fk+T zi&3PcX{r^A!)E|s8g)H07xa2Peen3iJF2EaE|-HmD#ZcSfmX9YV_M@qjo#_bU&S-I z%m7SIPEMbmeEu~^6v(p?jaXo9w_DI?Z1Y-9*TC+1aCV}08C_P*3_y}3CA_6-H@FgV z`o(dKlqWbBu)4a+YgC=@e)%)RX`=eRU&=HK1ZsbaBaUz0?RN0yk0A&`sMQvEEly(i z@y;6fftP(63Jx{}Tr=SDsZ&*O90$r}1IEY4fn@tp8^SOKKg=EgQy`FTrx(+VU2);U zi%={MF(4@sz($AHUEe(h20(BL4s7zhWTWfrzd^nJ6Yr-og`Jkg>FGy)=B1bna=`g6 z6`Yi@pF4M+l|&+_y{5$s_`V0AW$psx0DnAj1!h36k3cCOy$4oQHg9rCvdHEI%xdsf4==*L8{mcQ-O{E~i zx=-eqfl6f@s@3W~m8u3tMPoNfkxB}StN@U)LD%fLRQ;e3QaBL(Tzqg1HQ}|1=@J8z z5IeX($Pz%`vU|G&&w|RCp}+l~(w`3%q=T5achQ%y?M=AVZNp+WdOhC_#wEgCJn-_PVgO z^(T)R6zc4=r(xv8?pI@DV^NlAm?Euh*P}}b`p;+o&&MVN-h0m{RNY40bwKF1`Bt+lEmY$0kJ3ahb-l z*XwkC`2OB!J3Bke*o+2=DvM;JN07e&V(LK;Q38h?00000NkvXXu0mjffA=}3 literal 0 HcmV?d00001 diff --git a/data/icons/32x32/multimedia-player-ipod-U2-color.png b/data/icons/32x32/multimedia-player-ipod-U2-color.png new file mode 100644 index 0000000000000000000000000000000000000000..9a29d67aa58a321039c16dc393432ee979c07837 GIT binary patch literal 1547 zcmV+m2K4!fP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L014Ls014Ltv2GW)00007bV*G`2igY% z5)3cLBI8^D00oOlL_t(o!?l-PY#UV;$A5EY96SCjX;ayWQyZsIR&5De)I|$K7E-l< zK-In=b%hWQ6_oc?Un=b`;<*oq^2kE94=aR3R~rdwfo)aQqAJ=*P@062CUu;qO`RBm zQ`_T@nLBqMYEP5aEr$PKV@WOgd<0exNK|*KykTdkp9tqEUzcoUp|!>;aF z^FtD&!z38qMJOC@8^ERktSl#h9lZyTmU)jd-HXtDlzv=5Iu3=xk1kkUU(JBpz%Dd4 zl7b}}X5Rm_JHK`FF3`!%LYau~5r+170O;%tY!3qureK%fpi^mhy*@&r$h{9Zir*%8 z15jAZQ>l~?n%p!1u@L}Dsnx9(uQ#4M`0~q#4izr~ zHQ-;X8`0MHK%iLU(Qm%lP&9u865Gu{bY=#z!kGfTO(dAmG!hF7JX5W@$0{9o8kpTm z6=X7*1EEkT(gM&`s}b3^kB+V`0A}KGF7@>Aol<-#C9TAGckbkog9rIdDD=x1$Ye5M zzu*6HEEanq8jZRRI?83F#{*43vqDfT7AY2sG#U-2fX4x+(V$)^u%l_WX#jq||AS;Q z`NE}3m#Ek4_dB82i|@t_*Wf^*z-RS3%gf7nfZ?XzDwVKGC2nkT6B^CvcgA9|m#<&H zP9P9K2;myv?d~SJ0zh}Q%3o?VzHLSxYE^>QOXu(~{X;{%JU7Sa=;)>x81(!7EG;cj zE|;-w`+h4P7@%)rg3eOOH3})^Mh@UfBQhf~=!-Afw_hRH^WJF&e|HFvrvuY8>FDSnnM`u} z^y&D?lP5p4ENjfNta%_0{4bqOS62ZD27~XKrb#N5Vt9BMA;kStZ@J9BM@RV-coT>N zfn*YYZ!eWx4m%hmHuM;pCh&T_c)ea1TQnMFet!PdNF*Y3UDt)skkWA`CnrB292|Vn z1z_9uv=I7Zm*Wl)Os7fvd>Dp- zQi@zI2PkyiKnTIWz<|f&@vykKKqL~zwrw#tciTss`q!GjPlQ6DxxQ+j%O z)a2y%s#2+_Y&NTEwVHZxn5L7dz(^J#q<74M9U%nh$^KJ{a3Y5oJ-fSt)?{JPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L014Ls014Ltv2GW)00007bV*G`2igY% z5)3k=B#(sv00mx2L_t(o!?l;$Z(Bta#($pcCAqfa#8D#Kafr#HK)R_FAX*{|sbUdQ z#S2h`;H6T_JL*d%pnpIg5aqe;3#h6@5fO+@MO7`TBEk|{2a(No>NeO3w9ew~`rbP{ zVBaLIn}wuDI3^6?%+?)uH&?LwoDK)^ zc$`9^zY^I33EGj&ch{@&(O`ddmP-ItYha2!~o8=){zuRm@d3UDvmdft$DP zkVr1){=n0{79+LAXEO6-XXon%uxS7*j}w5ZI%#kB;`6F>gqoMf0hMax?nWmq&FU%! z zrnwwozE~lfU3@qIIzr9&QLkyMH(gt+hqhMF_5+yBW;uWU?5e)ow{J5wHC1=sty{OY z_Y{nekHh%tzAIO*kVqufbi7dp#70tZuXsEjlyw|$i2*5PT>wpUb38IS%Cmqw6yk5w zWHgiETka!idpDs?O1gjjm985%ut`bV;2?_2h0ieXWHLMjd<|RxjE4cBD;_6u{kqkj z`{9TCE)_2UCE&Bwg=p)0z@5wS=x@JmD4LgnuI*+ZkW3<0IFrEdU0saYY;0Ss2{mBmFWi;GNcaueFC(YFSJ z!B@t|$8o#e2qCP=3vF!#Rsd)#7J0W+;`eIg-r7lUxo8|5q-XbTUP-4J9v99>=XoI6MFzP;G(c8&@`HapAlZ*MP`E?vSf3@e9*-Oly>`+4HK@9LLdA$a7Y)AT?21P+IjLZN`u z=_C?~aQgJ=@QD*A&Q>aw8@I|=pGNj-Mg^a1TL2gmuvY_5(osCnVEUh=kp0gQ4}F;7=~$% zjg5WV-{1d|1whyJNgJC!1sO7R!q ziAISwG+?*eky4UMr2vVd*bzd|*VpH8I2_E*X7Tx&&~;s;)3+O_bN+4B-+f-MH+}Hn zL0PRkYicMIl4E0k%6vXA6N!W@l}hqnDHIBFa&khOoSc}9$8UUp?b@~Anr}nklW;iv zx}qq;FbwPAX__XcX;QP*^yJC+IdbF(rYXti^VsbQx^7S|m(eusdbwQwv0N^HU>L?k zG#WM5eVhVKz&pS|HBCyjYSz?NRS8J9+ig2_>eQYWUU)v>^EG1_IyY~oD~Uwnjl+iz zf4b?{@dHGuf>{a3tbT!YK##>@D)1bT1V*CK=(?5YU$098va#S6EdT%j07*qoM6N<$ Ef;qy&BLDyZ literal 0 HcmV?d00001 diff --git a/data/icons/32x32/multimedia-player-ipod-mini-blue.png b/data/icons/32x32/multimedia-player-ipod-mini-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..f8525d150d9fe62d88473432648c01db240b8a47 GIT binary patch literal 1550 zcmV+p2J!icP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L014Ls014Ltv2GW)00007bV*G`2igY% z5)3#*@n)L<00oXoL_t(o!>yOiZ(LUy#((GDJJ)mPGh@f`%-EiUCb1357oZ4G+d&Yi zid2Legai_7P$d?y;D2Dj23W9zMU@4hN<>0}4J`SfSgcy3`R~K^G)}-@bCY8%s0y;TczQE2PQE+(R8t5V#hn0gYke62LBzO;`G@<$I|HJR3|nD%a7L4ktV=1bb;aI7@co2`srMR zlmg`(C9YZrRf4UwPH*J5BJ@E)6d@v*Q1d*YwT?85tSFK`{_j*N%dx&Bg`C4`(`Rm_ z#qCe(Y+{u(n*?j-y5`*0_9?s7bHrMF0ZAQLuh}X{capnD4?#`|qY#VNu zz_tv2a`6P+DI0*7jvd>B{n3S&`0cy*_-M8knSc>hfY-lVXm7q9K@jXI&-Y#~VOvII z35+ORAOxI0(X(UnFvN9Tgb=u{i|2XmweFP7@q9YcIS`2eTGN~E!nQ;^X&8pY<8ds@ z!nSRcQoEe58R&7M_26fDpi-%v0Z#qm?Xja8NX9J|7nhJq(qAlYT~yTOJy0p6lqjXB zudd?x0f{aX&2zM2rBcZy5{WB?Lg7NSTIJQV{VcR#zV4FG_jUC6_NLp9VHosucLQ*3 z^8WLg&~co%1_uW(+_-UrnVA`CwHiuk+(5EWcX#8EQsQ|YN-0vQREKA#mzvLR!b+vm zQ!ExQO-@ddN~LfdhnQux6aD%6Tu07$JWeK)A(>2K7zSEvs?{p*e>g_gXwqdpy9b7o z$t1N}jaF;(AlcYxp;I{oaDSn}-)}GQ+PQq&URrB{Fa)icnwp|e$a8MwC|~@%pkA+| znzh{Rw(@W{L8)}~54Bp2t5>fAaC=4)>ph8?%3{Y8036S!xb&5N@;Qg)!yuhbv$V9t?Ck6xrIa^3&zl7nfLrBqxwVJD#KicDXT?E=buuY2H4r@)1H%^%h^bd4+VN)T+&6^*Fi9|wJmSvizfl^ul z?+gzQzur-TAP7DN5@Tay{@~zXW@Kc9#$RqSI=8;BbS+Zq<#9}c3rl+Ud zU13=kLqkKBZQCp^E|AS;kWv~mGjqv39yopa%=t>CA^^t6$Ik<&{`TI)mx=?$pY~;9 z*p7`-y8U^!J*EYkwY3Jly&=_VmBWV*?@_|@JfxJeR;xd7U2od={U7ds);<;|zWvK{ zj${8OX3!^0BPKKk=*?%7g#ftpN-6W^cfOW(oCMWs6~}Q1f&kz5ab0)Z_q`81&;NB8 zh7;v-S$_6m|75eKfCLZ+y0+9a0Da`h5iVc8{PUA1Ph9Hh=@C*&78e(TdVTfHa=HBb z=(mk%VQyYOcL)F>5LPM`3%CfZ0Pj8iw)@5Z0U%6|%9(kjzyJUM07*qoM6N<$f*kky A!2kdN literal 0 HcmV?d00001 diff --git a/data/icons/32x32/multimedia-player-ipod-mini-gold.png b/data/icons/32x32/multimedia-player-ipod-mini-gold.png new file mode 100644 index 0000000000000000000000000000000000000000..75ed5afadd3c070eced90e7389257d6e4b10a6c8 GIT binary patch literal 1559 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 Q%m4rY07*qoM6N<$g4-74QUCw| literal 0 HcmV?d00001 diff --git a/data/icons/32x32/multimedia-player-ipod-mini-pink.png b/data/icons/32x32/multimedia-player-ipod-mini-pink.png new file mode 100644 index 0000000000000000000000000000000000000000..5189b8d71003857d7e311e77cca9a13bcb6fd992 GIT binary patch literal 1488 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

2&&+J$v?? zcqV`lBC9BYNIIQv4h#&mwY9Y|K0eOW)D-1%xrICyi=k;6s`_x^TrNkm*?hD&$P5nd z4unD)g+iY8_BcX#axORD`CJd|+xPlGUDpGEs8*|ovf1pRnVFgMuIqNj+7djEE0>w=;-KZX?Gk4A%s^hR~Br$ao2I2(apXM0X|n0<%}dr@+14lUukr7GC%vdEpC06zB#Lz#xzc27|ASjg5Ub zH#g^%N~?acSoCk+yy@z?{^84d9Y0OMM@0by(A0H31iTBFz^_ls_GjrYow_wuDCsoB P00000NkvXXu0mjf!M}oq literal 0 HcmV?d00001 diff --git a/data/icons/32x32/multimedia-player-ipod-nano-white.png b/data/icons/32x32/multimedia-player-ipod-nano-white.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c2bbf4ec26c0b7cbd45b5b2f27c77b06ab32f6 GIT binary patch literal 1296 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 literal 0 HcmV?d00001 diff --git a/data/icons/32x32/multimedia-player-ipod-standard-color.png b/data/icons/32x32/multimedia-player-ipod-standard-color.png new file mode 100644 index 0000000000000000000000000000000000000000..0c7c22fc3e96ad10419f28efbf7d709165abede1 GIT binary patch literal 1409 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 sq0-RfKRtcw?9n4%6^pE97A;z@v2N1=dKmbu1 zHTYyAA;g&Y!~^03CK!JbpG=GzG*Myz;YovHh#DV=!9cKpAX23YZIOl`2z38SOSii_ zGxuH}wk!>4y9KN#IhnsR=Y02^JNKRu)>*8 zZK|(t;NZd5(hEuvi^XVZX+djUwo4=$hP`7*rIIu?H4{eRoU!~@1W-yj0AGCdHOGHH zfm8~mT$DR>R0>(XF5Q!^;=y_M^J-HwfVeGyYjX71uk6_RF;dDApVv;UBNmGz9f>0y z*1!JtxcrVA0N~JXoufWmaNj*luAYSFdU&2YZl5;=aJi{v#QOp$CMMx12Q39gj+yma z2dIl(ProM&cgw3Z$bc*{CaY?c6nH~AUU6;~;F{j+_VdlQk2rg}lkazYLX90DCI!9} zxXuIt)W&34d%8~W_|m0p-M*b=OO{Z)lEqg7&nfA6<(5luAs_^;x({nX2ynDU3X4%LlO@P_4Cx501y7B`iTo-d71DRWBzq9jU5_f#%7K<||d+1@Ok=hBl( zlI_hPrDET{eS~2^cXt=({ys~wSm3YjE-v?6B%dF|_v2@T5K@e`MUGS#O1r8L)V=Z6 zYby^OK9El)FY7Q2ZD~G)DgyYIcT3aB0OCvJ>2 z;=iE~LITymG$8T7g8B2FT(SJQ#fulsk5|R3E0wKSC=MPuazf3+9=0e*C!UocmZr zw&6_%KD&Sa{_w+x57qYeHqB;}@$qry=H`09tJNyCTCK;i53dif-*(RN;K2i;C>nh7 z+77uT8p(7V+_WabMNw}a}MVm6B84N2-aEv3Wb7B z)3gkn`dyG^8P?h!Am<$8VB}TCEn&Ip#n4l!@(4{(Qd6;!KE0N~6&r%QDh5WqNuV5y2S4z`y__ zBO_RAsaC5!J0XwyECc5WBuPT6)#B#Oo5XQU6h&u_>eyz?-u@Be#gM3NI6Q3nTB+CT zzGf~v+VkQQk;^mC>2#>oYIHgsj4{;fb)0j2|Krcz(I1x0qA2ebO*lIXf*`Q> z?%mU27_z^=4?wfoyfUhPB89^1L{};m1_uY(*x0~YtKe)2L_}V_dd14h3bk5|IF1<} z9=@=zU-rD}n{$q0u}HaGrdqA~Zs`dCvb(!W7>3-rbH{hS{O5}tcdvc_oPN#y?d|Qc zv$NBip0f$r-Me?CR4R#5N`fG`mTIl9tx72g!%!9$7UV4Hh{&5x7=|HBOG|8SZk}7i ztE&9Ew`#35^YioP=KKAa_iqtlW@d)T$w_ZdO-%tXJ3D*MR!VW})-7(_xN)W3eQtD1 z0YE8r636jW7>0-l$H&LC+ij90d24pDSj1XOk|b!YkNXMyc6xgHZ65XHs^cFG+JGWZF|
  • lq-rH3q)JtrNR?VemD-9(C34yl5g|eYNq`0jn5@@!Z13#H z%+B0->jzKKbN@)kw9+d=AYl3 zzc~N)i7f%_D3y-?^yQz;hmEFFUR(ktAc8fP_x?4{xwB_87;8EEyWfL=h|PY1(PEM9 zLwWPY>wlPAtyJFI%!k)4de8H|pUdUc!pAqz+5jL3A~5s(VSaV)wz)Mue*lF#Ua!|wqtRey-_y+Q-;3iq7-P{oq1kMbv|?6Qmhl6JBx+Kx zhlJHCm9RxD{e)qtT*o=uG01KJ0>!Wzk|r(oJw1uF8kCFUC|uV?DTUSs!7^Sf(w7?r z5$g3C<)szoFW;qB4H02tYXH^+)v!tu$5hwW$rrW}RhwM7`%kXk`}gC@H{sjQo?vcz zj={kJ#!Dk4$qmA=iimXlY`X#gK`jhP(}a6>Zjvty(LcD2tM@PRy&t^9SaBEkmu|Bo zU!>7&@VCGGiGvddiKB=(j?g+Gtkn>)9RZxK82~>kfo8lk!kJ&Z!kt?mf(U-#<0=== z^>G{*&-X!ug?pb;Su9gotdORfdabtg3|MP}uo_~l1`N5r91{~0T)qLf9(=^odKupf zsH~M)udg8@T)TD+rJ#@>#%fI%R@q5Cj3P<9^xBrqT;jZ&cqH!|f{fHvDVnin zXm}XUb+A@QlZ5i(GJSphsK=Wy`APr+yz$pd51$IOk_5+b@Vs(6N}!S~2E}K~>%e+<_01%UFYffZR}ZX6=6_R}o|dPI^n+lJa-3~+Y|CtoSX)n%00YYE__z$oy9US!nP-Iu}As|n7w(A!ChFG$1zXnuAq~kF9ABQ>cMK}T_ QVgLXD07*qoM6N<$f-=_xhX4Qo literal 0 HcmV?d00001 diff --git a/data/icons/32x32/phone.png b/data/icons/32x32/phone.png new file mode 100644 index 0000000000000000000000000000000000000000..0155a522c792bb0f1d0ea7938828934218b946b7 GIT binary patch literal 972 zcmV;-12g=IP)3vru8ixSX^6_J9q7!iw*LIpoiaoKg3MO+lIKcG-bMF=izX<`y5A2Z|J_m~U` z7;7^@@sgW6XI^;c-1FW%GR!ax{M8@(|w6n7_ML+w~^!a?rhK7bH%~LI_I?&bC zm0DR@@osKz3cRzkgT1{yOixc^ZEX#aNTgKP*VobA-HrbKeo*xE^dJ_Cr4osR4^^V7 z0LGXxJ3EV$Mm!#;E*YwX3&)60>KV8d204=f#z5CpDQpb+r5gs$^3SlMW&xZrM6O9E zY;vOlQ~*aJGbpfNB_lFP1%(84x3cYY7ZP~SgAWyo{DJ^}5=(qRYY z0$<>EyGz;B)Ff(SVre1`!H{F#q7CzykvVVm!L|43$ySUos*(sRP^F+u|>o zBMuA>4q|9%2)CAB2^cX)76(oylR-9{74_iYfKJO)UteFWCI@Ia&2{vckJmW>7XX|F uaH=9{f<#4r*x1Hd5+5Ng7!<)~#Cs zEnI-dAdk%heSLjR>2&&dOG`^PH2hmxTVDIeRy{R=cG$55qA(2QRU;>^G z+ad538@gdZ*HrGT5@9?JQ4yc)OaiuT<1g2)A^TBQ+Lo4Iw8FJCx%^vHJwDBnANq;1wT}wAOt{X18IODfM^XprM!CK!gmr0WANVnPu|Vv z^X~x2)trDrLIgSnj}2bz-jhB=IH9Tv*+~Hf+(sQ4xg--1ll}W!GTh}j)YdD%zw!Z% zSr18S?Ewa)zzx+xq%?WS753b{?~_r1kmbrmyo{H6@^sl*{G4OS5gl%Z(x$4lvgOO=5#t(vcJwO;D0;&Qt=fSTc zAd0tA3A=XfLX~jLV|r|j&jSu2CbTm=;95Z72ixrZ{fGHVxz$G!C~jDh2RMX$Cr$zk zOy&UtlHgh1e*1U0eEGMqELlc#y#%x1L}R1};wk22xgg2|TZQj!PsmfJzR7PZ_>wP) zxvqoqCJ|7XITP~ZBY*ADp7A`Yu4TqD^1gtDE1&&6Jw#nY3Nq{f zxPj|affv-2Kxb!XNdKu-EN^V^n>dvbX$~|)XONNvy{({gpaorByQICYF^N>87R5hb z_CqW0lF&DUux13VUcDLuC~s`8E}G?X6wCF?Xl`njD^1S9!-u1A92=%tl%(38XhZth zCJw!*^hi|Z=_ObRK+OoSgcKfDp}ai3X_~OHf!4h#zBV#QsfP|d&G!KEL|WSTt~_)$ zgO*M$ihrXtO>^1&#inKiLK3QBHuaP}wzRSYvvC@Yjg4?U4-^gDiV|UVb{5&}9dS3N z{*lt}?QLy%;m7+CC>|xg^99dU>m=qHr=TR)N9uPMoc69Rk+2>Uh(NN^%J<-vAN+{V zg@{~4LUOuZnL!d!ae#ZQmi?F;o)J24ygJ1)^OQ#J=nGb$8pI6o&-BQ@-g0g z^JlPZi#;RMVRalqqGOM-pzHbq&1J`N5(gZ+P~98>-^(7*s$QvZVxKv47B9Z|JtoEk z<(oNHCK$q6Bablnu;v~JNeE==%P+^r9M>U$wg4HaE%f^J4{_xW?_fQbV|#TU@zHN) zcItETVu|O9r4}lY%uLOGYMPrr)U|}d^-i@HQpq~x{2W4nFEwK2eV^5*vBhwHVewNU zWyW<9GpG`svLo5-^$`L_pvv2{|L_rbWPM$Iz3+#<=%YfjDiw2aaei@h^zYe6GmqW}h{yf= z^L&8CNI;TM_U+r(($UeepSH?Q%7xBMCNoH9MFa2qxm>PD-uf#&uhDzZWqM;hH8C+! zl*t=2fodXJPfw3d$(o|wMeFVD?I1!SfzMI0dIa7Y9Ub+mS3PC|@yoveo`YEjyf)tj P00000NkvXXu0mjf4T;y} literal 0 HcmV?d00001 diff --git a/data/icons/48x48/multimedia-player-ipod-U2-color.png b/data/icons/48x48/multimedia-player-ipod-U2-color.png new file mode 100644 index 0000000000000000000000000000000000000000..c55900d54fc0a68d88a8306636ab2d6d1bbbca6c GIT binary patch literal 2462 zcmV;P31Rk$P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01mx5bDw2i(YXUSt2*wy33Ry7S z#rR`CXLe?G=JtX0vb$az+wsSdM)ux4_uTux=lsu{d+)-`0-Of}YkV^{w(((cB!! z+EGaup8&ATy^}xf`!kXM-QweqKBBX;^S)l1GXUGRb8(9V-ZC%c-m(InmOuc@vL^NQ zcsw~>A)F}AhXE*ac~Mo3Lx&DAHac23#(V=Pj$u_*N$Z7!mHVou?0ZjFMq>3{8=6h< z#0fM_D}c&t`kU_m*WXtOsVZIu*+*ak)KtoH22@G%Bm=?v(%~Jg}f7E;g<> z-1t{MgpnG*H!0acxxbl_u@S~b?%bWcX>jxA(4_tijZLLONGzTQB$<%$-*TUS^plqtFO3!( zw}rr=IC!k%$$K#^-76w9wxF1fHMI=|lU5X^U{Mx4jZPTPm?mjWc(R+ zG*zATMCJ-Wo^RuG-Kj0A2c}#N%OYSH>~K1%F-^k2HQ)wd&N5LfYBA?lRo0(6Ma|8d z)IIS8WzRf=8IL0@3oR01tiPWxfWKtVP8Qt*(-~heILO-1KgW^fgr#ZdBO_!~6=y{S zirb9>YyrLvyblDIB7{mAUw7&hfq{X7wz0Ekr{)LnbD$YGQ1qQ;S#t^@d9DEb;V{ib zlb@;V05&XU7AhvOVw!B|?VZuF-c-kdKLb2V1t2gmfM=RFt*IzPyk1O2nNp_~_})^H zxN>-SO5HQ-)^V=3ma$lj#P~Q}!^8BLrIYBIc}S!8^?;%%a`Cy)veDA}fWf9F`T_w` z=`^aU5?58;H%-1Q4k1}al4aK9d1zie@ad*`Qdl~gK4DwRUbmK3LfjT0;8cC%^kUNVUU|J}cz%20^d ze7?wz9Xl3K6y@NmRjVFS6s6z@96(4CsZfYZZ@xLXIMXyzmX({lo&}aqc3amu_v)*8 zRp~sESO_60it@q6jT;{dhr{&t_M)n4K^oP)UW_T~oo|K1xyh?}1>NIQ3_c3Pzu|tM z06;Jpd@&FRbj4yZB9RDwzaO{TJ?T9Vuc;|%Y(p%@li@ICDurcPxPcdewkZa`z5rS1 zsrveQPMdfh-*~jHj+z@cN*dg*s&oP)Kn9)V}r_ zfzA%9t84IhJP0Asb)D+8cbO>|u^nc|`i4P0z#p?!)_Dwe8OULnxlhS%#w)6%$HZhSr;hG8Jf zch|9{rG=iJp2xboy9aIC4jG1VE0f8DfjdA5_@t|=D_RnO$KyHK)YMcS3WaEEYh%Zb z9UMMgqaF062Pn5HSkVu_6&kLPWm5P)GA zzwYbn+Y8vLs$PypqigHy>nproZ!U!5@i@U?kl~_QC=UEFOQ>d`_2fw!A-ARUC<+IJ zjU-7qPimUR)vH%gvUdp;6&2Li*W>kik!4u|TtWygUAp8bE4y2_y4`LvnK8!3#(z^X zPLCfyp1W2#apFW>Fc^HcySqEs(a~Y=+__UIiZZ8Lctugfkt0V$A`utkx#lxlzoM{2O|J-rinXTAFEYZpr3*38&LJsp?f#m1HtWJRY|+P0Lu8b>-T% zufMWwtIsgZe{9{l^^4-Y#r>pBlB6?@jg4-%+g(r_mHJu1M7R~V`+Pq3@88d+P2Zum zww`b}%=q{?UavQo=`xuNnx>^K%lf4d;_scEonOynb2JnA0k9ir%+3fD-B1$&lIJ1u<+ooi> zEEP@O1}wnZvSo|>`s=U1TwY%OtRzXzS=|uuK_n9S?Q_pPXU%qdIv*kzJrloqu=4=q cKl3L42l0*%#7D>AQUCw|07*qoM6N<$g16?OGXMYp literal 0 HcmV?d00001 diff --git a/data/icons/48x48/multimedia-player-ipod-U2-monochrome.png b/data/icons/48x48/multimedia-player-ipod-U2-monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..0b5674905d21568b2b916fe63b55f7b929ae695e GIT binary patch literal 2419 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 ZpsDuCj002ovPDHLkV1l1l(DVQR literal 0 HcmV?d00001 diff --git a/data/icons/48x48/multimedia-player-ipod-mini-green.png b/data/icons/48x48/multimedia-player-ipod-mini-green.png new file mode 100644 index 0000000000000000000000000000000000000000..142241126503d7f004e2bce59247537cb3d7aa2d GIT binary patch literal 2566 zcmV+h3iPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ms@=jiJLfX5+_d6kgCvDG<6y( zwGtpGq6H)*B!t8Z2q@x-LKPvQR$L@RK!PWpP^3Jd3aOR=5lC9nIxT6N)UoS07bkY? zB#!O9d3R>coWsMeH|y9=;!DhtR=d)knK}RO|9$`OGJ<8SAHEWO!VXynfo*{d+Lh8_ zR=I>Be9JV)h2XrD>UY07Soq6wuD6!6*)WW+Z|mIi+=E-5A>EcH5^(^5280j@1OQrV z5P$~IXsr z)&W9*(h4EO!V7iP;)n`pEf7NB5g_a+iRShdF}Q31N^6v!#r3B+_V%L`3b7TtPsnk3 z?2(fw4QOk90LpB9c^K;uaX-PHQak~r@XNRt%w88#;I|11IK#EJ(ay2H`IR;cs z84V$@ZSxj3A!trSZ!sh_Wl!OJp21NGL@73&s?Ze6kyG&V-? zrN)@M3x9dp;hbB1k`umh!g;IAv%&8AXIDg^#{4Bj*GFq#1s_|f%CaIPt_U~(As!mRm z%}eKmo=&8Hp z1q@2%GM!t}cRcK3>&53k3Bcd~a{^J#0eanJv|1XsZ@9_dj($wvheIpZa0@=uGqEZe zT7e5yY}MFU=BqCpC6MNd0hp%3bv=qR@hYq9l!@mEHw}#$lB~%RD+91>8C6QHO1GC} zRj(6(O4?sr0QJ(mZVkraE=a4FU2W?)bTBwp~7cyXo zFzwCXq{(@fD`R6w*Q9J&XuXpL>sdCW8u0Wfu1x(Nsd5V#xR(sRHViD{bTMZa9jTXa ztPMyhX^O`wm&=%@1!w{l5VCEe){`_i4{>?w5ZO}SYU{X_7jyM1Y;R_J`sWB?SGCcAjs3gwJ%n$?t4GonpESt?D<-&y5 z9D5ppQJLDUS02!nY7QYB9DCt3EtkuYNF)e{D`Qi~afrv`6pO`0l*_@f+N*B4ZVgSP zl!%5pQA(qfns)%hFy?`+NTk9vO@bh(#gS5qKq;c3P7o_sqI&|++uQ4Ct&RG*kZq-z zo}T7R|5?uT_t*SB6bjW29|QqXN`fH3vMfBWG8-BkI!FJ&0231vSY}K0u4|mgdV71F zhK7b83n9J`jYc2t>+35&ka;=_9$G`$zf5Xlic~69H)65LX0uq9RkQpY3#C$trluwU zcJ16zyXK=yR}ia61d9SVcI?=8+qVDO+1a^MO3BE`2*qMC7P8|pm_!J0{ZX{`7f7fO z0x2azh#H7FAocE5o7njmtN*VN14oV=F>TvEym#;3ou^KnVtjlY+qSD#oF!2kr%Ouy zr3Eq?kH?vrnL#OqVHij$F-?=^=H`V1FO|a!CK19}I|eeD%(pu_IvyPz9VMI1l1im& zmaMr(Rr0Roj?mfi@`9Tt5{b$IrNpw9PWIQbN9vS$?PTZHv|# zU;5SGxBT_W^dE>h4-v9j@0vd@Uc5*?pJ&5{4C(Z4U^h|*OiWB5%EuAn9kFTvQpy{^ zrf4+E=;&xIFtyhBzF%qT>-Gn#z{eBcV^i|GB%)8wyVvmf^Mo9SbZaZ)SFa+aPgmD= zB9SOlQ&Z$}IZ~+#c1-cd1lj&z?OD4i3&s@t*H5K7Ces zE>6BmGIoHr_=|+?O@JVsPUA~Sxm03iW}5BWx8u4VwjIK8973VWH$XC(;^AFSH@^Gs zyO#~a_{eqLF)8IZa2*&2j`j5POy04<{^OLuoS0|NsbJ$kfOkmcMr z*tSd4nr ztg z`0-!&^z`@uCr+GbA08fl+Axeqlv0JuV|}06vNicxLpYcsjAfX$W?XAkEsIsnIV)2< zffb%2pU;y_R&vV7$O!RxoJ=Nj54{IS8IaHCXJ=H1rSxl)H*Q?KIeBxBX&SqMW~~ubWi_hbLhBj_bHMc8 z?r1U^jWu?4b+L8pR{HzO~ON({qba&nT9k&%Md`uU!oo`0_8oa$bd zT?fFbevI476b%GGaQN`y1DQ1HxL2!pX9>X#fBK07*qoM6N<$g2=DQa{vGU literal 0 HcmV?d00001 diff --git a/data/icons/48x48/multimedia-player-ipod-mini-pink.png b/data/icons/48x48/multimedia-player-ipod-mini-pink.png new file mode 100644 index 0000000000000000000000000000000000000000..134add1f9249ada41fd71751657e5a86faec6a71 GIT binary patch literal 2463 zcmV;Q31Ie#P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m;00|#SL_t(&-o=?+Y*fb;$A5D_cGvr5@2+DOyTLesjVVU?C<$tbfq+!0 zt*SItRjEAnr7xAD_O+GTs4uBnRjNu}Dn)7^(juX#iYnC)tx7{mpb-*Kz!*7TY}dxd zfW6+`MiDa=FKgI)2FvgzyE%arwITcwqpl&Fi5CaBe6<}6x zxv2K9-3BWa0-+GmZQCBpf{zS9D}_)BSuXR(8*?nW^0D0~Y#F@X6+`%b)gr9`P(Jc4`e5tUByDXrw{B(0_JR#G{dQheRSlEYl#`7N%5oDV8O%XpFM1xnN5HGzF;RN|u(24;@l2 zy8z@14i_%Zvi-SDJc;(`F;HibTJt=gdyB=-H1@xvv;6Dd<49let#1UtUTM|V#DLbz z765G9q%#$L;27yEu8uFDw84S>I|118g%p#wa}C;UodxO~UbBWF1h#E9d6yv35ni^C z)Kpx>%P%d1oS3{rTi9MPrey%`_b2Hq3Poo**%^XZtPM|UJgL_7jG5UbQpw2Y69f0J zC}5kUl2L>J)3R_qO|k4haEgKcG{JzyLhjav{2#!0EC5X}bX>``@p(>saDj@WQ0n1} zIe&4A8xspFA1c*C77|r4pwU>SNvgA*1N+-qY@*X-Vtp4G{&GL2WpMW5oz}aMxX%J( zpWf#8fB5&Res90^?RDoE`Nw6t(;cg_c8l|Xpj@fYx3%kmi(RXI=k+fE@b{0;EN@7w zGx0z?%*pW^oV`5u*t=(&2H)S(3DRjj3nha#Ki|`br#6s;1UQbvy^PahEmV7%B?Oka zF-LZqRc#oBIE!0A4 zy^Lv^m;(d&o4c8woxw6qEFsY0Fjl;s*sds{Y!?6O)m1>W*3~n0ODwR)Ziz$!b7%+= z4x^-`JszjxIGCmdXnf@pux*TV8Y7v+zj6h&u<%6Oa>HUyM59=H_kvLkC(E)(C6nuq z4+Jn@d=Y)_9Qxk9RTBNF2eE2?nGl#mLyg5hN;8Lsz_J=vZ5fR=4=|p44$x2Y&MH!S!k`Ru2Jh>E|+Pq1^lj^1C24+iHSz#`iTKJb?Vd( z+qVDO*VngGO3BpJ6vbjOV#ec8I+t5X%^L-9 z;=~Elw(aB3KmYvB^XJbqH#diE+i0zEOC@wH)-buw=U35aJRT>L$)J?NFbt%Wn5Ic0 zky!n9*F`(digNpg0i@IEAN2P2zBDs4LpGZwl}a^sGGB9zMsQ9{V7~Ces!2OKI;s^p zDY2~edBUHVcq*mE!(ClneE8vq7>0pY`-q{nM%BKs)b)_MeH$@1SLO4yCSPOmxm=FL z#YGC43^JD^5RGD%N>5G;g+ig1Ez6=<>+6%iby07q0mF~$IY8J z$>;NI-kheZ>zSIBeCFrpDcLr>`>xn9jY=u+0EEL~^7%ZuT#kG`Pd=Y-SYw4E^*rRq zAEV~yS4}>C{W{Y#GgKUh$;nBi^yu&3L08u%Diw!?g*yl#=EhAeRU z^y%%uV7Xjo&z?P8yLN3wijR8U+9}`j@Go9OcXwCyQ6vIFknY-q=SwQ(3Yp9jJ9g~A zaa?RWKrk325UBnFB$Fw&A3PX4ckbM@VHj5&$C;H<&H)R+9B^uQc=+xE0fa)KGu_>r z+a@O`85|ts$dMzQJbAJq$dpnKtl_9zw@|lkRV6|!Mx=Hkn=X||_Vp49wKbBOWm!Zb zE30=sJw43M&OSRZFz~Ex+xWgusZ^p^EaJMZzHs5fSU#Ws>G1II2WtW_O*6P@QyRx{ znVz0zaBz^`-d<*AW~%OV z3I*EQLd?$2I)G^yLbbQI+lfTG@H{E9+1##RFnA1D8-VLNZ(q7}>1Tj07K@h`7Z>+* zb#=9+(`izv6qjnd|ES7Q*UnwOzg)E*A0J0b57V>=hr@JqbkN=1U1zQ!z}VOr;c#0` z6bA5p$>QSDuh(^r_p13(%=I-%R!%JsRup?+0LXbd-2Jj^}v|#p*hac0KP`Qp!IaIB?+d)2>qmfKbg} zgH*pc25N3;)^bc;=BVD@UhCMgW4}nJ(_ioF+e$1JM@ord7~H*km#L|#g4X)=;o;$b zwz|+}HvzC}mvLW`)PN88$B!RBluoCAWSZsx&{pI5lfLi&_|Tz4na{gYXf$1BGqE;- dP*3uO{|DyYZN4p#nZy79002ovPDHLkV1l72x!?c* literal 0 HcmV?d00001 diff --git a/data/icons/48x48/multimedia-player-ipod-mini-silver.png b/data/icons/48x48/multimedia-player-ipod-mini-silver.png new file mode 100644 index 0000000000000000000000000000000000000000..aaa5b5fdb0e86c5aceb66014c67aaac66cf75fc7 GIT binary patch literal 2517 zcmV;`2`cu9P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m4ZY5 zDq5kUs;ZC>58}{-mFFj_O#;XAK`92%soCnaQ zQA&MH(^d!}R~ci!d-L@_AK%V+bvrjJit??44<3B(@IwzHnM}g6ED#V#NDx9A_et6G zSyn%Tw9X}^goH$?SkhKjR)()%zc&2td+$X7+&cgOkccOsYATrU;rSIvRM#eIiykW#|)e4P5vEb=9{3n6&bOS=Jp zfB+JhU%m;$4B^|)J_`WwJdU}mYgegm`3h`1i1V}4_~_~~CicWS z-h_@lAcRDJEQW!;UI2g)65&wrw&Q}90ac|41uT>u55h!cj5tp7RuB#1$}ntjzbt1n4Y}>At{a?*$)619qz;8%~GA1AmpxjV8aU%RWO>S zG_fQ>Z`5k?kVM53c>K`~kn@XcFm$zL&fW8XtX;MDoC_42sFVZ0993ZzC_XCcbs8--vBgC!L6B<#-4O6MLG!~NYVK0 z`5Yf#`2@%R`T;7gfDm_I&IcD4arN4b=HlFO9Cb*eq)`(Tg~GPONPQuU%=!i!^+tou zj%u;bKe-QzLhMPk;1vsA_u$|MTQD`ulns^@Qwd4peCf z5`a^wV9y>Kul?kuZB6mw3lCR;yz?$dR~gVn5+~!m`1{*aIQQXn=MPsEeC4ryT|ww9 zgrr0$VBnk2KMu}C#}8L1h3i(3UC%)XvHLloPzr_8Zqo<^q@}vwQyLXgVy8`ZF)zjc zfk{YEvP*LMZn|Be3QRKqD`3IUO?bWsr&5OFl)*T=?VP)IBCEPuw(BlnpnnjNo?a}b z)2LK9ICCL{K)~ohUn~L6JuI)Lw*ZkHp9VVd0NGkOtw0ca28W^R1{mjvgu|$~E>u;8 z5E7gV=$Z!2vS3*uEU%`KFJznIm~^a&x~{~AZenzJUxP(dMS&f={TWwPR16Q@hlTVt z6pHz#W9lx6xn{m5AlNfF+z|yP6MLahWfK?e0sulbhS;%w1Oisu`+VO=sZ@gNwr{&= zs)j^7+4h)vZ{>8;PDLZJwjRo6vk*cc7z~0Cf^0Sm&bOWsB9Y#%idbiLpeE!fB`^$Q z%g_0I9?@vD@tdyeh(sbN7PodTD4{S6^Rv)GfN2CE#RdV=nxs%wbxQ|B2mwV=z!Qc7C)03m>`=~!Q1$EB%hT$-Ayb{`mnq9~0;bIu!=s;Z5A zn3=tT>6saYWxH3Wa_^2>F_2Sr48&cdjx%Hj%3z2`a7w+qPlbc9T3- zQ7V<7>w2~OEG2{xkW#{N97G}!0KfzLCmLgBW~b}@jhzE<`t<2BP1F81Iy$HFN|eiG#A4Bg!z-=>D-hhoERhE5)Z?BIf>@j4#yNxMd$s=xb|{GxiNtqC zMn)b@r_;#ganIco7#vI>9`CPtiDPwj6_Np@gNn8V z0AuVXfW4MwA)QV)c3esc=Cc}Kkfu21n4A9?$$`CygrhBU&Cboi3Ix#C*N2tmWiaMr ze0&UnfQ3vZgM2;@+qN-2K90UV8;(;M`{N(})H#4NXU^;cFzGlB4jnp#nVFfE-S#}M z7OQeoGIIQPc^>&<6mdHN-7r8vFc6P}bB>BrK{mUNv9U3@t_MxiVHgH^_)gpi$IRRYfq^%3wo7Ls(i`+B-2Z zu~*YHaL!RKmr*K};CY_BaN)w`LZR@(R4VnCwg41GF$M+_a9t0Ji;I|?oW#h;2-4{^ z3WWmRIjgiJ@tq`h*(ssylxm*y5ex?5I1YMxdbZqOC={^1zK&wCh(N%^($bP!ZF&$9 ziA1#C-U#u1Msm6Q1BPK71JE9T=ee(4ym;})0A#6Dx|GRe4#nf~Kq8TVZQFR~?3t>V z>q!2R7DYNcI}65qD2fWpvJj0%kxVA*%w+(;<;$00SyioM7&{VJ78`2cYC?Af8Yxw$V=N*@+N6t7&FeQff;tS_u6+=TqE#XwxOT}Ulxm->- zj>8yZ*8uqu=VHe5ynh@ya^$_P*&KN^ z^~IQFSv}+9X0w-}k{71LqvB>q_7Ef58}g{piu7mp)x!c5XTVvlg!g z0Il|&3P7nz^}0$EBO@c~v17+xO(YV}kB;7lo}MrmW1y5`ZEXz;3kyXl<%_9Q>R;Q- ztnN)~0-)9|y6LPT0dN5PjW^!-(%|6W_Y_5$01&A0{7KIF_n&_H>FoBYVP}mtUCk{A fQM-8Ub;s;~!4P4~S*Z2z00000NkvXXu0mjfbhw)a literal 0 HcmV?d00001 diff --git a/data/icons/48x48/multimedia-player-ipod-nano-black.png b/data/icons/48x48/multimedia-player-ipod-nano-black.png new file mode 100644 index 0000000000000000000000000000000000000000..a383ff71978ce8683d155aae0f161ab7f83b506b GIT binary patch literal 2158 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 literal 0 HcmV?d00001 diff --git a/data/icons/48x48/multimedia-player-ipod-standard-color.png b/data/icons/48x48/multimedia-player-ipod-standard-color.png new file mode 100644 index 0000000000000000000000000000000000000000..4ea000db553d87ecdb15515ca80eac2abeb47d0d GIT binary patch literal 2235 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 JPDHLkV1h90Ji`D0 literal 0 HcmV?d00001 diff --git a/data/icons/48x48/multimedia-player-ipod-standard-monochrome.png b/data/icons/48x48/multimedia-player-ipod-standard-monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..4f2b8597d09a24fcea29024fa2b144e2e99d0cd9 GIT binary patch literal 2190 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 Qv;Y7A07*qoM6N<$f+nsPpa1{> literal 0 HcmV?d00001 diff --git a/data/icons/48x48/phone-google-nexus-one.png b/data/icons/48x48/phone-google-nexus-one.png new file mode 100644 index 0000000000000000000000000000000000000000..98d0c9fa0f50de216245627f719920b24086a66a GIT binary patch literal 5463 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 KMNUMnLSTZuM5Pn} literal 0 HcmV?d00001 diff --git a/data/icons/48x48/phone.png b/data/icons/48x48/phone.png new file mode 100644 index 0000000000000000000000000000000000000000..2462212c9a90510b6f4557759d804aee728f7114 GIT binary patch literal 2471 zcmV;Y30U@tP)QfEQxM73HKj0Ix}!%#Y%jsn8;7(%2}DoL?eluRZg5GS^6^E~_Qd_Mml zw4dL-d-pf=$S4I^SFc|E_4Vu5Z#;VRNNTm3(88OWn*yuS(n=IomTtGJq8!H|Ns7>M zyGyi89|3k~q($rD*$ zU#CTl_4oJp^_Y$1JH6_Ra zwd&Z|7<*co7N=Du$ph`TwzlXky{6S_@qT(p|6Zff$d5XSEs`Qgf)?b%*(c4+@fwB^ zV?LQTWZC}b@1$3S_&~Nop&*-nP8?X(77NNmayVsM7?ZGViC2P$qEI3r3-TeXUMWw} z`VbRHP-shMcUP>fnh`Q`51`SCidNy2JoEA;aX~)oSmMICnFQc34j_PbRt!K~j6Rv$ z3qtwy!F^f#C^Z49z=T8;qw++YL$4(bP--NP^CSw`!d}l95yE>ykQUqgP4ua}$V?oE z;)ow557&RgMt+fc$_P+FdJTGpSr`k%Te!|pNY4X=3W#Y%C9VKP0OTpa22u333Qh!B z>LnF0h#&xnE%kunSjLoZ(XL#%av9b)@fyUo3?P7@5I+!%MalWeJUtW;p=cj+4B=fr z#yMKuk+jxAtkdU7{!qX{2*v7y%t3BA=+)vVoiLFT12}dBbD}Py0QFd4X(>%5gjmxz z4_!U9=pbOZ8ES|bDy&8rD{+d5w4?$MCd2B~r>7YIF-6!%a$uw(bo=)0JBa|TJWFb*$t&ss2M7>C z8T9}l0AoLh0fduQBF;Osd}{9jHuEqaancJw1mmm|lb{jeLUKyo;foK&nr87+4!Vy4%HW+h^OEm{t1BR2HQ-S>uVkN~YME(hRf&|n9kx5{P zzyS%m7?WD)hze|je4~$$(sQ&puch!KNu1uBSl97j+zm*?Qlf4QSOCK#8jcb2S~BZB zS{`DRG(cJO8YtK)dO(hNAV3cIAa5&CBrL%2AS{k!2_dl2rD#hsPU0nvcV34c^zD>A zV1CGS5#X*5@+1`l7RQ>P>V-}$uzai)Crk1)I+qZ31mc$DC`1D-eF4S;E^;6sDJY%OKqT!o%-;bHx8b%I; z#V$j}B6;-`Q#gmQAL)wLNUj1bIo*N#7q%svtB<=n`B516*Px+>U=m8GR6 zSzKI{<>h6`pMHk(+-B6h(v6J`nSbSy1hDYij9GfBm&Y z-5&o=dLe}EaG9N*<({b7g$_4sQby4a9Z$x`$Mu@8e)n4?ReQ27)pCg>HC(v2D!Uuf z08Y=(i9`eL^l?*o^a4m|2X1HBu(xuaM96`BsVpwY!5`d0S7GA_E5F^6vFVet_OCBV zTm|${Pp6-ML3USHq_w^ZFU?3N*>+EDIn9R=-+l8(67%;lJ<+JkU~7%%6$`JvD%%JV zHUG-ET&eMTmS4@A50LYf?S@r^6;?=L=wh!RC>-n{;^cjTjAzAwF2 zlcB@prm$#K0{CF(=FOWP!sGGe$wgn7A{pPt=5EbnNt(t|wL zTB&iB$~g+)8j5-KC7yGNyD-2W?hT*zJ28nf3d%sm^Sml7^#b0)zd$LSoSU0t$dI%l zl6>4|PoflH7JBH-vY8_3B~~jg47azpcVLuvMPw0ZCTQUP=2HkTBJ$|Q6O=(@8id|N z|3e&~0jVNHWU+*>A{nA>jXdBL{du2`DD0Bz+avjI+nzEhpDlKu3uklH1d<_6BWWpTNDr2>z?Vw-V_X l3|n{rwdgTgN&?bv{{=CDfwjX!p$7l}002ovPDHLkV1j&JkFfv% literal 0 HcmV?d00001 diff --git a/data/schema-14.sql b/data/schema-14.sql new file mode 100644 index 000000000..2882c1ef5 --- /dev/null +++ b/data/schema-14.sql @@ -0,0 +1,8 @@ +CREATE TABLE devices ( + unique_id TEXT NOT NULL, + friendly_name TEXT, + size INTEGER, + icon TEXT +); + +UPDATE schema_version SET version=14; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bfd70f056..96838ef4f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -55,6 +55,7 @@ set(SOURCES devices/connecteddevice.cpp devices/devicelister.cpp devices/devicemanager.cpp + devices/deviceview.cpp devices/filesystemdevice.cpp engines/enginebase.cpp @@ -172,6 +173,7 @@ set(HEADERS devices/connecteddevice.h devices/devicelister.h devices/devicemanager.h + devices/deviceview.h devices/filesystemdevice.h engines/enginebase.h diff --git a/src/core/database.cpp b/src/core/database.cpp index ed135fbe9..ce239fa71 100644 --- a/src/core/database.cpp +++ b/src/core/database.cpp @@ -28,7 +28,7 @@ #include const char* Database::kDatabaseFilename = "clementine.db"; -const int Database::kSchemaVersion = 13; +const int Database::kSchemaVersion = 14; int Database::sNextConnectionId = 1; QMutex Database::sNextConnectionIdMutex; diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp index 737c3c816..7dbb93ed1 100644 --- a/src/core/utilities.cpp +++ b/src/core/utilities.cpp @@ -21,6 +21,10 @@ namespace Utilities { +static QString tr(const char* str) { + return QCoreApplication::translate("", str); +} + QString PrettyTime(int seconds) { // last.fm sometimes gets the track length wrong, so you end up with // negative times. @@ -39,10 +43,6 @@ QString PrettyTime(int seconds) { return ret; } -static QString tr(const char* str) { - return QCoreApplication::translate("", str); -} - QString WordyTime(quint64 seconds) { quint64 days = seconds / (60*60*24); @@ -56,4 +56,20 @@ QString WordyTime(quint64 seconds) { return parts.join(" "); } +QString PrettySize(quint64 bytes) { + QString ret; + + if (bytes > 0) { + if (bytes <= 1000) + ret = QString::number(bytes) + " bytes"; + else if (bytes <= 1000*1000) + ret.sprintf("%.1f KB", float(bytes) / 1000); + else if (bytes <= 1000*1000*1000) + ret.sprintf("%.1f MB", float(bytes) / (1000*1000)); + else + ret.sprintf("%.1f GB", float(bytes) / (1000*1000*1000)); + } + return ret; +} + } // namespace diff --git a/src/core/utilities.h b/src/core/utilities.h index c9302e074..6b9725760 100644 --- a/src/core/utilities.h +++ b/src/core/utilities.h @@ -21,6 +21,7 @@ namespace Utilities { QString PrettyTime(int seconds); + QString PrettySize(quint64 bytes); QString WordyTime(quint64 seconds); } diff --git a/src/devices/devicekitlister.cpp b/src/devices/devicekitlister.cpp index 3fa3b9e2f..9938b444d 100644 --- a/src/devices/devicekitlister.cpp +++ b/src/devices/devicekitlister.cpp @@ -104,6 +104,9 @@ QVariant DeviceKitLister::DeviceInfo(const QString& id, int field) { return QString("%1 %2").arg(data.drive_vendor, data.drive_model); return data.drive_serial; + case Field_Icon: + return data.device_presentation_icon_name; + case Field_Manufacturer: return data.drive_vendor; diff --git a/src/devices/devicelister.h b/src/devices/devicelister.h index c3770f4ab..3b0bcd629 100644 --- a/src/devices/devicelister.h +++ b/src/devices/devicelister.h @@ -32,6 +32,7 @@ public: enum Field { Field_UniqueID = 0, Field_FriendlyName, + Field_Icon, Field_Manufacturer, Field_Model, Field_Capacity, diff --git a/src/devices/devicemanager.cpp b/src/devices/devicemanager.cpp index 6bb4260d0..19cb65dee 100644 --- a/src/devices/devicemanager.cpp +++ b/src/devices/devicemanager.cpp @@ -17,9 +17,22 @@ #include "connecteddevice.h" #include "devicemanager.h" #include "devicekitlister.h" +#include "core/utilities.h" +#include "ui/iconloader.h" -DeviceManager::DeviceManager(TaskManager* task_manager, QObject *parent) - : QObject(parent), +#include + + +DeviceManager::DeviceInfo::DeviceInfo() + : database_id_(-1), + lister_(NULL) +{ +} + +DeviceManager::DeviceManager(BackgroundThread* database, + TaskManager* task_manager, QObject *parent) + : QAbstractListModel(parent), + database_(database), task_manager_(task_manager) { #ifdef Q_WS_X11 @@ -31,16 +44,52 @@ DeviceManager::~DeviceManager() { qDeleteAll(listers_); } +int DeviceManager::rowCount(const QModelIndex&) const { + return devices_.count(); +} + +QVariant DeviceManager::data(const QModelIndex& index, int role) const { + if (!index.isValid() || index.column() != 0) + return QVariant(); + + const DeviceInfo& info = devices_[index.row()]; + + switch (role) { + case Qt::DisplayRole: { + QString text = info.friendly_name_.isEmpty() ? info.unique_id_ : info.friendly_name_; + if (info.size_) + text = text + QString(" (%1)").arg(Utilities::PrettySize(info.size_)); + return text; + } + + case Qt::DecorationRole: { + bool connected = info.lister_; + return info.icon_.pixmap(22, connected ? QIcon::Normal : QIcon::Disabled); + } + + default: + return QVariant(); + } +} + void DeviceManager::AddLister(DeviceLister *lister) { listers_ << lister; - connect(lister, SIGNAL(DeviceAdded(QString)), SLOT(DeviceAdded(QString))); - connect(lister, SIGNAL(DeviceRemoved(QString)), SLOT(DeviceRemoved(QString))); - connect(lister, SIGNAL(DeviceChanged(QString)), SLOT(DeviceChanged(QString))); + connect(lister, SIGNAL(DeviceAdded(QString)), SLOT(PhysicalDeviceAdded(QString))); + connect(lister, SIGNAL(DeviceRemoved(QString)), SLOT(PhysicalDeviceRemoved(QString))); + connect(lister, SIGNAL(DeviceChanged(QString)), SLOT(PhysicalDeviceChanged(QString))); lister->Start(); } -void DeviceManager::DeviceAdded(const QString &id) { +int DeviceManager::FindDeviceById(const QString &id) const { + for (int i=0 ; i(sender()); qDebug() << "Device added:" << id; @@ -48,28 +97,74 @@ void DeviceManager::DeviceAdded(const QString &id) { qDebug() << i << lister->DeviceInfo(id, i); } - ConnectedDevice* device = lister->Connect(id, this); - devices_ << device; -} + // Do we have this device already? + int i = FindDeviceById(id); + if (i == -1) { + DeviceInfo info; + info.lister_ = lister; + info.unique_id_ = id; + info.friendly_name_ = lister->DeviceInfo(id, DeviceLister::Field_FriendlyName).toString(); + info.size_ = lister->DeviceInfo(id, DeviceLister::Field_Capacity).toLongLong(); -void DeviceManager::DeviceRemoved(const QString &id) { - DeviceLister* lister = qobject_cast(sender()); + // Try to load the icon with that exact name first + QString icon_name = lister->DeviceInfo(id, DeviceLister::Field_Icon).toString(); + info.icon_ = IconLoader::Load(icon_name); - qDebug() << "Device removed:" << id; - foreach (ConnectedDevice* device, devices_) { - if (device->lister() == lister && device->unique_id() == id) { - delete device; - devices_.removeAll(device); - break; + // If that failed than try to guess if it's a phone or ipod. Fall back on + // a usb memory stick icon. + if (info.icon_.isNull()) { + if (icon_name.contains("phone")) + info.icon_ = IconLoader::Load("phone"); + else if (icon_name.contains("ipod") || icon_name.contains("apple")) + info.icon_ = IconLoader::Load("multimedia-player-ipod-standard-monochrome"); + else + info.icon_ = IconLoader::Load("drive-removable-media-usb-pendrive"); } + + beginInsertRows(QModelIndex(), devices_.count(), devices_.count()); + devices_ << info; + endInsertRows(); + } else { + DeviceInfo& info = devices_[i]; + + // TODO: Make a ConnectedDevice } } -void DeviceManager::DeviceChanged(const QString &id) { +void DeviceManager::PhysicalDeviceRemoved(const QString &id) { + DeviceLister* lister = qobject_cast(sender()); + qDebug() << "Device removed:" << id; + + int i = FindDeviceById(id); + if (i == -1) { + // Shouldn't happen + return; + } + + DeviceInfo& info = devices_[i]; + + if (info.database_id_ != -1) { + // Keep the structure around, but just "disconnect" it + info.lister_ = NULL; + info.device_.reset(); + + emit dataChanged(index(i, 0), index(i, 0)); + } else { + // Remove the item from the model + beginRemoveRows(QModelIndex(), i, i); + devices_.removeAt(i); + endRemoveRows(); + } +} + +void DeviceManager::PhysicalDeviceChanged(const QString &id) { DeviceLister* lister = qobject_cast(sender()); - qDebug() << "Device changed:" << id; - for (int i=0 ; iDeviceInfo(id, i); + int i = FindDeviceById(id); + if (i == -1) { + // Shouldn't happen + return; } + + // TODO } diff --git a/src/devices/devicemanager.h b/src/devices/devicemanager.h index e95ecd416..d7e51cf35 100644 --- a/src/devices/devicemanager.h +++ b/src/devices/devicemanager.h @@ -17,34 +17,70 @@ #ifndef DEVICEMANAGER_H #define DEVICEMANAGER_H -#include +#include "core/backgroundthread.h" + +#include +#include + +#include class ConnectedDevice; +class Database; class DeviceLister; class TaskManager; -class DeviceManager : public QObject { +class DeviceManager : public QAbstractListModel { Q_OBJECT public: - DeviceManager(TaskManager* task_manager, QObject* parent = 0); + DeviceManager(BackgroundThread* database, TaskManager* task_manager, + QObject* parent = 0); ~DeviceManager(); + BackgroundThread* database() const { return database_; } TaskManager* task_manager() const { return task_manager_; } + // QAbstractListModel + int rowCount(const QModelIndex &parent) const; + QVariant data(const QModelIndex &index, int role) const; + private slots: - void DeviceAdded(const QString& id); - void DeviceRemoved(const QString& id); - void DeviceChanged(const QString& id); + void PhysicalDeviceAdded(const QString& id); + void PhysicalDeviceRemoved(const QString& id); + void PhysicalDeviceChanged(const QString& id); private: void AddLister(DeviceLister* lister); + int FindDeviceById(const QString& id) const; private: + // Devices can be in three different states: + // 1) Remembered in the database but not physically connected at the moment. + // database_id valid, lister null, device null + // 2) Physically connected but the user hasn't "connected" it to Clementine + // yet. + // database_id == -1, lister valid, device null + // 3) Physically connected and connected to Clementine + // database_id valid, lister valid, device valid + // Devices in all states will have a unique_id. + struct DeviceInfo { + DeviceInfo(); + + int database_id_; // -1 if not remembered in the database + DeviceLister* lister_; // NULL if not physically connected + boost::shared_ptr device_; // NULL if not connected to clementine + + QString unique_id_; + QString friendly_name_; + quint64 size_; + QIcon icon_; + }; + + BackgroundThread* database_; TaskManager* task_manager_; QList listers_; - QList devices_; + QList devices_; }; #endif // DEVICEMANAGER_H diff --git a/src/devices/deviceview.cpp b/src/devices/deviceview.cpp new file mode 100644 index 000000000..d895dac7e --- /dev/null +++ b/src/devices/deviceview.cpp @@ -0,0 +1,25 @@ +/* This file is part of Clementine. + + Clementine is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Clementine is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Clementine. If not, see . +*/ + +#include "deviceview.h" + +#include + +DeviceView::DeviceView(QWidget* parent) + : QTreeView(parent), + menu_(new QMenu(this)) +{ +} diff --git a/src/devices/deviceview.h b/src/devices/deviceview.h new file mode 100644 index 000000000..c33450178 --- /dev/null +++ b/src/devices/deviceview.h @@ -0,0 +1,36 @@ +/* This file is part of Clementine. + + Clementine is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Clementine is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Clementine. If not, see . +*/ + +#ifndef DEVICEVIEW_H +#define DEVICEVIEW_H + +#include + +class QAction; +class QMenu; + +class DeviceView : public QTreeView { + Q_OBJECT + +public: + DeviceView(QWidget* parent = 0); + +private: + QMenu* menu_; + QAction* connect_action_; +}; + +#endif // DEVICEVIEW_H diff --git a/src/playlist/playlistdelegates.cpp b/src/playlist/playlistdelegates.cpp index 93b8dc4cd..710a2611c 100644 --- a/src/playlist/playlistdelegates.cpp +++ b/src/playlist/playlistdelegates.cpp @@ -171,19 +171,10 @@ QString LengthItemDelegate::displayText(const QVariant& value, const QLocale&) c QString SizeItemDelegate::displayText(const QVariant& value, const QLocale&) const { bool ok = false; int bytes = value.toInt(&ok); - QString ret; - if (ok && bytes > 0) { - if (bytes <= 1024) - ret.sprintf("%d bytes", bytes); - else if (bytes <= 1024*1024) - ret.sprintf("%.1f KB", float(bytes) / 1024); - else if (bytes <= 1024*1024*1024) - ret.sprintf("%.1f MB", float(bytes) / (1024*1024)); - else - ret.sprintf("%.1f GB", float(bytes) / (1024*1024*1024)); - } - return ret; + if (ok) + return Utilities::PrettySize(bytes); + return QString(); } QString DateItemDelegate::displayText(const QVariant &value, const QLocale &locale) const { diff --git a/src/translations/ar.po b/src/translations/ar.po index 85a73aa9f..29a34e0f8 100644 --- a/src/translations/ar.po +++ b/src/translations/ar.po @@ -458,6 +458,9 @@ msgstr "" msgid "Details..." msgstr "" +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "" diff --git a/src/translations/cs.po b/src/translations/cs.po index 648879aa4..91935874d 100644 --- a/src/translations/cs.po +++ b/src/translations/cs.po @@ -459,6 +459,9 @@ msgstr "Cíl" msgid "Details..." msgstr "Detaily..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Složka" @@ -536,8 +539,8 @@ msgstr "" msgid "" "Enter an artist or tag to start listening to Last.fm radio." msgstr "" -"Zadejte umělce nebo značku pro spuštění poslouchání rádia " -"Last.fm." +"Zadejte umělce nebo značku pro spuštění poslouchání rádia Last." +"fm." msgid "Enter search terms here" msgstr "Zde zadejte klíčová slova" @@ -1408,8 +1411,7 @@ msgid "There was a problem fetching the metadata from Magnatune" msgstr "" msgid "These folders will be scanned for music to make up your library" -msgstr "" -"Tyto složky budou prohledány a nalezená hudba bude přidána do knihovny" +msgstr "Tyto složky budou prohledány a nalezená hudba bude přidána do knihovny" msgid "Third level" msgstr "Třetí úroveň" @@ -1546,9 +1548,8 @@ msgid "" msgstr "" msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" msgid "" @@ -1606,11 +1607,9 @@ msgstr "stopa %1" #~ msgid "Show section" #~ msgstr "Zobrazit skeci" -#, qt-format #~ msgid "%1's Neighborhood" #~ msgstr "Sousedství uživatele %1" -#, qt-format #~ msgid "%1's Library" #~ msgstr "Knihovna uživatele %1" diff --git a/src/translations/da.po b/src/translations/da.po index 3aa26da9c..f14e24fc2 100644 --- a/src/translations/da.po +++ b/src/translations/da.po @@ -459,6 +459,9 @@ msgstr "" msgid "Details..." msgstr "" +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "" diff --git a/src/translations/de.po b/src/translations/de.po index 061d18a72..09cede847 100644 --- a/src/translations/de.po +++ b/src/translations/de.po @@ -460,6 +460,9 @@ msgstr "Ziel" msgid "Details..." msgstr "Details..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Ordner" @@ -1406,8 +1409,7 @@ msgstr "Ordner %1 ist ungültig" #, qt-format msgid "The playlist '%1' was empty or could not be loaded." -msgstr "" -"Die Wiedergabeliste \"%1\" ist leer oder konnte nicht geladen werden." +msgstr "Die Wiedergabeliste \"%1\" ist leer oder konnte nicht geladen werden." msgid "There was a problem fetching the metadata from Magnatune" msgstr "Fehler. Metadaten konnten nicht von Magnatune geholt werden" @@ -1550,9 +1552,8 @@ msgid "" msgstr "Sie können ohne Benutzerkonto Musik von Magnatune hören. Um die" msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" "Sie können die Musik kostenlos 'scrobblen' aber nur zahlende Last.fm-Kunden können Last.fm-Radio mit " @@ -1607,7 +1608,6 @@ msgstr "%n Stücke entfernen" msgid "track %1" msgstr "Stück %1" -#, qt-format #~ msgid "%1's Library" #~ msgstr "%1s Musiksammlung" @@ -1648,8 +1648,8 @@ msgstr "Stück %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Sie müssen zahlender Last.fm Kunde sein um Last.fm über Clementine hören zu " -#~ "können" +#~ "Sie müssen zahlender Last.fm Kunde sein um Last.fm über Clementine hören " +#~ "zu können" #~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" #~ msgstr "Musik (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" diff --git a/src/translations/el.po b/src/translations/el.po index 595d09780..c5cbb313f 100644 --- a/src/translations/el.po +++ b/src/translations/el.po @@ -90,8 +90,8 @@ msgid "" "

    If you surround sections of text that contain a token with curly-braces, " "that section will be hidden if the token is empty.

    " msgstr "" -"

    Λέξεις που αρχίζουν με %, για παράδειγμα:%καλλιτέχνης %άλμπουμ " -"%τίτλος

    \n" +"

    Λέξεις που αρχίζουν με %, για παράδειγμα:%καλλιτέχνης %άλμπουμ %τίτλος\n" "\n" "

    Αν κλείσεις ένα κείμενο που περιέχει λέξη με % σε άγκιστρα ({}), το " "τμήμα αυτό δεν θα είναι ορατό η λέξη λείπει

    " @@ -468,6 +468,9 @@ msgstr "Προορισμός" msgid "Details..." msgstr "Λεπτομέρειες..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Κατάλογος" @@ -859,8 +862,7 @@ msgid "Loading tracks" msgstr "Φόρτωση κομματιών" msgid "Loads files/URLs, replacing current playlist" -msgstr "" -"Φορτώνει αρχεία/URLs, αντικαθιστώντας την τρέχουσα λίστα αναπαραγωγής" +msgstr "Φορτώνει αρχεία/URLs, αντικαθιστώντας την τρέχουσα λίστα αναπαραγωγής" msgid "Love" msgstr "Αγάπη" @@ -908,8 +910,7 @@ msgid "Music" msgstr "Μουσική" msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" -msgstr "" -"Μουσική (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" +msgstr "Μουσική (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" msgid "Music Library" msgstr "Μουσική βιβλιοθήκη" @@ -1422,8 +1423,7 @@ msgstr "" "Υπήρξε κάποιο σφάλμα κατά την μεταφορά των μετα-δεδομένων από το Magnatune" msgid "These folders will be scanned for music to make up your library" -msgstr "" -"Οι φάκελοι αυτοί θα σαρωθούν για μουσικά αρχεία για την βιβλιοθήκη σας" +msgstr "Οι φάκελοι αυτοί θα σαρωθούν για μουσικά αρχεία για την βιβλιοθήκη σας" msgid "Third level" msgstr "Τρίτο επίπεδο" @@ -1563,9 +1563,8 @@ msgstr "" "αγορά μιας συνδρομής αφαιρεί το μήνυμα από το τέλος κάθε κομματιού." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" "Μπορείτε να κάνετε \"scroble\" δωρεάν, αλλά μόνο οι συνδρομητές επί πληρωμή μπορούν να έχουν ροή από το " @@ -1624,11 +1623,9 @@ msgstr "αφαίρεση %n τραγουδιών" msgid "track %1" msgstr "κομμάτι %1" -#, qt-format #~ msgid "%1's Neighborhood" #~ msgstr "%1's Συνοικιακά" -#, qt-format #~ msgid "%1's Library" #~ msgstr "%1's Βιβλιοθήκη" @@ -1657,8 +1654,8 @@ msgstr "κομμάτι %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Σημείωσε πως πρέπει να είσαι συνδρομητής για να ακούσεις Last.fm από το Clementine." +#~ "Σημείωσε πως πρέπει να είσαι συνδρομητής για να ακούσεις Last.fm από το Clementine." #~ msgid "Fadeout" #~ msgstr "Ομαλό σβήσιμο" diff --git a/src/translations/en_CA.po b/src/translations/en_CA.po index 890ab8616..5a15c7970 100644 --- a/src/translations/en_CA.po +++ b/src/translations/en_CA.po @@ -460,6 +460,9 @@ msgstr "Destination" msgid "Details..." msgstr "Details..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Directory" diff --git a/src/translations/en_GB.po b/src/translations/en_GB.po index d4370e135..52193d8a0 100644 --- a/src/translations/en_GB.po +++ b/src/translations/en_GB.po @@ -458,6 +458,9 @@ msgstr "" msgid "Details..." msgstr "" +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "" diff --git a/src/translations/es.po b/src/translations/es.po index ee37b8e27..0a95dcf38 100644 --- a/src/translations/es.po +++ b/src/translations/es.po @@ -327,8 +327,7 @@ msgid "Closing this window will cancel the download." msgstr "Cerrando esta ventana se cancelara la descarga." msgid "Closing this window will stop searching for album covers." -msgstr "" -"Cerrando esta ventana se dejara de buscar las caratulas de los álbumes" +msgstr "Cerrando esta ventana se dejara de buscar las caratulas de los álbumes" msgid "Club" msgstr "Club" @@ -463,6 +462,9 @@ msgstr "Destino" msgid "Details..." msgstr "Detalles..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Directorio" @@ -541,8 +543,8 @@ msgstr "Ingrese un nuevo nombre para esta lista de reproducción" msgid "" "Enter an artist or tag to start listening to Last.fm radio." msgstr "" -"Ingrese un artista o etiqueta para escuchar la radio de " -"Last.fm." +"Ingrese un artista o etiqueta para escuchar la radio de Last." +"fm." msgid "Enter search terms here" msgstr "Introduzca aquí los términos de búsqueda" @@ -728,8 +730,8 @@ msgstr "Ignorar el \"The\" en los nombres de los artistas" msgid "" "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgstr "" -"Imágenes (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm " -"*.tiff)" +"Imágenes (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +"tiff)" msgid "Include album art in the notification" msgstr "Incluir carátula en la notificación" @@ -811,8 +813,7 @@ msgid "Last.fm Tag Radio: %1" msgstr "Radio en Last.fm de la Etiqueta %1" msgid "Last.fm is currently busy, please try again in a few minutes" -msgstr "" -"Last.fm está actualmente saturado, intente nuevamente en unos minutos" +msgstr "Last.fm está actualmente saturado, intente nuevamente en unos minutos" msgid "Last.fm password" msgstr "Contraseña" @@ -1559,9 +1560,8 @@ msgid "" msgstr "" msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" msgid "" @@ -1619,11 +1619,9 @@ msgstr "Pista %1" #~ msgid "Show section" #~ msgstr "Mostrar columna" -#, qt-format #~ msgid "%1's Neighborhood" #~ msgstr "Vecinos de %1" -#, qt-format #~ msgid "%1's Library" #~ msgstr "Colección de %1" @@ -1706,8 +1704,8 @@ msgstr "Pista %1" #~ msgstr "Acceso por defecto:" #~ msgid "" -#~ "You are about to reset to global shortcuts default values. Are you sure you " -#~ "want to continue?" +#~ "You are about to reset to global shortcuts default values. Are you sure " +#~ "you want to continue?" #~ msgstr "" #~ "Estas por reinicar las teclas rapidas a sus valores por defecto. Estás " #~ "seguro que deseas continuar?" @@ -1722,8 +1720,9 @@ msgstr "Pista %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Recuerda que tienes que ser un Suscriptor " -#~ "de Paga para poder escuchar la radio de Last.fm desde Clementine." +#~ "Recuerda que tienes que ser un Suscriptor de Paga para poder escuchar la radio de Last.fm " +#~ "desde Clementine." #~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" #~ msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" diff --git a/src/translations/fi.po b/src/translations/fi.po index 655e09132..6de01cdd6 100644 --- a/src/translations/fi.po +++ b/src/translations/fi.po @@ -458,6 +458,9 @@ msgstr "Kohde" msgid "Details..." msgstr "Tiedot..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Kansio" @@ -1543,9 +1546,8 @@ msgid "" msgstr "" msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" msgid "" diff --git a/src/translations/fr.po b/src/translations/fr.po index 0436b3ddf..e2bbc117d 100644 --- a/src/translations/fr.po +++ b/src/translations/fr.po @@ -459,6 +459,9 @@ msgstr "" msgid "Details..." msgstr "" +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "" @@ -817,8 +820,8 @@ msgstr "Nom d'utilisateur" msgid "Leave blank for the default. Examples: \"/dev/dsp\", \"front\", etc." msgstr "" -"Laisser vide pour les paramètres par défaut. Exemples : \"/dev/dsp\", " -"\"front\", etc." +"Laisser vide pour les paramètres par défaut. Exemples : \"/dev/dsp\", \"front" +"\", etc." msgid "Length" msgstr "Durée" @@ -1553,9 +1556,8 @@ msgid "" msgstr "" msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" msgid "" @@ -1613,11 +1615,9 @@ msgstr "piste %1" #~ msgid "Show section" #~ msgstr "Montrer la colonne" -#, qt-format #~ msgid "%1's Neighborhood" #~ msgstr "Voisinnage de %1" -#, qt-format #~ msgid "%1's Library" #~ msgstr "Bibliothèque de %1" @@ -1646,8 +1646,8 @@ msgstr "piste %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "N'oubliez pas que vous devez être abonné " -#~ "(payant) pour écouter la radio Last.fm avec Clementine." +#~ "N'oubliez pas que vous devez être abonné (payant) pour écouter la radio Last.fm avec Clementine." #~ msgid "Fadeout" #~ msgstr "Fondu final" diff --git a/src/translations/gl.po b/src/translations/gl.po index eb601cf46..1f175f025 100644 --- a/src/translations/gl.po +++ b/src/translations/gl.po @@ -458,6 +458,9 @@ msgstr "" msgid "Details..." msgstr "" +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "" diff --git a/src/translations/it.po b/src/translations/it.po index bf078e0c5..130ec8390 100644 --- a/src/translations/it.po +++ b/src/translations/it.po @@ -461,6 +461,9 @@ msgstr "Destinazione" msgid "Details..." msgstr "Dettagli..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Cartella" @@ -725,8 +728,8 @@ msgstr "Ignora \"The\" nei nomi degli artisti" msgid "" "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgstr "" -"Immagini (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm " -"*.tiff)" +"Immagini (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +"tiff)" msgid "Include album art in the notification" msgstr "Includi copertina nella notifica" @@ -808,8 +811,7 @@ msgid "Last.fm Tag Radio: %1" msgstr "Radio del tag di Last.fm: %1" msgid "Last.fm is currently busy, please try again in a few minutes" -msgstr "" -"Al momento Last.fm non è disponibile, prova ancora tra qualche minuto" +msgstr "Al momento Last.fm non è disponibile, prova ancora tra qualche minuto" msgid "Last.fm password" msgstr "Password Last.fm" @@ -904,8 +906,7 @@ msgid "Music" msgstr "Musica" msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" -msgstr "" -"Musica (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" +msgstr "Musica (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" msgid "Music Library" msgstr "Raccolta musicale" @@ -1561,9 +1562,8 @@ msgstr "" "traccia." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" msgid "" @@ -1658,8 +1658,9 @@ msgstr "traccia %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Nota che è necessario essere un abbonato a " -#~ "pagamento per ascoltare una radio Last.fm da Clementine." +#~ "Nota che è necessario essere un abbonato a pagamento per ascoltare una radio Last.fm da " +#~ "Clementine." #~ msgid "Configure global shortcuts..." #~ msgstr "Configura le scorciatoie globali..." diff --git a/src/translations/kk.po b/src/translations/kk.po index 5b5e1da79..8e27fe92f 100644 --- a/src/translations/kk.po +++ b/src/translations/kk.po @@ -458,6 +458,9 @@ msgstr "" msgid "Details..." msgstr "" +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "" diff --git a/src/translations/nb.po b/src/translations/nb.po index 3759c5e4d..2eadae13f 100644 --- a/src/translations/nb.po +++ b/src/translations/nb.po @@ -458,6 +458,9 @@ msgstr "" msgid "Details..." msgstr "" +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "" diff --git a/src/translations/oc.po b/src/translations/oc.po index 3fc35da60..1d20573b9 100644 --- a/src/translations/oc.po +++ b/src/translations/oc.po @@ -458,6 +458,9 @@ msgstr "Destinacion" msgid "Details..." msgstr "Detalhs..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Dorsièr" diff --git a/src/translations/pl.po b/src/translations/pl.po index 6bc19fbb8..19155417a 100644 --- a/src/translations/pl.po +++ b/src/translations/pl.po @@ -459,6 +459,9 @@ msgstr "" msgid "Details..." msgstr "" +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "" diff --git a/src/translations/pt.po b/src/translations/pt.po index dc1634fdf..c23c7aa59 100644 --- a/src/translations/pt.po +++ b/src/translations/pt.po @@ -465,6 +465,9 @@ msgstr "Destino" msgid "Details..." msgstr "Detalhes..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Directoria" @@ -904,8 +907,7 @@ msgid "Music" msgstr "Música" msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" -msgstr "" -"Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" +msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" msgid "Music Library" msgstr "Biblioteca de Música" @@ -1556,13 +1558,12 @@ msgstr "" "serviço, a mensagem no final de cada faixa será removida." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" "Você pode actualizar/memorizar as faixas gratuitamente, mas apenas os assinantes conseguem ouvir as rádios " -"Last.fm através do Clementine." +"style=\" font-weight:600;\">assinantes conseguem ouvir as rádios Last." +"fm através do Clementine." msgid "" "You need to launch System Preferences and turn on \"paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Note que deverá ser um assinante " -#~ "para ouvir as rádio Last.fm com o Clementine." +#~ "Note que deverá ser um assinante para ouvir as rádio Last.fm com o Clementine." #~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" #~ msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" diff --git a/src/translations/pt_BR.po b/src/translations/pt_BR.po index eaa39b910..ef1c03620 100644 --- a/src/translations/pt_BR.po +++ b/src/translations/pt_BR.po @@ -463,6 +463,9 @@ msgstr "Destino" msgid "Details..." msgstr "Detalhes..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Diretório" @@ -904,8 +907,7 @@ msgid "Music" msgstr "Música" msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" -msgstr "" -"Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" +msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" msgid "Music Library" msgstr "Biblioteca de Músicas" @@ -1557,9 +1559,8 @@ msgstr "" "uma assinatura as mensagens no final de cada faixa serão removidas." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" "Você pode obter os nomes das faixas de graça, mas apenas assinantes podem ouvir rádio da Last.fm do Clementine." @@ -1570,8 +1571,8 @@ msgid "" "shortcuts in Clementine." msgstr "" "Você precisa acessar as Preferências de Sistema e habilitar a opção \"Ativar acesso por dispositivos " -"assistidos\" para utilizar os atalhos globais no Clementine." +"style=\" font-style:italic;\">Ativar acesso por dispositivos assistidos\" para utilizar os atalhos globais no Clementine." msgid "Your Last.fm credentials were incorrect" msgstr "Suas credencias do Last.fm estavam incorretas" @@ -1626,8 +1627,8 @@ msgstr "faixa %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Nota: Você deve ser um assinante " -#~ "para ouvir a rádio Last.fm do Clementine." +#~ "Nota: Você deve ser um assinante para ouvir a rádio Last.fm do Clementine." #~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" #~ msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" diff --git a/src/translations/ro.po b/src/translations/ro.po index 06588bf26..2c7a4619c 100644 --- a/src/translations/ro.po +++ b/src/translations/ro.po @@ -458,6 +458,9 @@ msgstr "" msgid "Details..." msgstr "" +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "" diff --git a/src/translations/ru.po b/src/translations/ru.po index 92ae3d167..0ffd3abb6 100644 --- a/src/translations/ru.po +++ b/src/translations/ru.po @@ -459,6 +459,9 @@ msgstr "Назначение" msgid "Details..." msgstr "Подробнее..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Директория" @@ -535,8 +538,7 @@ msgstr "Введите новое имя для этого списка восп msgid "" "Enter an artist or tag to start listening to Last.fm radio." -msgstr "" -"Укажите исполнителя или тег чтобы слушать радио Last.fm." +msgstr "Укажите исполнителя или тег чтобы слушать радио Last.fm." msgid "Enter search terms here" msgstr "Введите выражение для поиска" @@ -722,8 +724,8 @@ msgstr "Игнорировать \"The\" в имени исполнителя" msgid "" "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgstr "" -"Изображения (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm " -"*.tiff)" +"Изображения (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +"tiff)" msgid "Include album art in the notification" msgstr "Показывать обложку альбома в уведомлении" @@ -899,8 +901,7 @@ msgid "Music" msgstr "Музыка" msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" -msgstr "" -"музыка (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" +msgstr "музыка (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" msgid "Music Library" msgstr "Музыкальная коллекция" @@ -1550,9 +1551,8 @@ msgid "" msgstr "" msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" "Вы можете скробблить композиции свободно, но только платные подписчики могут слушать радио Last.fm из " @@ -1635,9 +1635,8 @@ msgstr "композиция %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Обратите внимание, что вы должны быть платным подписчиком ,чтобы слушать радио Last.fm из " -#~ "Clementine." +#~ "Обратите внимание, что вы должны быть платным подписчиком ,чтобы слушать радио Last.fm из Clementine." #~ msgid "Fadeout" #~ msgstr "Затихание" @@ -1654,11 +1653,9 @@ msgstr "композиция %1" #~ msgid "Don't show notifications" #~ msgstr "Не показывать" -#, qt-format #~ msgid "%1's Neighborhood" #~ msgstr "Соседи %1" -#, qt-format #~ msgid "%1's Library" #~ msgstr "Коллекция %1" diff --git a/src/translations/sk.po b/src/translations/sk.po index 9fac1204f..8ab254d48 100644 --- a/src/translations/sk.po +++ b/src/translations/sk.po @@ -465,6 +465,9 @@ msgstr "Cieľ" msgid "Details..." msgstr "Podrobnosti..." +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "Priečinok" @@ -1554,13 +1557,11 @@ msgstr "" "správy na konci každej skladby." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" -"Môžte skrobblovať skladby zadarmo, ale len platiaci predplatitelia môžu streamovať Last.fm rádio z " -"Clementine." +"Môžte skrobblovať skladby zadarmo, ale len platiaci predplatitelia môžu streamovať Last.fm rádio z Clementine." msgid "" "You need to launch System Preferences and turn on \"paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" -"Ви можете вільно скроббити доріжки, але лише платні передплатники можуть слухати потокове радіо " -"Last.fm з Clementine." +"Ви можете вільно скроббити доріжки, але лише платні передплатники можуть слухати потокове радіо Last.fm з " +"Clementine." msgid "" "You need to launch System Preferences and turn on \"Увімкнути доступ для допоміжних " -"пристроїв\", щоб використовувати глобальні комбінації клавіш в " -"Clementine." +"style=\" font-style:italic;\">Увімкнути доступ для допоміжних пристроїв\", щоб використовувати глобальні комбінації клавіш в Clementine." msgid "Your Last.fm credentials were incorrect" msgstr "Ваші облікові дані Last.fm неправильні" diff --git a/src/translations/zh_CN.po b/src/translations/zh_CN.po index 250a23781..ffd6b91f4 100644 --- a/src/translations/zh_CN.po +++ b/src/translations/zh_CN.po @@ -458,6 +458,9 @@ msgstr "" msgid "Details..." msgstr "" +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "" diff --git a/src/translations/zh_TW.po b/src/translations/zh_TW.po index e47c733cd..287c644e9 100644 --- a/src/translations/zh_TW.po +++ b/src/translations/zh_TW.po @@ -458,6 +458,9 @@ msgstr "" msgid "Details..." msgstr "" +msgid "Devices" +msgstr "" + msgid "Directory" msgstr "" diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 798957b63..8432b9158 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -118,7 +118,7 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg player_(NULL), library_(NULL), global_shortcuts_(new GlobalShortcuts(this)), - devices_(new DeviceManager(task_manager_, this)), + devices_(NULL), settings_dialog_(NULL), add_stream_dialog_(new AddStreamDialog), cover_manager_(NULL), @@ -150,6 +150,7 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg cover_manager_.reset(new AlbumCoverManager(network, library_->backend())); settings_dialog_.reset(new SettingsDialog); // Needs RadioModel radio_model_->SetSettingsDialog(settings_dialog_.get()); + devices_ = new DeviceManager(database_, task_manager_, this), // Initialise the UI ui_->setupUi(this); @@ -195,6 +196,8 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg ui_->radio_view->SetModel(radio_model_); + ui_->devices_view->setModel(devices_); + organise_dialog_->AddDirectoryModel(library_->model()->directory_model()); cover_manager_->Init(); diff --git a/src/ui/mainwindow.ui b/src/ui/mainwindow.ui index 99c8e34b3..8dc627daf 100644 --- a/src/ui/mainwindow.ui +++ b/src/ui/mainwindow.ui @@ -41,7 +41,7 @@ QTabWidget::North - 2 + 3 false @@ -125,6 +125,32 @@ + + + Devices + + + + 0 + + + 0 + + + + + true + + + true + + + true + + + + + @@ -861,6 +887,11 @@
    widgets/nowplayingwidget.h
    1 + + DeviceView + QTreeView +
    devices/deviceview.h
    +