Insert an item at the specified position in the list.

        :param position: The position to insert the item at
        :param item: The item to be added
        :param select: Whether the item should be selected after adding

def insert(self, position, item, select=False):
        """Insert an item at the specified position in the list.

        :param position: The position to insert the item at
        :param item: The item to be added
        :param select: Whether the item should be selected after adding
        """
        if item in self:
            raise ValueError("item %s already in list" % item)
        modeliter = self.model.insert(position, (item,))
        self._id_to_iter[id(item)] = modeliter
        if select:
            self.selected_item = item
        self.emit('item-inserted', item, position)