From d602b5f38bec855a6b1f37c5e5ef20668b915516 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Wed, 4 Nov 2009 08:46:09 -0500 Subject: [PATCH] details: Allow changing clock offset value. --- src/virtManager/details.py | 11 ++++++++--- src/virtManager/domain.py | 15 +++++++++++++++ src/vmm-details.glade | 1 + 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/virtManager/details.py b/src/virtManager/details.py index 6b965d334..f93be8358 100644 --- a/src/virtManager/details.py +++ b/src/virtManager/details.py @@ -175,6 +175,7 @@ class vmmDetails(gobject.GObject): "on_overview_acpi_changed": self.config_enable_apply, "on_overview_apic_changed": self.config_enable_apply, + "on_overview_clock_changed": self.config_enable_apply, "on_config_vcpus_changed": self.config_vcpus_changed, "on_config_memory_changed": self.config_memory_changed, "on_config_maxmem_changed": self.config_maxmem_changed, @@ -343,9 +344,6 @@ class vmmDetails(gobject.GObject): graph_table.attach(self.network_traffic_graph, 1, 2, 3, 4) def init_details(self): - # Disable all 'machine details' options since we don't yet allow edit - self.window.get_widget("overview-clock-combo").set_sensitive(False) - # Hardware list # [ label, icon name, icon size, hw type, hw data ] hw_list_model = gtk.ListStore(str, str, int, int, @@ -922,6 +920,11 @@ class vmmDetails(gobject.GObject): # Machine details enable_acpi = self.window.get_widget("overview-acpi").get_active() enable_apic = self.window.get_widget("overview-apic").get_active() + clock_combo = self.window.get_widget("overview-clock-combo") + if clock_combo.get_property("visible"): + clock = clock_combo.get_model()[clock_combo.get_active()][0] + else: + clock = self.window.get_widget("overview-clock-label").get_text() # Security combo = self.window.get_widget("security-model") @@ -940,9 +943,11 @@ class vmmDetails(gobject.GObject): return self._change_config_helper([self.vm.define_acpi, self.vm.define_apic, + self.vm.define_clock, self.vm.define_seclabel], [(enable_acpi,), (enable_apic,), + (clock,), (semodel, setype, selabel)]) # CPUs diff --git a/src/virtManager/domain.py b/src/virtManager/domain.py index 7d056ff24..8245d592e 100644 --- a/src/virtManager/domain.py +++ b/src/virtManager/domain.py @@ -603,6 +603,21 @@ class vmmDomain(gobject.GObject): return self.redefine(self._change_features_helper, "apic", do_enable) + def define_clock(self, newclock): + if newclock == self.get_clock(): + return + + def change_clock(doc, ctx, newclock): + clock_node = ctx.xpathEval("/domain/clock") + clock_node = (clock_node and clock_node[0] or None) + + if clock_node: + clock_node.setProp("offset", newclock) + + return doc.serialize() + + return self.redefine(util.xml_parse_wrapper, change_clock, newclock) + ######################## # End XML Altering API # ######################## diff --git a/src/vmm-details.glade b/src/vmm-details.glade index 7a8894e7c..4e5200f98 100644 --- a/src/vmm-details.glade +++ b/src/vmm-details.glade @@ -1259,6 +1259,7 @@ True + False