details: Make sure aborted pause op doesn't leave UI inconsistent

This commit is contained in:
Cole Robinson 2011-04-14 12:25:51 -04:00
parent 845e6aa57e
commit 3a3057b52b

View File

@ -1145,13 +1145,7 @@ class vmmDetails(vmmGObjectUI):
self.window.get_widget("control-pause").set_sensitive(stop)
self.window.get_widget("details-menu-pause").set_sensitive(stop)
# Set pause widget states
try:
self.ignorePause = True
self.window.get_widget("control-pause").set_active(paused)
self.window.get_widget("details-menu-pause").set_active(paused)
finally:
self.ignorePause = False
self.set_pause_state(paused)
self.window.get_widget("overview-name").set_editable(not active)
@ -1220,11 +1214,20 @@ class vmmDetails(vmmGObjectUI):
devtype = info.virtual_device_type
self.remove_device(devtype, info)
def set_pause_state(self, paused):
# Set pause widget states
try:
self.ignorePause = True
self.window.get_widget("control-pause").set_active(paused)
self.window.get_widget("details-menu-pause").set_active(paused)
finally:
self.ignorePause = False
def control_vm_pause(self, src):
if self.ignorePause:
return
if src.get_active():
if not self.vm.is_paused():
self.emit("action-suspend-domain",
self.vm.get_connection().get_uri(),
self.vm.get_uuid())
@ -1233,6 +1236,9 @@ class vmmDetails(vmmGObjectUI):
self.vm.get_connection().get_uri(),
self.vm.get_uuid())
# Let state handler listener change things if necc.
self.set_pause_state(not src.get_active())
def control_vm_run(self, src_ignore):
self.emit("action-run-domain",
self.vm.get_connection().get_uri(), self.vm.get_uuid())