This adds an icon to each Operating System section in the
Details->Overview pane.  If inspection completes while a guest's
Details window is open, then the icon updates itself(!)

Screenshots:

http://oirase.annexia.org/tmp/vmm-with-logo.png
http://oirase.annexia.org/tmp/vmm-with-logo-2.png

The icons are taken from either Wikipedia or the upstream project and
resized to 32 px width by myself.  You may be wondering about the
legality of including these trademarked icons in Fedora packages, and
I was too.  I asked Fedora Legal for a verdict with no reply yet:

http://lists.fedoraproject.org/pipermail/legal/2011-April/001604.html

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org
>From 813dc420d19287c0280f338488831fe9fcae2fab Mon Sep 17 00:00:00 2001
From: Richard W.M. Jones <[email protected]>
Date: Tue, 19 Apr 2011 13:48:07 +0100
Subject: [PATCH] Add operating system icon in the Details->Overview pane.

---
 pixmaps/os_archlinux.png       |  Bin 0 -> 907 bytes
 pixmaps/os_debian.png          |  Bin 0 -> 491 bytes
 pixmaps/os_fedora.png          |  Bin 0 -> 1992 bytes
 pixmaps/os_freebsd.png         |  Bin 0 -> 2789 bytes
 pixmaps/os_gentoo.png          |  Bin 0 -> 2002 bytes
 pixmaps/os_linux_generic.png   |  Bin 0 -> 1266 bytes
 pixmaps/os_linuxmint.png       |  Bin 0 -> 1734 bytes
 pixmaps/os_mandriva.png        |  Bin 0 -> 1568 bytes
 pixmaps/os_pardus.png          |  Bin 0 -> 1618 bytes
 pixmaps/os_red_hat.png         |  Bin 0 -> 1222 bytes
 pixmaps/os_ubuntu.png          |  Bin 0 -> 2088 bytes
 pixmaps/os_unknown.png         |  Bin 0 -> 326 bytes
 pixmaps/os_windows_generic.png |  Bin 0 -> 2134 bytes
 src/virtManager/config.py      |   57 ++++++++++++++++++++
 src/virtManager/details.py     |   28 +++++++---
 src/virtManager/domain.py      |   38 +++++++++++++
 src/vmm-details.glade          |  114 +++++++++++++++++++++++-----------------
 17 files changed, 180 insertions(+), 57 deletions(-)
 create mode 100644 pixmaps/os_archlinux.png
 create mode 100644 pixmaps/os_debian.png
 create mode 100644 pixmaps/os_fedora.png
 create mode 100644 pixmaps/os_freebsd.png
 create mode 100644 pixmaps/os_gentoo.png
 create mode 100644 pixmaps/os_linux_generic.png
 create mode 100644 pixmaps/os_linuxmint.png
 create mode 100644 pixmaps/os_mandriva.png
 create mode 100644 pixmaps/os_pardus.png
 create mode 100644 pixmaps/os_red_hat.png
 create mode 100644 pixmaps/os_ubuntu.png
 create mode 100644 pixmaps/os_unknown.png
 create mode 100644 pixmaps/os_windows_generic.png

diff --git a/pixmaps/os_archlinux.png b/pixmaps/os_archlinux.png
new file mode 100644
index 
0000000000000000000000000000000000000000..87d2fb5336cfc74f0814faff287c0a8710324ea7
GIT binary patch
literal 907
zcmV;619bd}P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L0Jx3-0Jx3;vj}*m00007bV*G`2ipV_
z4HqM<J$_0600Rq2L_t(o!^PH1h#f@~2H>yngs78X7CKfm<RN1;3z=3Ff>GQ@5FdjY
z#77X_h%H(8K+HnK$Hs-wxX_KR1a}IG5*G??j3A~!98jYWL8es#Q3*03xo+x0rRh7l
zk1-ZB{i>?}od5ji)M1Jd>Uh@uyp9Zf)Bk2f0)A(j^}Q**zZnmOI_{a2h2E3|Jcj}g
zLQ|Fhy#b+)nyM7)xD~gg&wD~0x1W~~WM1Bn+4Q`C-IEwlOsIj4_z1V6pZ56x_hMz7
zP)w?U8*xL+i90Yqt_~*A!1_f0hU{}c-Jcyd8;S|iuZQRH;*e>Zo2qQqoPmM*aR3e8
z#!AM(fQ47rJOo+lZNMvd6Q}W2GNMRVANPbh?ie)`<7(gqT#%k0#de%(&6!0tYGEqI
z@cwcf!DSiUMHYg5ukUeNQ<X=jW+3yT!X+74v5F&CV{fQqu~r(`f!i@N0&4?yp2Vi9
z3<z}`2x%{_ZGrTMfDgpD6N~2(<0u-qIH~=b7HEN`6z>IG*<r{Z*xFR(KVvhHS^Yo)
z&kZhc2>0RPbdN3L`nVJaS7V_#hxao$k;-na^xv`AROJ`h+&l3uE^O`l8_K3Cm$PCv
zvIt-90Ee$}xRovMW4V=@Qsx{ORu_7!v|Cr;@ec4aSZb<rrK2l8)M9r9CvjJ(<NQb(
z$gF(2b>a=iY5bDU&DMO^ntK9Y;wS75b?l8K!cfOuxI6tXI#R7aBxI*r^X709j^kKU
zm1o*w>~-Y*4EAB$5Ww}=GQ@yw9htB(^$)LyI&Mj2eRvjxI?mze4)GmJNAP=1RW7ZP
zy4R)D-Jb-QkH0aO*M)T*`y9+-{};Z+OHEaN+!kt=s++1jk`Aq>LLK+vnN&w+6C1DL
ziBQJ{oGe-=-aLN9pZE-KG*$U&M^iFt^D=l}#AB(6U58ys7olh^{5*O67CvmMvOf;+
zYKDY5UX&WwNAPP?mHW@qK&azRT!q6;RUV%PxT~&YhHS?5_@=4K<y-?t@k6fCX~A2-
hgZJf7$4>_T{{`62C;tZNqD24z002ovPDHLkV1m5^r27B>

literal 0
HcmV?d00001

diff --git a/pixmaps/os_debian.png b/pixmaps/os_debian.png
new file mode 100644
index 
0000000000000000000000000000000000000000..5fc39312b550e41399184957becd1142d3c8ca73
GIT binary patch
literal 491
zcmV<H0Tlj;P)<h;3K|Lk000e1NJLTq000>P0015c0{{R3?lMK`0001HP)t-s|Ns90
z0074THh+JAKtMphzrXa)*$@yA@xRUZ-{zm6pVBZ~&LB_OP<7*fn%rQ5>Yuaw@AAtK
zLywP-;Bb!ZufVUbukY{gGcz-AaB$4b%wS+()j(+9-`^l0Am)#!P*6~tkCRvn)-M16
z00Cl4M??UK1szBL000SaNLh0L01FZT01FZU(%pXi00007bV*G`2hsro76mKKD<pUT
z009e0L_t(2&$ZCWa>F1HgyDY}1On~5<UQ~Ik~uhzky1XUPf%a=VH#e^8`Jkq9yp|{
z%rpJi?V&KHau8}`ik(!ZaL-q3Or5}Jn&e%+VJb=hceyl<kV<Z9peq6dD4UQ-2i#kL
zKvAU~fI0^pn7=a8xt6xPrxJk1<ej4}r*sB00j@GtU6gKj=+8fIF8N`#c6ax_)PEA!
zkDq8duAj8Z%6+P}O*`?gnE|dR2#15C0E<_c`gF}@I15ovcGK+owM31}Jm?Ip>sfSt
zcq^+6GTTi~ezhKuEE9Vk#BPhI5LGg(nY_fRT18X_AKx+z@~|vcGl`<>=~p)Kl6fz;
ho7Y*Qc!^$T;Ty~E3;<D&6j%TN002ovPDHLkV1fuT)4l)z

literal 0
HcmV?d00001

diff --git a/pixmaps/os_fedora.png b/pixmaps/os_fedora.png
new file mode 100644
index 
0000000000000000000000000000000000000000..0701d078d3a757886c360b1af5e5d5ab81250a15
GIT binary patch
literal 1992
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
a-}7I<Om}h3c#)p~0000<MNUMnLSTYmm$RS%

literal 0
HcmV?d00001

diff --git a/pixmaps/os_freebsd.png b/pixmaps/os_freebsd.png
new file mode 100644
index 
0000000000000000000000000000000000000000..fd98ab1f026049706290be557fd6b87c92319754
GIT binary patch
literal 2789
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

literal 0
HcmV?d00001

diff --git a/pixmaps/os_gentoo.png b/pixmaps/os_gentoo.png
new file mode 100644
index 
0000000000000000000000000000000000000000..fe1b7da1f054130ac3ffcf27adaa4613f6cca270
GIT binary patch
literal 2002
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

literal 0
HcmV?d00001

diff --git a/pixmaps/os_linux_generic.png b/pixmaps/os_linux_generic.png
new file mode 100644
index 
0000000000000000000000000000000000000000..b5c9d239d8855088ce7f8806a1c11f1d033ac0d7
GIT binary patch
literal 1266
zcmV<O1P%L%P)<h;3K|Lk000e1NJLTq001BW001Be0{{R3M5Kzw00001b5ch_0Itp)
z=>Px%`cO<%MXZDg0s;g?L`3Vv41-bx$)gJ@A_R_V2f2d@(4-BdZ3VQG1~w#+<mBXj
zVhq`{4P`?I#Kgo&Fb46{5u|qtV?}|_ln0Y*P>5d#$BGDaQwJ0j6CD+Z?6eD{ct*2%
z2SG9i(x_3IcMFJMNxFkD-=zt*j0mKpq%tBr(VGe8vp?<34oEOY^wmSPw6j|}1(a+F
z0s_!<Nd)V>3#oW2gM)+~7F@KJRF`1|I3@*^YcclK4FUpAN;(WiGK6YN1`i6#*Q^O>
zR4}T33Lh2GTS9NZg$JW?KagZJ*qjKsqj>AhC=?9@kYESptO>!33Z-%iDI5ejDh%_)
z3sW`*c2r>3mJPLjFZI0)l$4acodl6(L<|fJP*70x^z`1eT=Lp1t#}G<S`?OY3-Qz{
zf_P-|whXp@3Nj_XzP-FC9L|DTOVrfV$&Lpc92@h^3~EM1&y*OXggmr^Aljn|!jlVZ
zMFmVY1naXFoOv?>0{lQM2V6r5hgb#TybN@7bX;6qqKRB&WMuNvjH;AuYEqn5K4cOM
zwCwEcRy>lOcT8?gW;{GRCK`l|jf}XhmbaT+BpGomEG(?7taef~KrNoNj5R$gv96qG
z%*@Q)-P~+!Ypae&kZf#<Y$WKtUf--jep_0|qD=PUw8plCYf3`?{`@Q+R68g~oSd9|
ze0)+yEUb(KUQRSxMx-<}Gy(!IhF)Y~J_UGA1R@&Ld|L{^oKBi*Oe`F10s^tDj#!d{
zT%LYJ5e(^SOoaB@6qj-?F(U=ArH_wV1oqlWeOg4PelX&?WC8+k+NvxY6XB+thnr>v
zRXYat%`r+!Op0a%o_+*^ay%*?v|c_ebWS4Sv<iJw1s@g!)~;AqR#cdNG^37Tt%N%C
z?%tw$WJ@%pk7QfIk|&mSY`?XnUP=Uteq@nm3X*bcie_A#a!5HQAoj*A3I+t7Y6rZO
zN1Saf!<r7jtdL$-M5}TI&W;FnQhYQbQ1;d^>c$`>BqXA4Bu6hFwu&H$<}-l+0004W
zQchC<K<3zH00001VoOIv0Eh)0NB{r;32;bRa{vGf6951U69E94oEQKA00(qQO+^RW
z1QQMoGXvo&tN;K3WJyFpR5;6xlP^!hP!z>`HpDWrgc*{hnLt!vx`d@_exwQO9C@N^
zn0aJL0fU$s1~V}Qihh7=A$)-e1P09~z&4o9O!4~Xb(Hlj9Cv$vJ@?)7@-(d|K-(n<
zh1lK4Xo1~;3*{KNYot;EmKnnI)xe9n2;o|udJ_WsJcF+WX3pKkvNu)(wQhCUJG@c@
zkK_H-s@a64AYe`gr(Yf^*8usGClXQ+@F-JxR)9~`AoAuxSVjPA>EH*blmV1$KGNMS
z;#wD-{1n?)nizNuiJ%;yfD)S|iXs6$2R!Le1W<_^K{`P=xX;BA=d5kX5k&Vr@&Ec)
zdpMjj20dT%y(@qk%lo%1){RWUqa&w3uJH|ECjdK632}_?wqrPqaS5zapqpnoXs2JK
zM=L9<GR0X27#UzNE-KEP4j$r+@eu>u*lbbnx9ln7t%K~{?Ad&3|GBHzx2S#+W<@8u
cjI{si2iioZ$vOpgm;e9(07*qoM6N<$f^M`3&;S4c

literal 0
HcmV?d00001

diff --git a/pixmaps/os_linuxmint.png b/pixmaps/os_linuxmint.png
new file mode 100644
index 
0000000000000000000000000000000000000000..50ba8e2345701b334956cdc497f7364b479ca019
GIT binary patch
literal 1734
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

literal 0
HcmV?d00001

diff --git a/pixmaps/os_mandriva.png b/pixmaps/os_mandriva.png
new file mode 100644
index 
0000000000000000000000000000000000000000..543b32e7117f0f718dd5782f74cec630eada79ed
GIT binary patch
literal 1568
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
S9Vf^D0000<MNUMnLSTYb{nBOt

literal 0
HcmV?d00001

diff --git a/pixmaps/os_pardus.png b/pixmaps/os_pardus.png
new file mode 100644
index 
0000000000000000000000000000000000000000..3fc61280886d46d5a011ff2f59ae04602ecb8dd8
GIT binary patch
literal 1618
zcmV-Y2CeytP)<h;3K|Lk000e1NJLTq001BW001Be0ssI2{21+{00001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L04^f{04^f|c%?sf00007bV*G`2ipV_
z4j48>J~%f300q)XL_t(Y$F-JeY?S2|$A8bvbe2w~ECn134Yi_{rL-v2i-ESpIL0NC
zCbjsX2t#5dp)OzyN{q%OZM-7Jh+B;zU<_JQu?D5IrPvBnnHC2Wi?kG#;sCV`rOR}-
z_xNF^Gt=$f`{8o(et747o^$@^{Qu8+<|q;2dYX>wY!d+dUuud5i2?NX_U7f~tzW<X
z)TvVwBK7q2w6(RlT&|9e4zJfceouFI_x}C+3kwT(?AW1{iY$qUh<H36z&10%Hq#K^
zU0Yl0^?JLyy6Woc)~;PUKF74Qw6e0Y_V)IxSFc{UaG|)k7%&;t^2Le3=FOYKks|=}
z=FLl)W{^Mckh3|z*DXl18KZ#=dZteyZz-R>j<h0ew13458<;zrq{JAW#iX9wI7>Qm
z<k#%7XKX-SU7d(15jlPO^rA(JE;TKhHC-PrO(|u`KIscc{reQ;f^eXb2UdbaDMl$U
zfUxl;KB=btVCF4prjevr@ko2h+|||9)jD9|!iB)b7ync`1t_I{XdM{#i>HRwPf+p#
zB=O+WXj&{^r2q&bK|X#Fi<$ZNwP{+I4hi|h=^iX8DT#?(Sy_4D$h8AUt_czh$;y(B
zwAswQ5xtJ=+hBlejp)<_r$s50!gCOy-r28|QWjl?{a2k%S5#CK(LmEQ5y{BN0CKYu
zHxy0>yhm9wpYA%O1#zRf&|FB%1drxIYhivGz-v$063q&5I-R3Ljvl12{cADO3efpA
zoz>j67;#S=J^J{YM|gwM($Z*H6@QR-?%cU$%NCsupA)?fVT2YP5{mgxW~(>R-~t#L
z8Zw*BN~uweCL%>eML=Nz20co}k*<x3KGHyA0S>>9LC=a6D=Zd^8gVeh$))z}*<(zg
z@=XYF_7A>k;=~#BdIpE^1t__nVmk<dAofy{EF>r44=`&Q1<NQbKq(%zv-jI$gM))s
zt2Gifo}z>V<K0<-BOf7x(t!a&Joh#kseE^g%yi101dYA{rsi|-U0(i>#tIUw5Q1PN
zVU^AC<HwgRTQ;@=z+^JrkQj(Gkw5_8jb}jP)-+n$Km$llB6TMAmDpDyKJdl0o)I<r
zf*N(3W@g@g;<s^PhCq1db5`bz@NOh!D(Jx<+Z+sW_7D2I5lBu>o){oMKYz#z`muVF
zK=aQmNRKt}s-?J3#p#^DdzBnGN_8VZN=iyh+W2xB8XD~PuJ*S^$N|vfA11*--vCo%
zUib$vS|CX0MdsPKuavLe#A2p+8(-FszUQMIp=sLr^XCDdGuA$DJjq`Nkrs~c8AaQI
zn-Mp1f(;KLCpcZn!kYnXDdgnjNSqP>qrbl&cxwyNinI{;5y0P!=0e(7l@kMK{WOw6
z)xRma2WjD#&#8Hr8?5Z!y?ass5y{HR0?JG2`i|^d0W=q$8p=!YIZ3|>;EQthzQWN@
zxb{82e1SnvPd&}M$(j#v<;oQ;dasTF2rq2fw8?BXN0XgmrS($|e?aeHdg^&N4{=lf
z0at2yyf9XiUawC|N~*1`9h33c3Zme<cI~p+Y+>iUuOdJ3cRjs_BLL^C@g5^(DuBUY
zuv)Etzdzo6QUDPd92_(njUJCD{8wr+nGAXwE6`m0Rz<;`$VvRo<SzwSvSi8j?c0OF
zpu^$Vwr$&ZjIjV!RaNEX<-uT3MCQzy6IJD%XL)`D1$WZ27qgMeha${$b#*zN&aGRw
zib!8yUwV3aAP|^TgHR}R`SRuPyUk_`1OjW;tT}h?oWtP&9(xcuiMaXwo5;N)B6ho7
zL=GJ~)YQ}zj?mxV|6eE)k$wC2`Fy_4&d!R8itv}^%a`jEb7nDjHq)j6T)cQu)3o8?
z;Tbb#giH7P{o&l>D^TO-xbRc~WMpJ?baX^NHZ(NU)YM$MbSX14bKSaisi~>qCAZt{
z^Z9afb0?kgCbTnW&h+;7PPQ7&G5q3iIL4o!Nh^pi;(r`N|HEc=y~p=|0JC#nPoXT{
Q8vp<R07*qoM6N<$f*no^H2?qr

literal 0
HcmV?d00001

diff --git a/pixmaps/os_red_hat.png b/pixmaps/os_red_hat.png
new file mode 100644
index 
0000000000000000000000000000000000000000..8c832dabda7c78d515760a79a5bb383c72aa2e0f
GIT binary patch
literal 1222
zcmV;%1UdVOP)<h;3K|Lk000e1NJLTq001BW0018d0ssI22{c&S00001b5ch_0Itp)
z=>Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RW1QQM#FrRDxfB*mlSV=@dR7l6Q
zmS1R-XB5VN&zElfC(_oorZ8mIme~tism8jov2`vq-C)&auu1R6V5}GI5R0P7E*v<<
z7>YMraj-FZQI(D|&=&t?9mwKBN?U_^F{@URrP1m}W7@{}?jmcOG;OsGAHIv1^PclO
z-#PF3&ilz2!{WGk^JY&^Pk(>^@bK{H=x8h!vn;EqsHmc%V)N$B4Gj%Wr!zY{dkF^2
zBJg-T4Gj&JWw9iRi;MT|+jr;AoyB+-5C{f?J9g|~IVdbF?C9utA_0%bQ(9U&8~Gyo
z1hq-;p<1*_YDV9n@1@UC6-t$HyWJBL6H5tncXy{2v=sd+`AB=tqOYV^q;*o4RHHPF
zy1Kgi_wT22&Xw5X@$B5Wb82d8)>1FBA(38<0;q*`@S0&Y><3$lhS%$DYHFIEo}RTR
z*+rpHsHUbS5{aa8eTlAvUpV0(utB4tB;x?~i@x+$Y;A2la^y&I{a*$xEiLodfok!#
z2pN7f`~`7CR12K&hZ&ZmN00XR_s?bE@p$U%>*qP;qTc`rL%vwC)YrlX@F!^=wY9ZA
zpHGqn96EF;X<dt&rCri4v__l~z-k`D4!o6N@%#OKeSLsNMn=lZ%Z)MbOM5^wTrJ`c
zs5dkThvE4p1%}`w=D&s8?LK+(WL8g4Px74KF=<`hY#4y^nDd5g=_SJkaEYpgvMCgm
zXoX==JeoQ1-rnBH$w^yYUfz`}SAYUkmlCrEUKZD-FeD%h!_b2q!k!_}C)|dQ!6~jw
zK>*_Mcw=LuEs;pvy?Yl3p!KjOC9D*hpiVMUP?`n<La%2Cyf7130514l8Uw)LaM&I^
zc<}JyL*NmdL&dN@J=hL!Kr?KT%A|4F0Qu=YIVo!kB$7?KapT6USS&WX7sq@7Ua1|5
z(rf)3Y%y$kvf1}&CN>(4TA2g+j4^Kb38r{ToSo?wo6TmeTD5B4c7A^T@l&VXJ$LrA
z^0hyRzqLH}<H9@BNX5m)S(TNQ^M-`O;c&TJz_%w(Y}>Z&OhMt=8#fxDj>mir<M5s6
zPMJ#;6&19#wWT^)mX({EJ2*I)9JcXz{MM~ocDo(OL$6AoqOYY+=@+S2`dR8gd!#p|
zY?OK9a^b>-ty{M`ozC|5_CO#IjYb<A8>_3UL!r>@Ouu&RT6J~x+{7*@uq-PlCuil#
zl|Wfp*@6jGRaGr~W!}4YZ};xqot>Sj#zZ3F^Z71byci4yjWMI6qvPY_@p$~|)vK2;
zUtUn);K73n3oMO9A~88RX^e@*VoA&4!-q53b8~Y;p-><Yu$J3`U0q!@H8tC}Z})gS
zNz2H{NTyqBYilGD@%enq&cGNGjYb23Kyp1cHkNGk0|yRxz20y*9En8ye*eV8L?V$G
z7#MgOfz)!jTrRuazIX55WZg26#s9#uW5;gazCAQFR8ms1n2+_;?BQ_u(xpqMPoG|b
keeSQ~*}>u&<CzQm3);veyFQ7&@Bjb+07*qoM6N<$f>QKQIRF3v

literal 0
HcmV?d00001

diff --git a/pixmaps/os_ubuntu.png b/pixmaps/os_ubuntu.png
new file mode 100644
index 
0000000000000000000000000000000000000000..cca0379f4e2152f0f4582cf3601d48ad16bf8cc0
GIT binary patch
literal 2088
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
SMLoIz0000<MNUMnLSTa9V)~o_

literal 0
HcmV?d00001

diff --git a/pixmaps/os_unknown.png b/pixmaps/os_unknown.png
new file mode 100644
index 
0000000000000000000000000000000000000000..02518dca46f54775ad439218d4286d01bb1a8d42
GIT binary patch
literal 326
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Y)RhkE)4%c
zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmP?i!iSwTjj3yW}uK{iEBiObAE1a
zYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI8f0-PZ!6Kh{JEMIC41#inM=>KQATX9iXOk
z(&z@G^#&&8RO4w2ec~h|m>!!42l=cs3hFAK{Q2tJzP#tw&;RUZas1F+vhfg~ddQ80
zzA{;+?c&dSE^cS#i%9Abn>AyRkI?Oy)h|^WU(Izt%Fb%_Qm?pV{{hp~1@Yw{zXmg?
zmx|9{`pBK9sHbi|OWV##^`1<<F--mZ8Xq=mYZR3S91&_(_)-0iX`hPAuk4G{fR1JG
MboFyt=akR{0J?y3Bme*a

literal 0
HcmV?d00001

diff --git a/pixmaps/os_windows_generic.png b/pixmaps/os_windows_generic.png
new file mode 100644
index 
0000000000000000000000000000000000000000..8ae987d55833afb01c86cb2a7e7b19210e94d30d
GIT binary patch
literal 2134
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
M07*qoM6N<$g7kUp#Q*>R

literal 0
HcmV?d00001

diff --git a/src/virtManager/config.py b/src/virtManager/config.py
index 7f3f85c..942c640 100644
--- a/src/virtManager/config.py
+++ b/src/virtManager/config.py
@@ -151,6 +151,35 @@ class vmmConfig(object):
             libvirt.VIR_DOMAIN_NOSTATE: 
gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + 
"/state_running.png", 32, 32),
             }
 
+        self.os_icons = {
+            "archlinux": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_archlinux.png", 32, 32),
+            "debian": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_debian.png", 32, 32),
+            "fedora": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_fedora.png", 32, 32),
+            "freebsd": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_freebsd.png", 32, 32),
+            "gentoo": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_gentoo.png", 32, 32),
+            "linuxmint": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_linuxmint.png", 32, 32),
+            "linux_generic": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_linux_generic.png", 32, 32),
+            "mandriva": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_mandriva.png", 32, 32),
+            "pardus": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_pardus.png", 32, 32),
+            "red_hat": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_red_hat.png", 32, 32),
+            "ubuntu": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_ubuntu.png", 32, 32),
+            "unknown": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_unknown.png", 32, 32),
+            "windows_generic": gtk.gdk.pixbuf_new_from_file_at_size(
+                self.get_icon_dir() + "/os_windows_generic.png", 32, 32),
+            }
+
 
     # General app wide helpers (gconf agnostic)
 
@@ -204,6 +233,34 @@ class vmmConfig(object):
     def remove_notifier(self, h):
         self.conf.notify_remove(h)
 
+    # Inspection icons.
+    def get_os_archlinux_icon(self):
+        return self.os_icons["archlinux"]
+    def get_os_debian_icon(self):
+        return self.os_icons["debian"]
+    def get_os_fedora_icon(self):
+        return self.os_icons["fedora"]
+    def get_os_freebsd_icon(self):
+        return self.os_icons["freebsd"]
+    def get_os_gentoo_icon(self):
+        return self.os_icons["gentoo"]
+    def get_os_linuxmint_icon(self):
+        return self.os_icons["linuxmint"]
+    def get_os_linux_generic_icon(self):
+        return self.os_icons["linux_generic"]
+    def get_os_mandriva_icon(self):
+        return self.os_icons["mandriva"]
+    def get_os_pardus_icon(self):
+        return self.os_icons["pardus"]
+    def get_os_red_hat_icon(self):
+        return self.os_icons["red_hat"]
+    def get_os_ubuntu_icon(self):
+        return self.os_icons["ubuntu"]
+    def get_os_unknown_icon(self):
+        return self.os_icons["unknown"]
+    def get_os_windows_generic_icon(self):
+        return self.os_icons["windows_generic"]
+
     # Used for debugging reference leaks, we keep track of all objects
     # come and go so we can do a leak report at app shutdown
     def add_object(self, obj):
diff --git a/src/virtManager/details.py b/src/virtManager/details.py
index 580749f..2ecf6fc 100644
--- a/src/virtManager/details.py
+++ b/src/virtManager/details.py
@@ -437,6 +437,7 @@ class vmmDetails(vmmGObjectUI):
         # Deliberately keep all this after signal connection
         self.vm.connect("status-changed", self.refresh_vm_state)
         self.vm.connect("config-changed", self.refresh_vm_state)
+        self.vm.connect("inspection-changed", self.refresh_overview_inspection)
         self.vm.connect("resources-sampled", self.refresh_resources)
         self.window.get_widget("hw-list").get_selection().connect(
                                                         "changed",
@@ -454,6 +455,7 @@ class vmmDetails(vmmGObjectUI):
 
         self.hw_selected()
         self.refresh_vm_state()
+        self.refresh_overview_inspection()
 
     def cleanup(self):
         self.close()
@@ -494,6 +496,7 @@ class vmmDetails(vmmGObjectUI):
 
         self.emit("details-opened")
         self.refresh_vm_state()
+        self.refresh_overview_inspection()
 
     def close(self, ignore1=None, ignore2=None):
         fs = self.window.get_widget("details-menu-view-fullscreen")
@@ -1172,6 +1175,23 @@ class vmmDetails(vmmGObjectUI):
         # This is safe to refresh, and is dependent on domain state
         self._refresh_runtime_pinning()
 
+    # Details -> Overview -> Operating System
+    def refresh_overview_inspection(self, ignore1=None):
+        vm = self.vm
+
+        s = vm.get_inspection_hostname()
+        if not s or s == "unknown":
+            s = _("unknown")
+        self.window.get_widget("label_inspection_hostname_value").set_text(s)
+
+        s = vm.get_inspection_product_name()
+        if not s or s == "unknown":
+            s = _("unknown")
+        
self.window.get_widget("label_inspection_product_name_value").set_text(s)
+
+        self.window.get_widget("image_inspection").set_from_pixbuf(
+            vm.inspection_operating_system_icon())
+
 
     #############################
     # External action listeners #
@@ -2126,14 +2146,6 @@ class vmmDetails(vmmGObjectUI):
         self.window.get_widget("overview-arch").set_text(arch)
         self.window.get_widget("overview-emulator").set_text(emu)
 
-        # Operating System
-        s = self.vm.get_inspection_hostname()
-        if not s: s = _("unknown")
-        self.window.get_widget("label_inspection_hostname_value").set_text(s)
-        s = self.vm.get_inspection_product_name()
-        if not s: s = _("unknown")
-        
self.window.get_widget("label_inspection_product_name_value").set_text(s)
-
         # Machine settings
         acpi = self.vm.get_acpi()
         apic = self.vm.get_apic()
diff --git a/src/virtManager/domain.py b/src/virtManager/domain.py
index ada7ca4..df3ab50 100644
--- a/src/virtManager/domain.py
+++ b/src/virtManager/domain.py
@@ -995,6 +995,44 @@ class vmmDomainBase(vmmLibvirtObject):
     def get_inspection_product_name(self):
         return self.inspection_product_name
 
+    # Determine the OS icon to use from the various inspection fields.
+    def inspection_operating_system_icon(self):
+        if (self.inspection_type and self.inspection_type != "unknown" and
+            self.inspection_distro and self.inspection_distro != "unknown"):
+            if self.inspection_type == "linux":
+                if self.inspection_distro == "archlinux":
+                    return self.config.get_os_archlinux_icon()
+                elif self.inspection_distro == "debian":
+                    return self.config.get_os_debian_icon()
+                elif self.inspection_distro == "fedora":
+                    return self.config.get_os_fedora_icon()
+                elif self.inspection_distro == "gentoo":
+                    return self.config.get_os_gentoo_icon()
+                elif self.inspection_distro == "linuxmint":
+                    return self.config.get_os_linuxmint_icon()
+                elif self.inspection_distro == "mandriva":
+                    return self.config.get_os_mandriva_icon()
+                elif self.inspection_distro == "pardus":
+                    return self.config.get_os_pardus_icon()
+                elif self.inspection_distro == "rhel":
+                    return self.config.get_os_red_hat_icon()
+                elif self.inspection_distro == "ubuntu":
+                    return self.config.get_os_ubuntu_icon()
+                else:
+                    return self.config.get_os_linux_generic_icon()
+            elif self.inspection_type == "windows":
+                # XXX It is possible to be very specific about Windows
+                # by mapping the major/minor version and product
+                # variant fields.  However we don't have enough icons
+                # yet.  For more details see:
+                # 
http://msdn.microsoft.com/en-us/library/ms724832%28v=vs.85%29.aspx
+                return self.config.get_os_windows_generic_icon()
+            elif self.inspection_type == "freebsd":
+                return self.config.get_os_freebsd_icon()
+
+        # unknown or inspection hasn't finished yet
+        return self.config.get_os_unknown_icon()
+
 
 ########################
 # Libvirt domain class #
diff --git a/src/vmm-details.glade b/src/vmm-details.glade
index 1670e34..cdcd931 100644
--- a/src/vmm-details.glade
+++ b/src/vmm-details.glade
@@ -1283,64 +1283,80 @@
                                         <property 
name="top_padding">3</property>
                                         <property 
name="left_padding">12</property>
                                         <child>
-                                          <widget class="GtkTable" 
id="table_inspection">
+                                          <widget class="GtkHBox" 
id="hbox_inspection">
                                             <property 
name="visible">True</property>
-                                            <property 
name="border_width">3</property>
-                                            <property 
name="n_rows">2</property>
-                                            <property 
name="n_columns">2</property>
-                                            <property 
name="column_spacing">6</property>
-                                            <property 
name="row_spacing">6</property>
-                                            <child>
-                                              <widget class="GtkLabel" 
id="label_inspection_hostname">
-                                                <property 
name="visible">True</property>
-                                                <property 
name="xalign">1</property>
-                                                <property name="label" 
translatable="yes">Hostname:</property>
-                                              </widget>
-                                              <packing>
-                                                <property 
name="x_options">GTK_FILL</property>
-                                                <property 
name="y_options">GTK_FILL</property>
-                                              </packing>
-                                            </child>
-                                            <child>
-                                              <widget class="GtkLabel" 
id="label_inspection_product_name">
-                                                <property 
name="visible">True</property>
-                                                <property 
name="xalign">1</property>
-                                                <property name="label" 
translatable="yes">Product name:</property>
-                                              </widget>
-                                              <packing>
-                                                <property 
name="top_attach">1</property>
-                                                <property 
name="bottom_attach">2</property>
-                                                <property 
name="x_options">GTK_FILL</property>
-                                                <property 
name="y_options">GTK_FILL</property>
-                                              </packing>
-                                            </child>
+                                            <property 
name="spacing">4</property>
                                             <child>
-                                              <widget class="GtkLabel" 
id="label_inspection_hostname_value">
+                                              <widget class="GtkTable" 
id="table_inspection">
                                                 <property 
name="visible">True</property>
-                                                <property 
name="xalign">0</property>
-                                                <property 
name="label">hostname</property>
-                                                <property 
name="selectable">True</property>
+                                                <property 
name="border_width">3</property>
+                                                <property 
name="n_rows">2</property>
+                                                <property 
name="n_columns">2</property>
+                                                <property 
name="column_spacing">6</property>
+                                                <property 
name="row_spacing">6</property>
+                                                <child>
+                                                  <widget class="GtkLabel" 
id="label_inspection_hostname">
+                                                    <property 
name="visible">True</property>
+                                                    <property 
name="xalign">1</property>
+                                                    <property name="label" 
translatable="yes">Hostname:</property>
+                                                  </widget>
+                                                  <packing>
+                                                    <property 
name="x_options">GTK_FILL</property>
+                                                    <property 
name="y_options">GTK_FILL</property>
+                                                  </packing>
+                                                </child>
+                                                <child>
+                                                  <widget class="GtkLabel" 
id="label_inspection_product_name">
+                                                    <property 
name="visible">True</property>
+                                                    <property 
name="xalign">1</property>
+                                                    <property name="label" 
translatable="yes">Product name:</property>
+                                                  </widget>
+                                                  <packing>
+                                                    <property 
name="top_attach">1</property>
+                                                    <property 
name="bottom_attach">2</property>
+                                                    <property 
name="x_options">GTK_FILL</property>
+                                                    <property 
name="y_options">GTK_FILL</property>
+                                                  </packing>
+                                                </child>
+                                                <child>
+                                                  <widget class="GtkLabel" 
id="label_inspection_hostname_value">
+                                                    <property 
name="visible">True</property>
+                                                    <property 
name="xalign">0</property>
+                                                    <property 
name="label">hostname</property>
+                                                    <property 
name="selectable">True</property>
+                                                  </widget>
+                                                  <packing>
+                                                    <property 
name="left_attach">1</property>
+                                                    <property 
name="right_attach">2</property>
+                                                    <property 
name="x_options">GTK_FILL</property>
+                                                    <property 
name="y_options">GTK_FILL</property>
+                                                  </packing>
+                                                </child>
+                                                <child>
+                                                  <widget class="GtkLabel" 
id="label_inspection_product_name_value">
+                                                    <property 
name="visible">True</property>
+                                                    <property 
name="xalign">0</property>
+                                                    <property 
name="label">product name</property>
+                                                    <property 
name="selectable">True</property>
+                                                  </widget>
+                                                  <packing>
+                                                    <property 
name="left_attach">1</property>
+                                                    <property 
name="right_attach">2</property>
+                                                    <property 
name="top_attach">1</property>
+                                                    <property 
name="x_options">GTK_FILL</property>
+                                                    <property 
name="y_options">GTK_FILL</property>
+                                                  </packing>
+                                                </child>
                                               </widget>
-                                              <packing>
-                                                <property 
name="left_attach">1</property>
-                                                <property 
name="right_attach">2</property>
-                                                <property 
name="x_options">GTK_FILL</property>
-                                                <property 
name="y_options">GTK_FILL</property>
-                                              </packing>
                                             </child>
                                             <child>
-                                              <widget class="GtkLabel" 
id="label_inspection_product_name_value">
+                                              <widget class="GtkImage" 
id="image_inspection">
                                                 <property 
name="visible">True</property>
-                                                <property 
name="xalign">0</property>
-                                                <property name="label">product 
name</property>
-                                                <property 
name="selectable">True</property>
+                                                <property 
name="stock">gtk-stop</property>
                                               </widget>
                                               <packing>
-                                                <property 
name="left_attach">1</property>
-                                                <property 
name="right_attach">2</property>
-                                                <property 
name="top_attach">1</property>
-                                                <property 
name="x_options">GTK_FILL</property>
-                                                <property 
name="y_options">GTK_FILL</property>
+                                                <property 
name="expand">False</property>
+                                                <property 
name="position">1</property>
                                               </packing>
                                             </child>
                                           </widget>
-- 
1.7.4.4

_______________________________________________
virt-tools-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/virt-tools-list

Reply via email to