Exemplo n.º 1
0
    def lessThan(self, left, right):
        # cpu and mem
        if left.column() in [3, 4]:
            if left.data(Qt.UserRole + 1) is None or right.data(Qt.UserRole + 1) is None:
                return QSortFilterProxyModel.lessThan(self, left, right)
            return left.data(Qt.UserRole + 1) < right.data(Qt.UserRole + 1)

        return QSortFilterProxyModel.lessThan(self, left, right)
Exemplo n.º 2
0
    def lessThan(self, left, right):
        if left.column() == 1: # size
            return left.data(USER_ROLE_SIZE) < right.data(USER_ROLE_SIZE)
        elif left.column() == 2: # last modified
            return left.data(USER_ROLE_LAST_MODIFIED) < right.data(USER_ROLE_LAST_MODIFIED)

        return QSortFilterProxyModel.lessThan(self, left, right)
Exemplo n.º 3
0
    def lessThan(self, left, right):
        if left.column() != 2: # position
            return QSortFilterProxyModel.lessThan(self, left, right)

        # Sort letters before digits, so that Bricklets connected to a
        # Master Brick are shown before Bricks stacked on the Master.
        # Also sort extensions after letters (i.e Bricks), so they are shown last.
        # Also sort slave stacks, having position 0, (i.e. from a RS485 Extension)
        # behind Bricks stacked on the Master.
        def get_sort_key(data):
            if len(data) == 0: # Put empty string before everything
                return 0

            diff = ord('z') - ord('0') + 1 # Put digits after letters

            if data.isdigit(): # Swap 0 behind 1-9
                if data == '0':
                    diff += 9
                else:
                    diff -= 1

            if 'Ext' in data:
                diff += 10 # Put digits of extensions after normal digits
                data = data[3:]
            return ord(data) + (diff if data.isdigit() else 0)

        # Compare by name if the position is the same
        if get_sort_key(left.data()) == get_sort_key(right.data()):
            return left.sibling(left.row(), 0).data() < right.sibling(right.row(), 0).data()

        return get_sort_key(left.data()) < get_sort_key(right.data())
Exemplo n.º 4
0
    def lessThan(self, left, right):
        if left.column() != 2:  # position
            return QSortFilterProxyModel.lessThan(self, left, right)

        # Sort letters before digits, so that Bricklets connected to a
        # Master Brick are shown before Bricks stacked on the Master.
        # Also sort extensions after letters (i.e Bricks), so they are shown last.
        # Also sort slave stacks, having position 0, (i.e. from a RS485 Extension)
        # behind Bricks stacked on the Master.
        def get_sort_key(data):
            if len(data) == 0:  # Put empty string before everything
                return 0

            diff = ord('z') - ord('0') + 1  # Put digits after letters

            if data.isdigit():  # Swap 0 behind 1-9
                if data == '0':
                    diff += 9
                else:
                    diff -= 1

            if 'Ext' in data:
                diff += 10  # Put digits of extensions after normal digits
                data = data[3:]
            return ord(data) + (diff if data.isdigit() else 0)

        # Compare by name if the position is the same
        if get_sort_key(left.data()) == get_sort_key(right.data()):
            return left.sibling(left.row(), 0).data() < right.sibling(
                right.row(), 0).data()

        return get_sort_key(left.data()) < get_sort_key(right.data())
Exemplo n.º 5
0
    def lessThan(self, left, right):
        if left.column() == 1:  # size
            return left.data(USER_ROLE_SIZE) < right.data(USER_ROLE_SIZE)
        elif left.column() == 2:  # last modified
            return left.data(USER_ROLE_LAST_MODIFIED) < right.data(
                USER_ROLE_LAST_MODIFIED)

        return QSortFilterProxyModel.lessThan(self, left, right)
Exemplo n.º 6
0
    def lessThan(self, Left, Right):
        row = Left.row()
        otherRow = Right.row()

        for i in self.sortBy:
            r = QSortFilterProxyModel.lessThan(self,
                                               Left.sibling(Left.row(), i),
                                               Right.sibling(Right.row(), i))
            if r:
                return r

        return r
 def lessThan(self, left, right):
     return QSortFilterProxyModel.lessThan(self, left, right)
Exemplo n.º 8
0
    def lessThan(self, left, right):
        if left.column() == 1: # size
            return left.data(USER_ROLE_SIZE) < right.data(USER_ROLE_SIZE)

        return QSortFilterProxyModel.lessThan(self, left, right)
Exemplo n.º 9
0
    def lessThan(self, left, right):
        if left.column() == 1: # size
            return left.data(USER_ROLE_SIZE) < right.data(USER_ROLE_SIZE)

        return QSortFilterProxyModel.lessThan(self, left, right)