virt-manager/virtman-manager.diff

37 lines
1.8 KiB
Diff

Index: virt-manager-0.8.0/src/virtManager/manager.py
===================================================================
--- virt-manager-0.8.0.orig/src/virtManager/manager.py
+++ virt-manager-0.8.0/src/virtManager/manager.py
@@ -624,6 +624,15 @@ class vmmManager(gobject.GObject):
vmlist = self.window.get_widget("vm-list")
selection = vmlist.get_selection()
active = selection.get_selected()
+ if active[1] == None and active[0] != None:
+ # in some cases on vhost, the connection is not being selected at startup.
+ # when creating new vms, if current_connection() returns None, several
+ # functions will fail, so if the user hasn't selected a connection, default
+ # to the first connection in the list.
+ first = active[0].get_iter_first()
+ if first != None:
+ selection.select_iter( first )
+ active = selection.get_selected()
if active[1] != None:
parent = active[0].iter_parent(active[1])
# return the connection of the currently selected vm, or the
@@ -769,7 +778,14 @@ class vmmManager(gobject.GObject):
return False
def new_vm(self, ignore=None):
- self.emit("action-show-create", self.current_connection_uri())
+ conn = self.current_connection()
+ if conn.get_state() == vmmConnection.STATE_ACTIVE:
+ self.emit("action-show-create", self.current_connection_uri())
+ else:
+ message_box = gtk.MessageDialog( None, gtk.DIALOG_MODAL, gtk.MESSAGE_WARNING, gtk.BUTTONS_OK,
+ _("Must select an active connection before creating a Virtual Machine") )
+ message_box.run()
+ message_box.destroy()
def delete_vm(self, ignore=None):
conn = self.current_connection()