Make 'Escape' key close dialogs
We should get this for free by using gtk Dialogs for our various UI pieces, however the stock dialog is pretty restrictive WRT widget spacing, and prevents us from make our nice blue header, so we are stuck with gtk.Windows
This commit is contained in:
parent
287ad90a90
commit
352affbe3a
|
@ -30,7 +30,7 @@ import gtk.glade
|
|||
import virtinst
|
||||
from virtinst import VirtualCharDevice, VirtualDevice, VirtualVideoDevice
|
||||
|
||||
import virtManager.util as vmmutil
|
||||
import virtManager.util as util
|
||||
import virtManager.uihelpers as uihelpers
|
||||
from virtManager.asyncjob import vmmAsyncJob
|
||||
from virtManager.error import vmmErrorDialog
|
||||
|
@ -132,6 +132,7 @@ class vmmAddHardware(gobject.GObject):
|
|||
"char_bind_host_focus_in": (self.update_doc, "bind_host"),
|
||||
"char_telnet_focus_in": (self.update_doc, "protocol"),
|
||||
})
|
||||
util.bind_escape_key_close(self)
|
||||
|
||||
# XXX: Help docs useless/out of date
|
||||
self.window.get_widget("create-help").hide()
|
||||
|
@ -344,7 +345,7 @@ class vmmAddHardware(gobject.GObject):
|
|||
error = self.vm.get_connection().netdev_error
|
||||
if error:
|
||||
net_warn.show()
|
||||
vmmutil.tooltip_wrapper(net_warn, error)
|
||||
util.tooltip_wrapper(net_warn, error)
|
||||
else:
|
||||
net_warn.hide()
|
||||
|
||||
|
@ -1108,7 +1109,7 @@ class vmmAddHardware(gobject.GObject):
|
|||
# If creating disk via storage API, we need to thread
|
||||
# off a new connection
|
||||
if disk.vol_install:
|
||||
newconn = vmmutil.dup_lib_conn(self.config, disk.conn)
|
||||
newconn = util.dup_lib_conn(self.config, disk.conn)
|
||||
disk.conn = newconn
|
||||
logging.debug("Starting background file allocate process")
|
||||
disk.setup(meter)
|
||||
|
@ -1172,8 +1173,8 @@ class vmmAddHardware(gobject.GObject):
|
|||
|
||||
try:
|
||||
if (os.path.dirname(os.path.abspath(path)) ==
|
||||
vmmutil.DEFAULT_POOL_PATH):
|
||||
vmmutil.build_default_pool(self.vm.get_connection().vmm)
|
||||
util.DEFAULT_POOL_PATH):
|
||||
util.build_default_pool(self.vm.get_connection().vmm)
|
||||
|
||||
self._dev = virtinst.VirtualDisk(self.get_config_disk_image(),
|
||||
filesize,
|
||||
|
|
|
@ -128,6 +128,7 @@ class vmmCloneVM(gobject.GObject):
|
|||
"on_clone_ok_clicked" : self.finish,
|
||||
"on_clone_help_clicked" : self.show_help,
|
||||
})
|
||||
util.bind_escape_key_close(self)
|
||||
|
||||
# XXX: Help docs useless/out of date
|
||||
self.window.get_widget("clone-help").hide()
|
||||
|
|
|
@ -134,6 +134,7 @@ class vmmCreate(gobject.GObject):
|
|||
"on_config_hv_changed": self.hv_changed,
|
||||
"on_config_arch_changed": self.arch_changed,
|
||||
})
|
||||
util.bind_escape_key_close(self)
|
||||
|
||||
self.set_initial_state()
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ import logging
|
|||
import re
|
||||
import traceback
|
||||
|
||||
import virtManager.util as util
|
||||
from virtManager.IPy import IP
|
||||
from virtManager.network import vmmNetwork
|
||||
from virtManager.error import vmmErrorDialog
|
||||
|
@ -70,6 +71,7 @@ class vmmCreateNetwork(gobject.GObject):
|
|||
"on_net_dhcp_end_changed": self.change_dhcp_end,
|
||||
"on_create_help_clicked": self.show_help,
|
||||
})
|
||||
util.bind_escape_key_close(self)
|
||||
|
||||
# XXX: Help docs useless/out of date
|
||||
self.window.get_widget("create-help").hide()
|
||||
|
|
|
@ -104,6 +104,7 @@ class vmmCreatePool(gobject.GObject):
|
|||
"pool-info2"),
|
||||
"on_pool_build_focus_in_event": (self.update_build_doc)
|
||||
})
|
||||
util.bind_escape_key_close(self)
|
||||
|
||||
# XXX: Help docs useless/out of date
|
||||
self.window.get_widget("pool-help").hide()
|
||||
|
|
|
@ -67,6 +67,7 @@ class vmmCreateVolume(gobject.GObject):
|
|||
"on_vol_allocation_value_changed" : self.vol_allocation_changed,
|
||||
"on_vol_capacity_value_changed" : self.vol_capacity_changed,
|
||||
})
|
||||
util.bind_escape_key_close(self)
|
||||
|
||||
format_list = self.window.get_widget("vol-format")
|
||||
format_model = gtk.ListStore(str, str)
|
||||
|
|
|
@ -68,6 +68,7 @@ class vmmDeleteDialog(gobject.GObject):
|
|||
"on_delete_ok_clicked" : self.finish,
|
||||
"on_delete_remove_storage_toggled" : self.toggle_remove_storage,
|
||||
})
|
||||
util.bind_escape_key_close(self)
|
||||
|
||||
image = gtk.image_new_from_icon_name("vm_delete_wizard",
|
||||
gtk.ICON_SIZE_DIALOG)
|
||||
|
|
|
@ -79,6 +79,7 @@ class vmmMigrateDialog(gobject.GObject):
|
|||
"on_migrate_set_interface_toggled" : self.toggle_set_interface,
|
||||
"on_migrate_set_port_toggled" : self.toggle_set_port,
|
||||
})
|
||||
util.bind_escape_key_close(self)
|
||||
|
||||
blue = gtk.gdk.color_parse("#0072A8")
|
||||
self.window.get_widget("migrate-header").modify_bg(gtk.STATE_NORMAL,
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
import gtk.glade
|
||||
import gobject
|
||||
|
||||
import virtManager.util as util
|
||||
|
||||
PREFS_PAGE_STATS = 0
|
||||
PREFS_PAGE_VM_PREFS = 1
|
||||
|
||||
|
@ -87,6 +89,7 @@ class vmmPreferences(gobject.GObject):
|
|||
"on_prefs_confirm_pause_toggled": self.change_confirm_pause,
|
||||
"on_prefs_confirm_removedev_toggled": self.change_confirm_removedev,
|
||||
})
|
||||
util.bind_escape_key_close(self)
|
||||
|
||||
# XXX: Help docs useless/out of date
|
||||
self.window.get_widget("prefs-help").hide()
|
||||
|
|
|
@ -77,7 +77,7 @@ class vmmStorageBrowser(gobject.GObject):
|
|||
"on_choose_volume_clicked" : self.finish,
|
||||
"on_vol_list_row_activated" : self.finish,
|
||||
})
|
||||
|
||||
util.bind_escape_key_close(self)
|
||||
|
||||
finish_img = gtk.image_new_from_stock(gtk.STOCK_NEW,
|
||||
gtk.ICON_SIZE_BUTTON)
|
||||
|
|
|
@ -254,3 +254,10 @@ def uuidstr(rawuuid):
|
|||
if i == 3 or i == 5 or i == 7 or i == 9:
|
||||
uuid.append('-')
|
||||
return "".join(uuid)
|
||||
|
||||
def bind_escape_key_close(vmmobj):
|
||||
def close_on_escape(src, event):
|
||||
if gtk.gdk.keyval_name(event.keyval) == "Escape":
|
||||
vmmobj.close()
|
||||
|
||||
vmmobj.topwin.connect("key-press-event", close_on_escape)
|
||||
|
|
Loading…
Reference in New Issue