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
This commit is contained in:
Cole Robinson 2014-01-27 11:03:59 -05:00
parent 889ec18031
commit 9d922f56df
3 changed files with 18 additions and 21 deletions

View File

@ -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):

View File

@ -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())

View File

@ -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