File virtman-manager.diff of Package virt-manager

Index: virt-manager-0.8.1/src/virtManager/manager.py
===================================================================
--- virt-manager-0.8.1.orig/src/virtManager/manager.py
+++ virt-manager-0.8.1/src/virtManager/manager.py
@@ -529,7 +529,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()
         treestore, treeiter = active
         if treeiter != None:
             return treestore[treeiter]
@@ -583,7 +591,14 @@ class vmmManager(gobject.GObject):
         self.emit("action-show-connect")
 
     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 show_about(self, src):
         self.emit("action-show-about")