def _iouDeviceEditSlot(self): """ Edits an IOU device. """ item = self.uiIOUDevicesTreeWidget.currentItem() if item: key = item.data(0, QtCore.Qt.UserRole) iou_device = self._iou_devices[key] dialog = ConfigurationDialog(iou_device["name"], iou_device, iouDeviceConfigurationPage(), parent=self) dialog.show() if dialog.exec_(): # update the icon Controller.instance().getSymbolIcon(iou_device["symbol"], qpartial(self._setItemIcon, item)) if iou_device["name"] != item.text(0): new_key = "{server}:{name}".format(server=iou_device["compute_id"], name=iou_device["name"]) if new_key in self._iou_devices: QtWidgets.QMessageBox.critical(self, "IOU device", "IOU device name {} already exists for server {}".format(iou_device["name"], iou_device["compute_id"])) iou_device["name"] = item.text(0) return self._iou_devices[new_key] = self._iou_devices[key] del self._iou_devices[key] item.setText(0, iou_device["name"]) item.setData(0, QtCore.Qt.UserRole, new_key) self._refreshInfo(dialog.settings())