def removeSegment(self, line: pg.InfiniteLine, modify_track=True): index = self.segments.index(line) # would be silly to remove beginning or end line if index == 0 or index == len(self.segments) - 1: return label = self.names[index] self.segments.remove(line) self.names.remove(label) self.vb.removeItem(line) self.vb.removeItem(label) if modify_track: self.track.delete_merge_left(index) self.calcPartitionNamePlacement(self.names[index - 1], index - 1, emit_signal=False) self.updateBounds(self.segments[index - 1], index - 1) self.updateBounds(self.segments[index], index) if modify_track: self.item.delete_segment.emit(index) line.deleteLater() label.deleteLater()