From 9d922f56df5bd0872795225eb987fe76780ccc6f Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Mon, 27 Jan 2014 11:03:59 -0500 Subject: [PATCH] fsdetails: Fix error reporting The UI file layout meant we were trying to use a gtk.Grid object as the error dialog parent. Rework things to behave like snapshots.py --- virtManager/addhardware.py | 14 +++++--------- virtManager/details.py | 17 +++++++---------- virtManager/fsdetails.py | 8 ++++++-- 3 files changed, 18 insertions(+), 21 deletions(-) diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py index 82ed7f7f..3dc13a72 100644 --- a/virtManager/addhardware.py +++ b/virtManager/addhardware.py @@ -72,6 +72,9 @@ class vmmAddHardware(vmmGObjectUI): self._dev = None + self.fsDetails = vmmFSDetails(vm, self.builder, self.topwin) + self.widget("fs-box").add(self.fsDetails.top_box) + self.builder.connect_signals({ "on_create_cancel_clicked" : self.close, "on_vmm_create_delete_event" : self.close, @@ -102,11 +105,6 @@ class vmmAddHardware(vmmGObjectUI): }) self.bind_escape_key_close() - self.fsDetails = vmmFSDetails(vm) - fsbox = self.widget("fs-box") - fsbox.add(self.fsDetails.topwin) - self.fsDetails.topwin.show_all() - self.set_initial_state() def show(self, parent): @@ -294,9 +292,6 @@ class vmmAddHardware(vmmGObjectUI): combo = self.widget("watchdog-action") self.build_watchdogaction_combo(self.vm, combo) - # Filesystem widgets - self.fsDetails.set_initial_state() - # Smartcard widgets combo = self.widget("smartcard-mode") self.build_smartcard_mode_combo(self.vm, combo) @@ -1856,7 +1851,8 @@ class vmmAddHardware(vmmGObjectUI): return self.err.val_err(_("Watchdog parameter error"), e) def validate_page_filesystem(self): - self.fsDetails.validate_page_filesystem() + if self.fsDetails.validate_page_filesystem() is False: + return False self._dev = self.fsDetails.get_dev() def validate_page_smartcard(self): diff --git a/virtManager/details.py b/virtManager/details.py index 6042f82e..27951e60 100644 --- a/virtManager/details.py +++ b/virtManager/details.py @@ -381,6 +381,11 @@ class vmmDetails(vmmGObjectUI): self.snapshots = vmmSnapshotPage(self.vm, self.builder, self.topwin) self.widget("snapshot-placeholder").add(self.snapshots.top_box) + self.fsDetails = vmmFSDetails(self.vm, self.builder, self.topwin) + self.widget("fs-alignment").add(self.fsDetails.top_box) + self.fsDetails.connect("changed", + lambda *x: self.enable_apply(x, EDIT_FS)) + # Set default window size w, h = self.vm.get_details_window_size() self.topwin.set_default_size(w or 800, h or 600) @@ -546,13 +551,6 @@ class vmmDetails(vmmGObjectUI): self.vm.connect("config-changed", self.refresh_vm_state) self.vm.connect("resources-sampled", self.refresh_resources) - self.fsDetails = vmmFSDetails(self.vm) - self.fsDetails.set_initial_state() - fsAlignment = self.widget("fs-alignment") - fsAlignment.add(self.fsDetails.topwin) - self.fsDetails.connect("changed", lambda *x: self.enable_apply(x, - EDIT_FS)) - self.populate_hw_list() self.repopulate_boot_list() @@ -593,8 +591,6 @@ class vmmDetails(vmmGObjectUI): if vis: return - self.fsDetails.topwin.show_all() - self.emit("details-opened") self.refresh_vm_state() @@ -2221,7 +2217,8 @@ class vmmDetails(vmmGObjectUI): ignore = add_hotplug if self.edited(EDIT_FS): - self.fsDetails.validate_page_filesystem() + if self.fsDetails.validate_page_filesystem() is False: + return False add_define(self.vm.define_filesystem, dev_id_info, self.fsDetails.get_dev()) diff --git a/virtManager/fsdetails.py b/virtManager/fsdetails.py index 1d1cd7b0..b4d991a2 100644 --- a/virtManager/fsdetails.py +++ b/virtManager/fsdetails.py @@ -36,8 +36,9 @@ class vmmFSDetails(vmmGObjectUI): "changed": (GObject.SignalFlags.RUN_FIRST, None, []) } - def __init__(self, vm): - vmmGObjectUI.__init__(self, "fsdetails.ui", "vmm-fs-details") + def __init__(self, vm, builder, topwin): + vmmGObjectUI.__init__(self, "fsdetails.ui", + None, builder=builder, topwin=topwin) self.vm = vm self.conn = vm.conn @@ -58,6 +59,9 @@ class vmmFSDetails(vmmGObjectUI): "on_fs_target_changed": self.notify_change, }) + self.set_initial_state() + self.top_box = self.widget("vmm-fs-details") + def _cleanup(self): self.vm = None self.conn = None