Subject: details: Fix changing graphics type (bz 1083903) From: Cole Robinson crobinso@redhat.com Thu Apr 3 10:53:54 2014 -0400 Date: Thu Apr 3 10:53:54 2014 -0400: Git: 932e6e00bb08647800a62e59f61c8adee9c5de59 And clean up the API usage to avoid these types of issues in the future. Index: virt-manager-1.0.1/virtManager/addhardware.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/addhardware.py +++ virt-manager-1.0.1/virtManager/addhardware.py @@ -905,12 +905,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 @@ -933,7 +933,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): @@ -1016,7 +1016,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"] Index: virt-manager-1.0.1/virtManager/create.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/create.py +++ virt-manager-1.0.1/virtManager/create.py @@ -940,8 +940,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") @@ -965,8 +965,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 @@ -1153,7 +1155,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 Index: virt-manager-1.0.1/virtManager/createinterface.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/createinterface.py +++ virt-manager-1.0.1/virtManager/createinterface.py @@ -775,7 +775,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() Index: virt-manager-1.0.1/virtManager/details.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/details.py +++ virt-manager-1.0.1/virtManager/details.py @@ -1109,7 +1109,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: @@ -1117,7 +1117,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() Index: virt-manager-1.0.1/virtManager/fsdetails.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/fsdetails.py +++ virt-manager-1.0.1/virtManager/fsdetails.py @@ -155,16 +155,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(): @@ -172,12 +172,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): Index: virt-manager-1.0.1/virtManager/gfxdetails.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/gfxdetails.py +++ virt-manager-1.0.1/virtManager/gfxdetails.py @@ -134,9 +134,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 Index: virt-manager-1.0.1/virtManager/manager.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/manager.py +++ virt-manager-1.0.1/virtManager/manager.py @@ -427,7 +427,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() Index: virt-manager-1.0.1/virtManager/migrate.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/migrate.py +++ virt-manager-1.0.1/virtManager/migrate.py @@ -184,7 +184,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.") @@ -212,7 +212,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] Index: virt-manager-1.0.1/virtManager/netlist.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/netlist.py +++ virt-manager-1.0.1/virtManager/netlist.py @@ -284,13 +284,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 @@ -472,9 +470,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 Index: virt-manager-1.0.1/virtManager/storagebrowse.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/storagebrowse.py +++ virt-manager-1.0.1/virtManager/storagebrowse.py @@ -221,7 +221,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: @@ -232,7 +232,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() Index: virt-manager-1.0.1/virtManager/uiutil.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/uiutil.py +++ virt-manager-1.0.1/virtManager/uiutil.py @@ -58,9 +58,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 @@ -145,7 +147,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():