diff --git a/virt-manager.changes b/virt-manager.changes index 9f0a5e13..05daa160 100644 --- a/virt-manager.changes +++ b/virt-manager.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Aug 9 15:19:27 MDT 2012 - carnold@novell.com + +- Allow virt-install to be used for local installs via a pop-down + menu. + virtman-virtinstall.diff + ------------------------------------------------------------------- Tue Aug 7 09:21:50 MDT 2012 - carnold@novell.com diff --git a/virt-manager.spec b/virt-manager.spec index 13ae0526..3a074764 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -15,7 +15,6 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # - %define gsysconfdir /etc %define gconftool /usr/bin/gconftool-2 %define virtinst_maj 0 @@ -46,6 +45,7 @@ Patch63: virtman-eepro100.diff Patch64: virtman-qed.diff Patch65: virtman-update-backend.diff Patch66: virtman-slow-mouse.diff +Patch67: virtman-virtinstall.diff ExclusiveArch: %{ix86} x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-build %gconf_schemas_prereq @@ -110,6 +110,7 @@ Authors: %patch64 -p1 %patch65 -p1 %patch66 -p1 +%patch67 -p1 %build # autoreconf -i diff --git a/virtman-virtinstall.diff b/virtman-virtinstall.diff new file mode 100644 index 00000000..d15e6345 --- /dev/null +++ b/virtman-virtinstall.diff @@ -0,0 +1,132 @@ +Index: virt-manager-0.9.4/src/vmm-manager.ui +=================================================================== +--- virt-manager-0.9.4.orig/src/vmm-manager.ui ++++ virt-manager-0.9.4/src/vmm-manager.ui +@@ -293,7 +293,7 @@ + False + False + +- ++ + True + False + True +@@ -306,7 +306,6 @@ + + + False +- True + + + +Index: virt-manager-0.9.4/src/virtManager/manager.py +=================================================================== +--- virt-manager-0.9.4.orig/src/virtManager/manager.py ++++ virt-manager-0.9.4/src/virtManager/manager.py +@@ -260,7 +260,8 @@ class vmmManager(vmmGObjectUI): + self.config.is_vmlist_network_traffic_visible()) + + def init_toolbar(self): +- self.widget("vm-new").set_icon_name("vm_new") ++ uihelpers.build_new_button_menu(self.widget("vm-new"), ++ self.virtinstall_new_vm) + self.widget("vm-open").set_icon_name("icon_console") + uihelpers.build_shutdown_button_menu(self.widget("vm-shutdown"), + self.poweroff_vm, +@@ -506,6 +507,9 @@ class vmmManager(vmmGObjectUI): + def new_vm(self, src_ignore=None): + self.emit("action-show-create", self.current_conn_uri()) + ++ def virtinstall_new_vm(self, src_ignore=None): ++ self.emit("action-show-create-virtinstall", self.current_conn_uri()) ++ + def show_about(self, src_ignore): + self.emit("action-show-about") + +@@ -1228,6 +1232,7 @@ vmmManager.signal_new(vmmManager, "actio + vmmManager.signal_new(vmmManager, "action-show-host", [str]) + vmmManager.signal_new(vmmManager, "action-show-preferences", []) + vmmManager.signal_new(vmmManager, "action-show-create", [str]) ++vmmManager.signal_new(vmmManager, "action-show-create-virtinstall", [str]) + vmmManager.signal_new(vmmManager, "action-suspend-domain", [str, str]) + vmmManager.signal_new(vmmManager, "action-resume-domain", [str, str]) + vmmManager.signal_new(vmmManager, "action-run-domain", [str, str]) +Index: virt-manager-0.9.4/src/virtManager/uihelpers.py +=================================================================== +--- virt-manager-0.9.4.orig/src/virtManager/uihelpers.py ++++ virt-manager-0.9.4/src/virtManager/uihelpers.py +@@ -835,6 +835,24 @@ def mediadev_set_default_selection(widge + + + #################################################################### ++# Build toolbar new button menu (manager and details toolbar) # ++#################################################################### ++ ++def build_new_button_menu(widget, virtinstall_cb): ++ icon_name = util.running_config.get_new_icon_name() ++ widget.set_icon_name(icon_name) ++ menu = gtk.Menu() ++ widget.set_menu(menu) ++ ++ virtinstallimg = gtk.image_new_from_icon_name(icon_name, gtk.ICON_SIZE_MENU) ++ ++ virtinstall = gtk.ImageMenuItem(_("_Virt-install")) ++ virtinstall.set_image(virtinstallimg) ++ virtinstall.show() ++ virtinstall.connect("activate", virtinstall_cb) ++ menu.add(virtinstall) ++ ++#################################################################### + # Build toolbar shutdown button menu (manager and details toolbar) # + #################################################################### + +Index: virt-manager-0.9.4/src/virtManager/config.py +=================================================================== +--- virt-manager-0.9.4.orig/src/virtManager/config.py ++++ virt-manager-0.9.4/src/virtManager/config.py +@@ -149,6 +149,13 @@ class vmmConfig(object): + + # General app wide helpers (gconf agnostic) + ++ def get_new_icon_name(self): ++ theme = gtk.icon_theme_get_default() ++ iconname = "vm_new" ++ if theme.has_icon(iconname): ++ return iconname ++ return "media-record" ++ + def get_shutdown_icon_name(self): + theme = gtk.icon_theme_get_default() + iconname = "system-shutdown" +Index: virt-manager-0.9.4/src/virtManager/engine.py +=================================================================== +--- virt-manager-0.9.4.orig/src/virtManager/engine.py ++++ virt-manager-0.9.4/src/virtManager/engine.py +@@ -628,6 +628,7 @@ class vmmEngine(vmmGObject): + obj.connect("action-show-vm", self._do_show_vm) + obj.connect("action-show-preferences", self._do_show_preferences) + obj.connect("action-show-create", self._do_show_create) ++ obj.connect("action-show-create-virtinstall", self._do_show_create_virtinstall) + obj.connect("action-show-help", self._do_show_help) + obj.connect("action-show-about", self._do_show_about) + obj.connect("action-show-host", self._do_show_host) +@@ -674,14 +675,17 @@ class vmmEngine(vmmGObject): + def _vmmcreate_closing(self,signal,key): + self.windowCreate = None + +- def _do_show_create(self, src, uri): ++ def _do_show_create_virtinstall(self, src, uri): ++ self._do_show_create(src, uri, True) ++ ++ def _do_show_create(self, src, uri, use_virtinstall=False): + if uri is None: + uri = default_uri() + conn = self._lookup_conn(uri) + do_remote = conn.is_remote() + if self.windowCreate == None or do_remote != self.remote_install: + try: +- if do_remote: ++ if do_remote or use_virtinstall: + from virtManager.create import vmmCreate + create = vmmCreate(self) + create.connect("action-show-vm", self._do_show_vm)