From 932e6e00bb08647800a62e59f61c8adee9c5de59 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Thu, 3 Apr 2014 10:53:54 -0400 Subject: [PATCH] details: Fix changing graphics type (bz 1083903) And clean up the API usage to avoid these types of issues in the future. --- virtManager/addhardware.py | 8 ++++---- virtManager/create.py | 13 ++++++++----- virtManager/createinterface.py | 2 +- virtManager/details.py | 4 ++-- virtManager/fsdetails.py | 20 ++++++++++---------- virtManager/gfxdetails.py | 4 ++-- virtManager/manager.py | 2 +- virtManager/migrate.py | 4 ++-- virtManager/netlist.py | 10 ++++------ virtManager/storagebrowse.py | 4 ++-- virtManager/uiutil.py | 8 +++++--- 11 files changed, 41 insertions(+), 38 deletions(-) diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py index 092ff377..bd999cc2 100644 --- a/virtManager/addhardware.py +++ b/virtManager/addhardware.py @@ -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"] diff --git a/virtManager/create.py b/virtManager/create.py index 3189e4c2..0757f948 100644 --- a/virtManager/create.py +++ b/virtManager/create.py @@ -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 diff --git a/virtManager/createinterface.py b/virtManager/createinterface.py index bed94706..8368a998 100644 --- a/virtManager/createinterface.py +++ b/virtManager/createinterface.py @@ -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() diff --git a/virtManager/details.py b/virtManager/details.py index 998d64a2..3c3a3d2c 100644 --- a/virtManager/details.py +++ b/virtManager/details.py @@ -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() diff --git a/virtManager/fsdetails.py b/virtManager/fsdetails.py index eab5eb6e..aa20c2bb 100644 --- a/virtManager/fsdetails.py +++ b/virtManager/fsdetails.py @@ -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): diff --git a/virtManager/gfxdetails.py b/virtManager/gfxdetails.py index ff46ae3c..3d5d8771 100644 --- a/virtManager/gfxdetails.py +++ b/virtManager/gfxdetails.py @@ -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 diff --git a/virtManager/manager.py b/virtManager/manager.py index 601537af..1b54b026 100644 --- a/virtManager/manager.py +++ b/virtManager/manager.py @@ -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() diff --git a/virtManager/migrate.py b/virtManager/migrate.py index 4c425627..1fd91fce 100644 --- a/virtManager/migrate.py +++ b/virtManager/migrate.py @@ -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] diff --git a/virtManager/netlist.py b/virtManager/netlist.py index c689dd63..044319b8 100644 --- a/virtManager/netlist.py +++ b/virtManager/netlist.py @@ -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 diff --git a/virtManager/storagebrowse.py b/virtManager/storagebrowse.py index 79cbda36..129f2dfe 100644 --- a/virtManager/storagebrowse.py +++ b/virtManager/storagebrowse.py @@ -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() diff --git a/virtManager/uiutil.py b/virtManager/uiutil.py index fd4e3834..8abab375 100644 --- a/virtManager/uiutil.py +++ b/virtManager/uiutil.py @@ -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():