console: Properly implement cleanup()

This commit is contained in:
Cole Robinson 2011-04-13 10:45:10 -04:00
parent a3fd17575c
commit b76804a8a5
3 changed files with 17 additions and 10 deletions

View File

@ -234,7 +234,7 @@ class vmmConfig(object):
elif func_type == self._PEROBJ_FUNC_GET:
ret = pref_func()
elif func_type == self._PEROBJ_FUNC_LISTEN:
pref_func(value)
ret = pref_func(value)
finally:
self.conf_dir = oldconf
@ -256,7 +256,8 @@ class vmmConfig(object):
ret = pref_func()
return ret
def listen_pervm(self, uri, uuid, pref_func, cb):
self._pervm_helper(uri, uuid, pref_func, self._PEROBJ_FUNC_LISTEN, cb)
return self._pervm_helper(uri, uuid, pref_func,
self._PEROBJ_FUNC_LISTEN, cb)
def set_perconn(self, uri, pref_func, value):
self._perconn_helper(uri, pref_func, self._PEROBJ_FUNC_SET, value)
@ -267,7 +268,8 @@ class vmmConfig(object):
ret = pref_func()
return ret
def listen_perconn(self, uri, pref_func, cb):
self._perconn_helper(uri, pref_func, self._PEROBJ_FUNC_LISTEN, cb)
return self._perconn_helper(uri, pref_func,
self._PEROBJ_FUNC_LISTEN, cb)
def set_perhost(self, uri, pref_func, value):
self._perhost_helper(uri, pref_func, self._PEROBJ_FUNC_SET, value)
@ -278,7 +280,8 @@ class vmmConfig(object):
ret = pref_func()
return ret
def listen_perhost(self, uri, pref_func, cb):
self._perhost_helper(uri, pref_func, self._PEROBJ_FUNC_LISTEN, cb)
return self._perhost_helper(uri, pref_func,
self._PEROBJ_FUNC_LISTEN, cb)
def reconcile_vm_entries(self, uri, current_vms):
"""

View File

@ -502,13 +502,13 @@ class vmmConsolePages(vmmGObjectUI):
self.desktop_resolution = None
# Initialize display widget
self.scale_type = self.vm.get_console_scaling()
self.viewer = None
self.tunnels = None
self.viewerRetriesScheduled = 0
self.viewerRetryDelay = 125
self.viewer = None
self.viewer_connected = False
self.viewer_connecting = False
self.scale_type = self.vm.get_console_scaling()
finish_img = gtk.image_new_from_stock(gtk.STOCK_YES,
gtk.ICON_SIZE_BUTTON)
@ -523,11 +523,13 @@ class vmmConsolePages(vmmGObjectUI):
# Signals are added by vmmDetails. Don't use signal_autoconnect here
# or it changes will be overwritten
# Set console scaling
self.vm.on_console_scaling_changed(self.refresh_scaling)
self.add_gconf_handle(
self.vm.on_console_scaling_changed(self.refresh_scaling))
scroll = self.window.get_widget("console-vnc-scroll")
scroll.connect("size-allocate", self.scroll_size_allocate)
self.config.on_console_accels_changed(self.set_enable_accel)
self.add_gconf_handle(
self.config.on_console_accels_changed(self.set_enable_accel))
def is_visible(self):
if self.topwin.flags() & gtk.VISIBLE:
@ -537,6 +539,7 @@ class vmmConsolePages(vmmGObjectUI):
def cleanup(self):
vmmGObjectUI.cleanup(self)
self.vm = None
self.viewer = None
##########################
# Initialization helpers #

View File

@ -942,8 +942,9 @@ class vmmDomainBase(vmmLibvirtObject):
return self.config.get_pervm(self.connection.get_uri(), self.uuid,
self.config.get_console_scaling)
def on_console_scaling_changed(self, cb):
self.config.listen_pervm(self.connection.get_uri(), self.uuid,
self.config.on_console_scaling_changed, cb)
return self.config.listen_pervm(self.connection.get_uri(), self.uuid,
self.config.on_console_scaling_changed,
cb)
def set_details_window_size(self, w, h):
self.config.set_pervm(self.connection.get_uri(), self.uuid,