def addLayer(self, layer): item = LayersItem(layer) list_item = QListWidgetItem() list_item.setSizeHint(item.sizeHint()) list_item.pos = layer.pos new_pos = len(self.layers) - layer.pos self.list.insertItem(new_pos, list_item) self.list.setItemWidget(list_item, item) self.layers.insert(new_pos, item) self.list.setCurrentRow(new_pos) self.image.current_layer = layer