Exemplo n.º 1
0
    def rowCount(self, index=QtCore.QModelIndex()):
        item = self._get_item(index)

        if item is None:
            return self.root.children_count

        return item.children_count
Exemplo n.º 2
0
    def index(self, row, column, parent=QtCore.QModelIndex()):
        if column != 0:
            return QtCore.QModelIndex()

        if not parent.isValid():
            parent_item = self.root
        else:
            parent_item = self._get_item(parent)
            if parent_item is None:
                return QtCore.QModelIndex()

        child_item = parent_item.child(row)
        if child_item:
            return self._make_index(row, column, child_item)
        else:
            return QtCore.QModelIndex()
Exemplo n.º 3
0
    def parent(self, index=None):

        if index is None:  # overloaded QtCore.QObject.parent()
            return QtCore.QObject.parent(self)

        item = self._get_item(index)
        if item is None:
            return QtCore.QModelIndex()

        return self._make_index(item.row, item.column, item.parent)
Exemplo n.º 4
0
    def move_artist(self, artist, row):
        """Move an artist before the entry in row

        Row could be the end of the list (-> put it at the end)
        """
        if len(self.artists) < 2:  # can't rearrange lenght 0 or 1 list
            return

        try:
            loc = self.artists.index(artist)
        except ValueError:
            return

        dest = row
        if not self.beginMoveRows(QtCore.QModelIndex(), loc, loc,
                                  QtCore.QModelIndex(), dest):
            return
        if dest >= loc:
            row -= 1
        self.artists.pop(loc)
        self.artists.insert(row, artist)
        self._update_zorder()
        self.endMoveRows()
Exemplo n.º 5
0
 def add_artist(self, row, artist):
     """Add a new artist"""
     self.beginInsertRows(QtCore.QModelIndex(), row, row)
     self.artists.insert(row, artist)
     self.endInsertRows()
     self.rowsInserted.emit(self.index(row), row, row)
Exemplo n.º 6
0
 def flags(self, index=QtCore.QModelIndex()):
     item = self._get_item(index)
     if item is None:
         return Qt.NoItemFlags
     else:
         return item.flags