details: Fix changing graphics type (bz 1083903)

And clean up the API usage to avoid these types of issues in the future.
This commit is contained in:
Cole Robinson 2014-04-03 10:53:54 -04:00
parent ee6a541167
commit 932e6e00bb
11 changed files with 41 additions and 38 deletions

View File

@ -904,12 +904,12 @@ class vmmAddHardware(vmmGObjectUI):
# Input getters
def get_config_input(self):
row = uiutil.get_list_selection(self.widget("input-type"))
row = uiutil.get_list_selection(self.widget("input-type"), None)
return row[1], row[2]
# Network getters
def get_config_net_model(self):
return uiutil.get_list_selection(self.widget("net-model"))[0]
return uiutil.get_list_selection(self.widget("net-model"), 0)
def get_config_macaddr(self):
macaddr = None
@ -932,7 +932,7 @@ class vmmAddHardware(vmmGObjectUI):
return usb_info
def get_config_host_device_info(self):
return uiutil.get_list_selection(self.widget("host-device"))
return uiutil.get_list_selection(self.widget("host-device"), None)
# Video Getters
def get_config_video_model(self):
@ -1015,7 +1015,7 @@ class vmmAddHardware(vmmGObjectUI):
uiutil.set_list_selection(self.widget("hw-list"), page)
def get_hw_selection(self):
return uiutil.get_list_selection(self.widget("hw-list"))
return uiutil.get_list_selection(self.widget("hw-list"), None)
def update_char_device_type_model(self):
stable_blacklist = ["pipe", "udp"]

View File

@ -946,8 +946,8 @@ class vmmCreate(vmmGObjectUI):
return self.widget("create-vm-name").get_text()
def get_config_machine(self):
return uiutil.get_list_selection(self.widget("config-machine"),
rowindex=0, check_visible=True)
return uiutil.get_list_selection(self.widget("config-machine"), 0,
check_visible=True)
def is_install_page(self):
notebook = self.widget("create-pages")
@ -971,8 +971,10 @@ class vmmCreate(vmmGObjectUI):
return INSTALL_PAGE_CONTAINER_OS
def get_config_os_info(self):
drow = uiutil.get_list_selection(self.widget("install-os-type"))
vrow = uiutil.get_list_selection(self.widget("install-os-version"))
drow = uiutil.get_list_selection(
self.widget("install-os-type"), None)
vrow = uiutil.get_list_selection(
self.widget("install-os-version"), None)
distro = None
dlabel = None
variant = None
@ -1159,7 +1161,8 @@ class vmmCreate(vmmGObjectUI):
self.detect_media_os()
def _selected_os_row(self):
return uiutil.get_list_selection(self.widget("install-os-type"))
return uiutil.get_list_selection(
self.widget("install-os-type"), None)
def change_os_type(self, box):
ignore = box

View File

@ -773,7 +773,7 @@ class vmmCreateInterface(vmmGObjectUI):
is_manual = self.widget("ip-do-manual").get_active()
copy_row = uiutil.get_list_selection(
self.widget("ip-copy-interface-combo"))
self.widget("ip-copy-interface-combo"), None)
v4_mode = self.widget("ipv4-mode").get_active()
v4_addr = self.widget("ipv4-address").get_text()

View File

@ -1107,7 +1107,7 @@ class vmmDetails(vmmGObjectUI):
self.widget("toolbar-box").hide()
def get_boot_selection(self):
return uiutil.get_list_selection(self.widget("config-boot-list"))
return uiutil.get_list_selection(self.widget("config-boot-list"), None)
def set_hw_selection(self, page, disable_apply=True):
if disable_apply:
@ -1115,7 +1115,7 @@ class vmmDetails(vmmGObjectUI):
uiutil.set_list_selection(self.widget("hw-list"), page)
def get_hw_row(self):
return uiutil.get_list_selection(self.widget("hw-list"))
return uiutil.get_list_selection(self.widget("hw-list"), None)
def get_hw_selection(self, field):
row = self.get_hw_row()

View File

@ -153,16 +153,16 @@ class vmmFSDetails(vmmGObjectUI):
return self._dev
def get_config_fs_mode(self):
return uiutil.get_list_selection(self.widget("fs-mode-combo"),
rowindex=0, check_visible=True)
return uiutil.get_list_selection(self.widget("fs-mode-combo"), 0,
check_visible=True)
def get_config_fs_wrpolicy(self):
return uiutil.get_list_selection(self.widget("fs-wrpolicy-combo"),
rowindex=0, check_visible=True)
return uiutil.get_list_selection(self.widget("fs-wrpolicy-combo"), 0,
check_visible=True)
def get_config_fs_type(self):
return uiutil.get_list_selection(self.widget("fs-type-combo"),
rowindex=0, check_visible=True)
return uiutil.get_list_selection(self.widget("fs-type-combo"), 0,
check_visible=True)
def get_config_fs_readonly(self):
if not self.widget("fs-readonly").is_visible():
@ -170,12 +170,12 @@ class vmmFSDetails(vmmGObjectUI):
return self.widget("fs-readonly").get_active()
def get_config_fs_driver(self):
return uiutil.get_list_selection(self.widget("fs-driver-combo"),
rowindex=0, check_visible=True)
return uiutil.get_list_selection(self.widget("fs-driver-combo"), 0,
check_visible=True)
def get_config_fs_format(self):
return uiutil.get_list_selection(self.widget("fs-format-combo"),
rowindex=0, check_visible=True)
return uiutil.get_list_selection(self.widget("fs-format-combo"), 0,
check_visible=True)
# Setters
def set_dev(self, dev):

View File

@ -132,9 +132,9 @@ class vmmGraphicsDetails(vmmGObjectUI):
self.widget("graphics-password-chk").set_active(False)
def get_values(self):
gtype = uiutil.get_list_selection(self.widget("graphics-type"))
gtype = uiutil.get_list_selection(self.widget("graphics-type"), 0)
port, tlsport = self._get_config_graphics_ports()
addr = uiutil.get_list_selection(self.widget("graphics-address"))
addr = uiutil.get_list_selection(self.widget("graphics-address"), 0)
keymap = uiutil.get_combo_entry(self.widget("graphics-keymap"))
if keymap == "auto":
keymap = None

View File

@ -425,7 +425,7 @@ class vmmManager(vmmGObjectUI):
##################
def current_row(self):
return uiutil.get_list_selection(self.widget("vm-list"))
return uiutil.get_list_selection(self.widget("vm-list"), None)
def current_vm(self):
row = self.current_row()

View File

@ -182,7 +182,7 @@ class vmmMigrateDialog(vmmGObjectUI):
self.reset_state()
def destconn_changed(self, src):
row = uiutil.get_list_selection(src)
row = uiutil.get_list_selection(src, None)
tooltip = ""
if row:
tooltip = _("A valid destination connection must be selected.")
@ -210,7 +210,7 @@ class vmmMigrateDialog(vmmGObjectUI):
self.widget("migrate-port").set_sensitive(enable)
def get_config_destconn(self):
row = uiutil.get_list_selection(self.widget("migrate-dest"))
row = uiutil.get_list_selection(self.widget("migrate-dest"), None)
if not row or not row[2]:
return None
return row[1]

View File

@ -282,13 +282,11 @@ class vmmNetworkList(vmmGObjectUI):
###############
def get_network_row(self):
return uiutil.get_list_selection(self.widget("net-source"))
return uiutil.get_list_selection(self.widget("net-source"), None)
def get_network_selection(self):
net_list = self.widget("net-source")
bridge_entry = self.widget("net-bridge-name")
row = uiutil.get_list_selection(net_list)
row = self.get_network_row()
if not row:
return None, None, None
@ -470,9 +468,9 @@ class vmmNetworkList(vmmGObjectUI):
return
def _on_net_source_changed(self, src):
ignore = src
self._emit_changed()
row = uiutil.get_list_selection(src)
row = self.get_network_row()
if not row:
return

View File

@ -219,7 +219,7 @@ class vmmStorageBrowser(vmmGObjectUI):
return data["enable_create"]
def current_pool(self):
row = uiutil.get_list_selection(self.widget("pool-list"))
row = uiutil.get_list_selection(self.widget("pool-list"), None)
if not row:
return
try:
@ -230,7 +230,7 @@ class vmmStorageBrowser(vmmGObjectUI):
def current_vol_row(self):
if not self.current_pool():
return
return uiutil.get_list_selection(self.widget("vol-list"))
return uiutil.get_list_selection(self.widget("vol-list"), None)
def current_vol(self):
pool = self.current_pool()

View File

@ -56,9 +56,11 @@ def spin_get_helper(widget):
return adj.get_value()
def get_list_selection(widget, rowindex=None, check_visible=False):
def get_list_selection(widget, rowindex, check_visible=False):
"""
Helper to simplify getting the selected row in a list/tree/combo
Helper to simplify getting the selected row and value in a list/tree/combo
If rowindex is None, return the whole row.
"""
if check_visible and not widget.get_visible():
return None
@ -143,7 +145,7 @@ def get_combo_entry(combo, rowidx=0):
Helper to get the value specified in a combo box, with or
without and entry
"""
row = get_list_selection(combo)
row = get_list_selection(combo, None)
if row:
return row[rowidx]
if not combo.get_has_entry():