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 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 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
