@@ -5745,6 +5745,7 @@ qemu_confdir=$sysconfdir$confsuffix
qemu_moddir=$libdir$confsuffix
qemu_datadir=$datadir$confsuffix
qemu_localedir="$datadir/locale"
+qemu_icondir="$datadir/icons"
# We can only support ivshmem if we have eventfd
if [ "$eventfd" = "yes" ]; then
@@ -6210,6 +6211,7 @@ if test "$mingw32" = "no" ; then
fi
echo "qemu_helperdir=$libexecdir" >> $config_host_mak
echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
+echo "qemu_icondir=$qemu_icondir" >> $config_host_mak
echo "libs_softmmu=$libs_softmmu" >> $config_host_mak
echo "GIT=$git" >> $config_host_mak
echo "GIT_SUBMODULES=$git_submodules" >> $config_host_mak
@@ -667,7 +667,6 @@ pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom \
efi-e1000.rom efi-eepro100.rom efi-ne2k_pci.rom \
efi-pcnet.rom efi-rtl8139.rom efi-virtio.rom \
efi-e1000e.rom efi-vmxnet3.rom \
-qemu-icon.bmp qemu_logo_no_text.svg \
bamboo.dtb canyonlands.dtb petalogix-s3adsp1800.dtb petalogix-ml605.dtb \
multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin \
s390-ccw.img s390-netboot.img \
@@ -720,6 +719,7 @@ ifneq (,$(findstring qemu-ga,$(TOOLS)))
endif
endif
+ICON_SIZES=16x16 24x24 32x32 48x48 64x64 128x128 256x256 512x512
install: all $(if $(BUILD_DOCS),install-doc) install-datadir install-localstatedir
ifneq ($(TOOLS),)
@@ -741,6 +741,17 @@ ifneq ($(BLOBS),)
$(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(qemu_datadir)"; \
done
endif
+ for s in $(ICON_SIZES); do \
+ mkdir -p "$(DESTDIR)/$(qemu_icondir)/hicolor/$${s}/apps"; \
+ $(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu_$${s}.png \
+ "$(DESTDIR)/$(qemu_icondir)/hicolor/$${s}/apps/qemu.png"; \
+ done; \
+ mkdir -p "$(DESTDIR)/$(qemu_icondir)/hicolor/32x32/apps"; \
+ $(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu_32x32.bmp \
+ "$(DESTDIR)/$(qemu_icondir)/hicolor/32x32/apps/qemu.bmp"; \
+ mkdir -p "$(DESTDIR)/$(qemu_icondir)/hicolor/scalable/apps"; \
+ $(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu.svg \
+ "$(DESTDIR)/$(qemu_icondir)/hicolor/scalable/apps/qemu.svg"
ifdef CONFIG_GTK
$(MAKE) -C po $@
endif
@@ -2214,8 +2214,8 @@ static void gtk_display_init(DisplayState *ds, DisplayOptions *opts)
VirtualConsole *vc;
GtkDisplayState *s = g_malloc0(sizeof(*s));
- char *filename;
GdkDisplay *window_display;
+ GtkIconTheme *theme;
if (!gtkinit) {
fprintf(stderr, "gtk initialization failed\n");
@@ -2224,6 +2224,9 @@ static void gtk_display_init(DisplayState *ds, DisplayOptions *opts)
assert(opts->type == DISPLAY_TYPE_GTK);
s->opts = opts;
+ theme = gtk_icon_theme_get_default();
+ gtk_icon_theme_prepend_search_path(theme, CONFIG_QEMU_ICONDIR);
+
s->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
s->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
s->notebook = gtk_notebook_new();
@@ -2248,17 +2251,7 @@ static void gtk_display_init(DisplayState *ds, DisplayOptions *opts)
qemu_add_mouse_mode_change_notifier(&s->mouse_mode_notifier);
qemu_add_vm_change_state_handler(gd_change_runstate, s);
- filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, "qemu_logo_no_text.svg");
- if (filename) {
- GError *error = NULL;
- GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(filename, &error);
- if (pixbuf) {
- gtk_window_set_icon(GTK_WINDOW(s->window), pixbuf);
- } else {
- g_error_free(error);
- }
- g_free(filename);
- }
+ gtk_window_set_icon_name(GTK_WINDOW(s->window), "qemu");
gd_create_menus(s);
@@ -762,7 +762,6 @@ static void sdl2_display_early_init(DisplayOptions *o)
static void sdl2_display_init(DisplayState *ds, DisplayOptions *o)
{
uint8_t data = 0;
- char *filename;
int i;
SDL_SysWMinfo info;
@@ -837,15 +836,12 @@ static void sdl2_display_init(DisplayState *ds, DisplayOptions *o)
}
/* Load a 32x32x4 image. White pixels are transparent. */
- filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, "qemu-icon.bmp");
- if (filename) {
- SDL_Surface *image = SDL_LoadBMP(filename);
- if (image) {
- uint32_t colorkey = SDL_MapRGB(image->format, 255, 255, 255);
- SDL_SetColorKey(image, SDL_TRUE, colorkey);
- SDL_SetWindowIcon(sdl2_console[0].real_window, image);
- }
- g_free(filename);
+ SDL_Surface *image = SDL_LoadBMP(CONFIG_QEMU_ICONDIR
+ "/hicolor/32x32/apps/qemu.bmp");
+ if (image) {
+ uint32_t colorkey = SDL_MapRGB(image->format, 255, 255, 255);
+ SDL_SetColorKey(image, SDL_TRUE, colorkey);
+ SDL_SetWindowIcon(sdl2_console[0].real_window, image);
}
gui_grab = 0;
deleted file mode 100644
GIT binary patch
literal 0
HcmV?d00001
literal 630
zcmZ|ML1@!Z7zgmL>6nKq_KmVSmti*)gn{m0yeXRmMqy5|CLRZ(xt6igC%FvW!4&jR
z5Y{I>2opv>2uSg!3<82qBHKlfV8S|jvNTZCfv5Vts7F6|kN5k(@FnECcD<@VQdQc|
z(<=O3DHx&C|Ld*y3DW5_OkcbU<?05Un12uB_kV$Dn(+PS5e$bzn4F%4(b1F8>2yF<
zRmf(uu(IKUNUF)$t`Iq0pO9?i4*)W&wHE+I>C^P;Hb9rc8u6q2k~z7-F=Bn64w;*Y
zQ{*uKW#-(i85y*MXdZy_Cf2U@+J&Uub5M5TZ^o4<rj}oXn1|Uo{A{>kNWq9`>=Ogc
zKn$Z^Aya#%?DT^zql7YOLvb_H4^c~uVXx47bRk4Etvj3}y3woSV{w3*B~3win40Vd
zbZrs2jc)Jka)?`&W$C(nz>Qun2e_7)5*wrLRDkQ`A37Dsusem@()Xkn(d|6N?Hgok
zz$mcYubapdmj^7T+t{ijKO^rgYiL}uvDmOH?2k*@ZH~JlUtvcS7%S9*zZBvzXXE73
z<pE>-0sSw|_Q;2(>g6~MMdTMe*`VzE`BkE*SA1$vR()@ALR!3A+8Z**adJxuX^y8z
Z&cg*cELjbvI!`?IkCZfh^+R$cegj&c0K5PI
new file mode 100644
@@ -0,0 +1,13 @@
+
+# Regenerate bitmaps from the SVG using inkscape CLI export
+# and ImageMagick. Don't use ImageMagick for the initial
+# SVG conversion, since it merely calls inkscape, but uses
+# 96 DPI res resulting in poor quality output.
+
+regenerate:
+ for s in 16 24 32 48 64 128 256 512; \
+ do \
+ inkscape --without-gui --export-png=qemu_$${s}x$${s}.png \
+ --export-width=$$s --export-height=$$s qemu.svg ; \
+ done
+ convert qemu_32x32.png qemu_32x32.bmp
similarity index 100%
rename from pc-bios/qemu_logo_no_text.svg
rename to ui/icons/qemu.svg