mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-03-12 20:58:28 +03:00
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:
parent
ee6a541167
commit
932e6e00bb
@ -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"]
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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):
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
||||
|
@ -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()
|
||||
|
@ -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():
|
||||
|
Loading…
x
Reference in New Issue
Block a user