mirror of
https://github.com/virt-manager/virt-manager.git
synced 2026-08-11 13:34:49 -05:00
Set parent for all dialogs
This commit is contained in:
@@ -157,8 +157,9 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
|
||||
return doc
|
||||
|
||||
def show(self):
|
||||
def show(self, parent):
|
||||
self.reset_state()
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def close(self, ignore1=None, ignore2=None):
|
||||
@@ -932,9 +933,10 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
|
||||
progWin = vmmAsyncJob(do_file_allocate,
|
||||
[self._dev],
|
||||
title=_("Creating Storage File"),
|
||||
text=_("Allocation of disk storage may take "
|
||||
"a few minutes to complete."))
|
||||
_("Creating Storage File"),
|
||||
_("Allocation of disk storage may take "
|
||||
"a few minutes to complete."),
|
||||
self.topwin)
|
||||
|
||||
return progWin.run()
|
||||
|
||||
@@ -1258,7 +1260,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
self.storage_browser.set_finish_cb(set_storage_cb)
|
||||
self.storage_browser.set_browse_reason(self.config.CONFIG_DIR_IMAGE)
|
||||
|
||||
self.storage_browser.show(conn)
|
||||
self.storage_browser.show(self.topwin, conn)
|
||||
|
||||
def show_help(self, src_ignore):
|
||||
# help to show depends on the notebook page, yahoo
|
||||
|
||||
@@ -54,7 +54,7 @@ def cb_wrapper(callback, asyncjob, *args, **kwargs):
|
||||
|
||||
def _simple_async(callback, args, title, text, parent, errorintro,
|
||||
show_progress):
|
||||
asyncjob = vmmAsyncJob(callback, args, title, text,
|
||||
asyncjob = vmmAsyncJob(callback, args, title, text, parent.topwin,
|
||||
show_progress=show_progress)
|
||||
error, details = asyncjob.run()
|
||||
if error is None:
|
||||
@@ -76,7 +76,7 @@ class vmmAsyncJob(vmmGObjectUI):
|
||||
_simple_async(callback, args, "", "", parent, errorintro, False)
|
||||
|
||||
|
||||
def __init__(self, callback, args, title, text,
|
||||
def __init__(self, callback, args, title, text, parent,
|
||||
run_main=True, show_progress=True,
|
||||
cancel_back=None, cancel_args=None):
|
||||
vmmGObjectUI.__init__(self, "vmm-progress.glade", "vmm-progress")
|
||||
@@ -98,6 +98,7 @@ class vmmAsyncJob(vmmGObjectUI):
|
||||
self.stage = self.window.get_widget("pbar-stage")
|
||||
self.pbar = self.window.get_widget("pbar")
|
||||
self.window.get_widget("pbar-text").set_text(text)
|
||||
self.topwin.set_transient_for(parent)
|
||||
|
||||
args = [self] + args
|
||||
self.bg_thread = asyncJobWorker(callback, args)
|
||||
|
||||
@@ -65,8 +65,9 @@ class vmmChooseCD(vmmGObjectUI):
|
||||
|
||||
return 1
|
||||
|
||||
def show(self):
|
||||
def show(self, parent):
|
||||
self.reset_state()
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.show()
|
||||
|
||||
def cleanup(self):
|
||||
@@ -166,6 +167,6 @@ class vmmChooseCD(vmmGObjectUI):
|
||||
self.set_storage_path)
|
||||
|
||||
self.storage_browser.set_browse_reason(self.config.CONFIG_DIR_MEDIA)
|
||||
self.storage_browser.show(self.conn)
|
||||
self.storage_browser.show(self.topwin, self.conn)
|
||||
|
||||
vmmGObjectUI.type_register(vmmChooseCD)
|
||||
|
||||
@@ -93,6 +93,7 @@ class vmmCloneVM(vmmGObjectUI):
|
||||
"on_change_mac_cancel_clicked" : self.change_mac_close,
|
||||
"on_change_mac_ok_clicked" : self.change_mac_finish,
|
||||
})
|
||||
self.change_mac.set_transient_for(self.topwin)
|
||||
|
||||
self.change_storage_window = gtk.glade.XML(self.gladefile,
|
||||
"vmm-change-storage",
|
||||
@@ -106,6 +107,7 @@ class vmmCloneVM(vmmGObjectUI):
|
||||
|
||||
"on_change_storage_browse_clicked" : self.change_storage_browse,
|
||||
})
|
||||
self.change_storage.set_transient_for(self.topwin)
|
||||
|
||||
self.window.signal_autoconnect({
|
||||
"on_clone_delete_event" : self.close,
|
||||
@@ -123,8 +125,9 @@ class vmmCloneVM(vmmGObjectUI):
|
||||
|
||||
self.set_initial_state()
|
||||
|
||||
def show(self):
|
||||
def show(self, parent):
|
||||
self.reset_state()
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def close(self, ignore1=None, ignore2=None):
|
||||
@@ -754,7 +757,7 @@ class vmmCloneVM(vmmGObjectUI):
|
||||
if self.clone_design.clone_devices:
|
||||
text = title + _(" and selected storage (this may take a while)")
|
||||
|
||||
progWin = vmmAsyncJob(self._async_clone, [], title, text)
|
||||
progWin = vmmAsyncJob(self._async_clone, [], title, text, self.topwin)
|
||||
error, details = progWin.run()
|
||||
|
||||
self.topwin.set_sensitive(True)
|
||||
@@ -799,7 +802,7 @@ class vmmCloneVM(vmmGObjectUI):
|
||||
self.storage_browser = vmmStorageBrowser(self.conn)
|
||||
self.storage_browser.connect("storage-browse-finish", callback)
|
||||
|
||||
self.storage_browser.show(self.conn)
|
||||
self.storage_browser.show(self.topwin, self.conn)
|
||||
|
||||
def show_help(self, ignore1=None):
|
||||
# Nothing yet
|
||||
|
||||
@@ -106,9 +106,10 @@ class vmmConnect(vmmGObjectUI):
|
||||
self.topwin.hide()
|
||||
self.stop_browse()
|
||||
|
||||
def show(self):
|
||||
self.topwin.present()
|
||||
def show(self, parent):
|
||||
self.reset_state()
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def set_initial_state(self):
|
||||
stock_img = gtk.image_new_from_stock(gtk.STOCK_CONNECT,
|
||||
|
||||
+11
-10
@@ -144,9 +144,10 @@ class vmmCreate(vmmGObjectUI):
|
||||
return True
|
||||
return False
|
||||
|
||||
def show(self, uri=None):
|
||||
def show(self, parent, uri=None):
|
||||
self.reset_state(uri)
|
||||
self.topwin.show()
|
||||
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def close(self, ignore1=None, ignore2=None):
|
||||
@@ -1617,7 +1618,6 @@ class vmmCreate(vmmGObjectUI):
|
||||
|
||||
|
||||
self.config_window = vmmDetails(virtinst_guest,
|
||||
self.engine,
|
||||
self.topwin)
|
||||
self.config_window_signal = self.config_window.connect(
|
||||
"details-closed",
|
||||
@@ -1627,12 +1627,13 @@ class vmmCreate(vmmGObjectUI):
|
||||
|
||||
def start_install(self, guest):
|
||||
progWin = vmmAsyncJob(self.do_install, [guest],
|
||||
title=_("Creating Virtual Machine"),
|
||||
text=_("The virtual machine is now being "
|
||||
"created. Allocation of disk storage "
|
||||
"and retrieval of the installation "
|
||||
"images may take a few minutes to "
|
||||
"complete."))
|
||||
_("Creating Virtual Machine"),
|
||||
_("The virtual machine is now being "
|
||||
"created. Allocation of disk storage "
|
||||
"and retrieval of the installation "
|
||||
"images may take a few minutes to "
|
||||
"complete."),
|
||||
self.topwin)
|
||||
error, details = progWin.run()
|
||||
|
||||
self.topwin.set_sensitive(True)
|
||||
@@ -1859,7 +1860,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.storage_browser.set_vm_name(self.get_config_name())
|
||||
self.storage_browser.set_finish_cb(callback)
|
||||
self.storage_browser.set_browse_reason(reason)
|
||||
self.storage_browser.show(self.conn)
|
||||
self.storage_browser.show(self.topwin, self.conn)
|
||||
|
||||
def show_help(self, ignore):
|
||||
# No help available yet.
|
||||
|
||||
@@ -80,6 +80,7 @@ class vmmCreateInterface(vmmGObjectUI):
|
||||
"on_bridge_config_delete_event": self.bridge_config_finish,
|
||||
"on_bridge_ok_clicked" : self.bridge_config_finish,
|
||||
})
|
||||
self.bridge_config.set_transient_for(self.topwin)
|
||||
|
||||
# Bond configuration dialog
|
||||
self.bond_config_win = gtk.glade.XML(self.gladefile,
|
||||
@@ -92,6 +93,7 @@ class vmmCreateInterface(vmmGObjectUI):
|
||||
|
||||
"on_bond_monitor_mode_changed": self.bond_monitor_mode_changed,
|
||||
})
|
||||
self.bond_config.set_transient_for(self.topwin)
|
||||
|
||||
self.ip_config_win = gtk.glade.XML(self.gladefile,
|
||||
"ip-config",
|
||||
@@ -109,6 +111,7 @@ class vmmCreateInterface(vmmGObjectUI):
|
||||
"on_ipv6_address_add_clicked": self.ipv6_address_add,
|
||||
"on_ipv6_address_remove_clicked": self.ipv6_address_remove,
|
||||
})
|
||||
self.ip_config.set_transient_for(self.topwin)
|
||||
|
||||
self.ip_manually_changed = False
|
||||
|
||||
@@ -131,8 +134,9 @@ class vmmCreateInterface(vmmGObjectUI):
|
||||
|
||||
self.set_initial_state()
|
||||
|
||||
def show(self):
|
||||
def show(self, parent):
|
||||
self.reset_state()
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def show_bond_config(self, src):
|
||||
@@ -1128,9 +1132,9 @@ class vmmCreateInterface(vmmGObjectUI):
|
||||
self.topwin.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
|
||||
|
||||
progWin = vmmAsyncJob(self.do_install, [activate],
|
||||
title=_("Creating virtual interface"),
|
||||
text=_("The virtual interface is now being "
|
||||
"created."))
|
||||
_("Creating virtual interface"),
|
||||
_("The virtual interface is now being created."),
|
||||
self.topwin)
|
||||
error, details = progWin.run()
|
||||
|
||||
self.topwin.set_sensitive(True)
|
||||
|
||||
@@ -71,8 +71,9 @@ class vmmCreateNetwork(vmmGObjectUI):
|
||||
|
||||
self.set_initial_state()
|
||||
|
||||
def show(self):
|
||||
def show(self, parent):
|
||||
self.reset_state()
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def is_visible(self):
|
||||
|
||||
@@ -103,8 +103,9 @@ class vmmCreatePool(vmmGObjectUI):
|
||||
|
||||
self.set_initial_state()
|
||||
|
||||
def show(self):
|
||||
def show(self, parent):
|
||||
self.reset_state()
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def close(self, ignore1=None, ignore2=None):
|
||||
@@ -399,9 +400,10 @@ class vmmCreatePool(vmmGObjectUI):
|
||||
self.topwin.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
|
||||
|
||||
progWin = vmmAsyncJob(self._async_pool_create, [],
|
||||
title=_("Creating storage pool..."),
|
||||
text=_("Creating the storage pool may take a "
|
||||
"while..."))
|
||||
_("Creating storage pool..."),
|
||||
_("Creating the storage pool may take a "
|
||||
"while..."),
|
||||
self.topwin)
|
||||
error, details = progWin.run()
|
||||
|
||||
self.topwin.set_sensitive(True)
|
||||
@@ -414,8 +416,7 @@ class vmmCreatePool(vmmGObjectUI):
|
||||
else:
|
||||
self.close()
|
||||
|
||||
def _async_pool_create(self, asyncjob, *args, **kwargs):
|
||||
print args, kwargs
|
||||
def _async_pool_create(self, asyncjob):
|
||||
newconn = None
|
||||
|
||||
# Open a seperate connection to install on since this is async
|
||||
@@ -427,7 +428,7 @@ class vmmCreatePool(vmmGObjectUI):
|
||||
build = self.window.get_widget("pool-build").get_active()
|
||||
poolobj = self._pool.install(create=True, meter=meter, build=build)
|
||||
poolobj.setAutostart(True)
|
||||
logging.debug("Pool creating succeeded.")
|
||||
logging.debug("Pool creation succeeded")
|
||||
|
||||
def page_changed(self, notebook_ignore, page_ignore, page_number):
|
||||
if page_number == PAGE_NAME:
|
||||
|
||||
@@ -75,8 +75,9 @@ class vmmCreateVolume(vmmGObjectUI):
|
||||
self.reset_state()
|
||||
|
||||
|
||||
def show(self):
|
||||
def show(self, parent):
|
||||
self.reset_state()
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def close(self, ignore1=None, ignore2=None):
|
||||
@@ -217,7 +218,8 @@ class vmmCreateVolume(vmmGObjectUI):
|
||||
progWin = vmmAsyncJob(self._async_vol_create, [],
|
||||
_("Creating storage volume..."),
|
||||
_("Creating the storage volume may take a "
|
||||
"while..."))
|
||||
"while..."),
|
||||
self.topwin)
|
||||
error, details = progWin.run()
|
||||
|
||||
self.topwin.set_sensitive(True)
|
||||
|
||||
@@ -70,11 +70,12 @@ class vmmDeleteDialog(vmmGObjectUI):
|
||||
self.window.get_widget("delete-storage-list").set_sensitive(dodel)
|
||||
|
||||
|
||||
def show(self, vm):
|
||||
def show(self, vm, parent):
|
||||
self.vm = vm
|
||||
self.conn = vm.get_connection()
|
||||
|
||||
self.reset_state()
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def close(self, ignore1=None, ignore2=None):
|
||||
@@ -139,7 +140,7 @@ class vmmDeleteDialog(vmmGObjectUI):
|
||||
text = title + _(" and selected storage (this may take a while)")
|
||||
|
||||
progWin = vmmAsyncJob(self._async_delete, [devs],
|
||||
title=title, text=text)
|
||||
title, text, self.topwin)
|
||||
error, details = progWin.run()
|
||||
|
||||
self.topwin.set_sensitive(True)
|
||||
|
||||
@@ -1207,7 +1207,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
if self.addhw is None:
|
||||
self.addhw = vmmAddHardware(self.vm)
|
||||
|
||||
self.addhw.show()
|
||||
self.addhw.show(self.topwin)
|
||||
except Exception, e:
|
||||
self.err.show_err((_("Error launching hardware dialog: %s") %
|
||||
str(e)))
|
||||
@@ -1430,7 +1430,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
|
||||
self.storage_browser.set_finish_cb(callback)
|
||||
self.storage_browser.set_browse_reason(reason)
|
||||
self.storage_browser.show(self.conn)
|
||||
self.storage_browser.show(self.topwin, self.conn)
|
||||
|
||||
def browse_kernel(self, src_ignore):
|
||||
def cb(ignore, path):
|
||||
@@ -1626,7 +1626,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
|
||||
dialog = self.media_choosers[devtype]
|
||||
dialog.dev_id_info = dev_id_info
|
||||
dialog.show()
|
||||
dialog.show(self.topwin)
|
||||
|
||||
##################################################
|
||||
# Details/Hardware config changes (apply button) #
|
||||
|
||||
@@ -94,7 +94,7 @@ def check_packagekit(errbox, packages, libvirt_packages):
|
||||
[session, pk_control, packages],
|
||||
_("Searching for available hypervisors..."),
|
||||
_("Searching for available hypervisors..."),
|
||||
run_main=False)
|
||||
None, run_main=False)
|
||||
error, ignore = progWin.run()
|
||||
if error:
|
||||
return
|
||||
@@ -639,7 +639,7 @@ class vmmEngine(vmmGObject):
|
||||
|
||||
def _do_show_preferences(self, src):
|
||||
try:
|
||||
self._get_preferences().show()
|
||||
self._get_preferences().show(src.topwin)
|
||||
except Exception, e:
|
||||
src.err.show_err(_("Error launching preferences: %s") % str(e))
|
||||
|
||||
@@ -681,7 +681,7 @@ class vmmEngine(vmmGObject):
|
||||
|
||||
def _do_show_connect(self, src):
|
||||
try:
|
||||
self._get_connect_dialog().show()
|
||||
self._get_connect_dialog().show(src.topwin)
|
||||
except Exception, e:
|
||||
src.err.show_err(_("Error launching connect dialog: %s") % str(e))
|
||||
|
||||
@@ -783,7 +783,7 @@ class vmmEngine(vmmGObject):
|
||||
|
||||
def _do_show_create(self, src, uri):
|
||||
try:
|
||||
self._get_create_dialog().show(uri)
|
||||
self._get_create_dialog().show(src.topwin, uri)
|
||||
except Exception, e:
|
||||
src.err.show_err(_("Error launching manager: %s") % str(e))
|
||||
|
||||
@@ -796,7 +796,7 @@ class vmmEngine(vmmGObject):
|
||||
self.windowMigrate = vmmMigrateDialog(vm, self)
|
||||
|
||||
self.windowMigrate.set_state(vm)
|
||||
self.windowMigrate.show()
|
||||
self.windowMigrate.show(src.topwin)
|
||||
except Exception, e:
|
||||
src.err.show_err(_("Error launching migrate dialog: %s") % str(e))
|
||||
|
||||
@@ -813,7 +813,7 @@ class vmmEngine(vmmGObject):
|
||||
else:
|
||||
clone_window.set_orig_vm(orig_vm)
|
||||
|
||||
clone_window.show()
|
||||
clone_window.show(src.topwin)
|
||||
except Exception, e:
|
||||
src.err.show_err(_("Error setting clone parameters: %s") % str(e))
|
||||
|
||||
@@ -899,6 +899,7 @@ class vmmEngine(vmmGObject):
|
||||
[vm, path],
|
||||
_("Saving Virtual Machine"),
|
||||
_("Saving virtual machine memory to disk "),
|
||||
src.topwin,
|
||||
cancel_back=_cancel_back,
|
||||
cancel_args=_cancel_args)
|
||||
error, details = progWin.run()
|
||||
@@ -949,7 +950,8 @@ class vmmEngine(vmmGObject):
|
||||
progWin = vmmAsyncJob(self._restore_saved_callback,
|
||||
[path, conn],
|
||||
_("Restoring Virtual Machine"),
|
||||
_("Restoring virtual machine memory from disk"))
|
||||
_("Restoring virtual machine memory from disk"),
|
||||
src.topwin)
|
||||
error, details = progWin.run()
|
||||
|
||||
if error is not None:
|
||||
|
||||
@@ -464,7 +464,7 @@ class vmmHost(vmmGObjectUI):
|
||||
try:
|
||||
if self.addnet is None:
|
||||
self.addnet = vmmCreateNetwork(self.conn)
|
||||
self.addnet.show()
|
||||
self.addnet.show(self.topwin)
|
||||
except Exception, e:
|
||||
self.err.show_err(_("Error launching network wizard: %s") % str(e))
|
||||
|
||||
@@ -697,7 +697,7 @@ class vmmHost(vmmGObjectUI):
|
||||
try:
|
||||
if self.addpool is None:
|
||||
self.addpool = vmmCreatePool(self.conn)
|
||||
self.addpool.show()
|
||||
self.addpool.show(self.topwin)
|
||||
except Exception, e:
|
||||
self.err.show_err(_("Error launching pool wizard: %s") % str(e))
|
||||
|
||||
@@ -714,7 +714,7 @@ class vmmHost(vmmGObjectUI):
|
||||
self.addvol.connect("vol-created", self.refresh_current_pool)
|
||||
else:
|
||||
self.addvol.set_parent_pool(pool)
|
||||
self.addvol.show()
|
||||
self.addvol.show(self.topwin)
|
||||
except Exception, e:
|
||||
self.err.show_err(_("Error launching volume wizard: %s") % str(e))
|
||||
|
||||
@@ -975,7 +975,7 @@ class vmmHost(vmmGObjectUI):
|
||||
try:
|
||||
if self.addinterface is None:
|
||||
self.addinterface = vmmCreateInterface(self.conn)
|
||||
self.addinterface.show()
|
||||
self.addinterface.show(self.topwin)
|
||||
except Exception, e:
|
||||
self.err.show_err(_("Error launching interface wizard: %s") %
|
||||
str(e))
|
||||
|
||||
@@ -630,7 +630,7 @@ class vmmManager(vmmGObjectUI):
|
||||
|
||||
if not self.delete_dialog:
|
||||
self.delete_dialog = vmmDeleteDialog()
|
||||
self.delete_dialog.show(vm)
|
||||
self.delete_dialog.show(vm, self.topwin)
|
||||
|
||||
def set_pause_state(self, state):
|
||||
src = self.window.get_widget("vm-pause")
|
||||
|
||||
@@ -82,9 +82,9 @@ class vmmMigrateDialog(vmmGObjectUI):
|
||||
|
||||
self.init_state()
|
||||
|
||||
def show(self):
|
||||
def show(self, parent):
|
||||
self.reset_state()
|
||||
self.topwin.show()
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def close(self, ignore1=None, ignore2=None):
|
||||
@@ -465,6 +465,7 @@ class vmmMigrateDialog(vmmGObjectUI):
|
||||
(_("Migrating VM '%s' from %s to %s. "
|
||||
"This may take awhile.") %
|
||||
(self.vm.get_name(), srchost, dsthost)),
|
||||
self.topwin,
|
||||
cancel_back=_cancel_back,
|
||||
cancel_args=_cancel_args)
|
||||
error, details = progWin.run()
|
||||
|
||||
@@ -102,7 +102,8 @@ class vmmPreferences(vmmGObjectUI):
|
||||
self.topwin.hide()
|
||||
return 1
|
||||
|
||||
def show(self):
|
||||
def show(self, parent):
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
#########################
|
||||
@@ -228,19 +229,26 @@ class vmmPreferences(vmmGObjectUI):
|
||||
|
||||
def change_grab_keys(self, src_ignore):
|
||||
dialog = gtk.Dialog(_("Configure grab key combination"),
|
||||
None,
|
||||
self.topwin,
|
||||
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
|
||||
(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
|
||||
gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
|
||||
label = gtk.Label(_("Please press desired grab key combination"))
|
||||
dialog.set_size_request(325, 160)
|
||||
(dialog.get_content_area()).add(
|
||||
gtk.Label(_("You can now define grab keys by pressing them.\n"
|
||||
"To confirm your selection please click OK button\n"
|
||||
"while you have desired keys pressed.")))
|
||||
dialog.set_default_size(325, 160)
|
||||
dialog.set_border_width(6)
|
||||
|
||||
(dialog.get_content_area()).add(label)
|
||||
defs = {'label': label, 'keysyms': []}
|
||||
infolabel = gtk.Label(
|
||||
_("You can now define grab keys by pressing them.\n"
|
||||
"To confirm your selection please click OK button\n"
|
||||
"while you have desired keys pressed."))
|
||||
keylabel = gtk.Label(_("Please press desired grab key combination"))
|
||||
|
||||
vbox = gtk.VBox()
|
||||
vbox.set_spacing(12)
|
||||
vbox.pack_start(infolabel, False, False)
|
||||
vbox.pack_start(keylabel, False, False)
|
||||
dialog.get_content_area().add(vbox)
|
||||
|
||||
defs = {'label': keylabel, 'keysyms': []}
|
||||
dialog.connect("key-press-event", self.grabkeys_dlg_press, defs)
|
||||
dialog.connect("key-release-event", self.grabkeys_dlg_release, defs)
|
||||
dialog.show_all()
|
||||
|
||||
@@ -32,7 +32,6 @@ from virtManager.baseclass import vmmGObjectUI
|
||||
|
||||
class vmmStorageBrowser(vmmGObjectUI):
|
||||
__gsignals__ = {
|
||||
#"vol-created": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, [])
|
||||
"storage-browse-finish": (gobject.SIGNAL_RUN_FIRST,
|
||||
gobject.TYPE_NONE, [str]),
|
||||
}
|
||||
@@ -76,8 +75,9 @@ class vmmStorageBrowser(vmmGObjectUI):
|
||||
|
||||
self.set_initial_state()
|
||||
|
||||
def show(self, conn=None):
|
||||
def show(self, parent, conn=None):
|
||||
self.reset_state(conn)
|
||||
self.topwin.set_transient_for(parent)
|
||||
self.topwin.present()
|
||||
|
||||
def close(self, ignore1=None, ignore2=None):
|
||||
@@ -275,7 +275,7 @@ class vmmStorageBrowser(vmmGObjectUI):
|
||||
self.addvol.set_parent_pool(pool)
|
||||
self.addvol.set_modal(True)
|
||||
self.addvol.set_name_hint(self.vm_name)
|
||||
self.addvol.show()
|
||||
self.addvol.show(self.topwin)
|
||||
except Exception, e:
|
||||
self.show_err(_("Error launching volume wizard: %s") % str(e))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user