diff --git a/src/virtManager/config.py b/src/virtManager/config.py index feadfcad9..d39ccdd8b 100644 --- a/src/virtManager/config.py +++ b/src/virtManager/config.py @@ -348,10 +348,10 @@ class vmmConfig: def on_console_scaling_changed(self, callback): self.conf.notify_add(self.conf_dir + "/console/scaling", callback) def get_console_scaling(self): - console_pref = self.conf.get_int(self.conf_dir + "/console/scaling") - if console_pref == None: - console_pref = 0 - return console_pref + ret = self.conf.get(self.conf_dir + "/console/scaling") + if ret != None: + ret = ret.get_int() + return ret def set_console_scaling(self, pref): self.conf.set_int(self.conf_dir + "/console/scaling", pref) diff --git a/src/virtManager/details.py b/src/virtManager/details.py index a1083b01a..b9729eee3 100644 --- a/src/virtManager/details.py +++ b/src/virtManager/details.py @@ -222,12 +222,9 @@ class vmmDetails(gobject.GObject): self.vncViewer.set_keyboard_grab(False) self.vncViewer.set_pointer_grab(True) - self.scale_type = self.config.get_console_scaling() - - self.window.get_widget("details-menu-view-scale-always").set_active(self.scale_type == self.config.CONSOLE_SCALE_ALWAYS) - self.window.get_widget("details-menu-view-scale-never").set_active(self.scale_type == self.config.CONSOLE_SCALE_NEVER) - self.window.get_widget("details-menu-view-scale-fullscreen").set_active(self.scale_type == self.config.CONSOLE_SCALE_FULLSCREEN) - self.update_scaling() + self.scale_type = self.vm.get_console_scaling() + self.vm.on_console_scaling_changed(self.refresh_scaling) + self.refresh_scaling() self.vncViewer.connect("vnc-pointer-grab", self.notify_grabbed) self.vncViewer.connect("vnc-pointer-ungrab", self.notify_ungrabbed) @@ -432,6 +429,15 @@ class vmmDetails(gobject.GObject): else: self.vncViewer.set_keyboard_grab(False) + def refresh_scaling(self,ignore1=None, ignore2=None, ignore3=None, + ignore4=None): + self.scale_type = self.vm.get_console_scaling() + self.window.get_widget("details-menu-view-scale-always").set_active(self.scale_type == self.config.CONSOLE_SCALE_ALWAYS) + self.window.get_widget("details-menu-view-scale-never").set_active(self.scale_type == self.config.CONSOLE_SCALE_NEVER) + self.window.get_widget("details-menu-view-scale-fullscreen").set_active(self.scale_type == self.config.CONSOLE_SCALE_FULLSCREEN) + + self.update_scaling() + def set_scale_type(self, src): if not src.get_active(): return @@ -443,6 +449,7 @@ class vmmDetails(gobject.GObject): elif src == self.window.get_widget("details-menu-view-scale-never"): self.scale_type = self.config.CONSOLE_SCALE_NEVER + self.vm.set_console_scaling(self.scale_type) self.update_scaling() def update_scaling(self): diff --git a/src/virtManager/domain.py b/src/virtManager/domain.py index b2a43685a..f78bc4e17 100644 --- a/src/virtManager/domain.py +++ b/src/virtManager/domain.py @@ -203,6 +203,18 @@ class vmmDomain(gobject.GObject): self.lastStatus = status self.emit("status-changed", status) + # GConf specific wranglings + def set_console_scaling(self, value): + self.config.set_pervm(self.connection.get_uri(), self.uuid, + self.config.set_console_scaling, value) + def get_console_scaling(self): + 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) + + def _sample_mem_stats_dummy(self, ignore): return 0, 0 diff --git a/src/virtManager/preferences.py b/src/virtManager/preferences.py index be56a7a75..8ca97387d 100644 --- a/src/virtManager/preferences.py +++ b/src/virtManager/preferences.py @@ -103,7 +103,10 @@ class vmmPreferences(gobject.GObject): self.window.get_widget("prefs-console-keygrab").set_active(self.config.get_console_keygrab()) def refresh_console_scaling(self,ignore1=None,ignore2=None,ignore3=None, ignore4=None): - self.window.get_widget("prefs-console-scaling").set_active(self.config.get_console_scaling()) + val = self.config.get_console_scaling() + if val == None: + val = 0 + self.window.get_widget("prefs-console-scaling").set_active(val) def refresh_sound_local(self, ignore1=None, ignore2=None, ignore=None, ignore4=None):