mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-20 11:48:28 -06:00
Add code to register/unregister vm-added signal to stop consoles from spontaneously popping up
This commit is contained in:
parent
b346b8aa7f
commit
191d17e36a
@ -59,7 +59,7 @@ class vmmConnection(gobject.GObject):
|
||||
def get_vm(self, uuid):
|
||||
return self.vms[uuid]
|
||||
|
||||
def disconnect(self):
|
||||
def close(self):
|
||||
if self.vmm == None:
|
||||
return
|
||||
|
||||
@ -71,12 +71,14 @@ class vmmConnection(gobject.GObject):
|
||||
return self.hostinfo
|
||||
|
||||
def connect(self, name, callback):
|
||||
gobject.GObject.connect(self, name, callback)
|
||||
handle_id = gobject.GObject.connect(self, name, callback)
|
||||
|
||||
if name == "vm-added":
|
||||
for uuid in self.vms.keys():
|
||||
self.emit("vm-added", self.uri, uuid)
|
||||
|
||||
return handle_id
|
||||
|
||||
def host_memory_size(self):
|
||||
return self.hostinfo[1]*1024
|
||||
|
||||
|
@ -79,9 +79,9 @@ class vmmCreate(gobject.GObject):
|
||||
})
|
||||
|
||||
self.set_initial_state()
|
||||
self.connection.connect("vm-added", self.open_vm_console)
|
||||
|
||||
def show(self):
|
||||
self.vm_added_handle = self.connection.connect("vm-added", self.open_vm_console)
|
||||
self.topwin.show()
|
||||
|
||||
def _init_members(self):
|
||||
@ -99,6 +99,7 @@ class vmmCreate(gobject.GObject):
|
||||
self.startup_memory = 0
|
||||
self.vcpus = 1
|
||||
self.vm_uuid = None
|
||||
self.vm_added_handle = None
|
||||
|
||||
def set_initial_state(self):
|
||||
notebook = self.window.get_widget("create-pages")
|
||||
@ -264,6 +265,8 @@ class vmmCreate(gobject.GObject):
|
||||
self.window.get_widget("create-finish").show()
|
||||
|
||||
def close(self, ignore1=None,ignore2=None):
|
||||
self.connection.disconnect(int(self.vm_added_handle))
|
||||
self.vm_added_handle = None
|
||||
self.topwin.hide()
|
||||
return 1
|
||||
|
||||
@ -536,7 +539,6 @@ class vmmCreate(gobject.GObject):
|
||||
message_box.destroy()
|
||||
|
||||
def open_vm_console(self,ignore,uri,uuid):
|
||||
print "********* create.py: got vm-added signal. uuid = %s, self.vm_uuid = %s" % (uuid, self.vm_uuid)
|
||||
if uuid == self.vm_uuid:
|
||||
if (self.virt_method == VM_PARAVIRT):
|
||||
self.emit("action-show-terminal", self.connection.get_uri(), self.vm_uuid)
|
||||
|
@ -210,6 +210,7 @@ class vmmEngine:
|
||||
self.connections[uri]["windowManager"].show()
|
||||
|
||||
def show_create(self, uri):
|
||||
|
||||
if self.windowCreate == None:
|
||||
self.windowCreate = vmmCreate(self.get_config(), self.get_connection(uri, False))
|
||||
self.windowCreate.connect("action-show-console", self._do_show_console)
|
||||
|
@ -144,7 +144,7 @@ class vmmManager(gobject.GObject):
|
||||
win.present()
|
||||
|
||||
def close(self, src=None, src2=None):
|
||||
self.connection.disconnect()
|
||||
self.connection.close()
|
||||
win = self.window.get_widget("vmm-manager")
|
||||
win.hide()
|
||||
return 1
|
||||
|
Loading…
Reference in New Issue
Block a user