'Shift all buttons starting at index `start` by `count` cells.'

def __shiftGrid(self, start, count=1):

    button_count = self.layout().count()
    direction = (1 if (count >= 0) else (-1))
    if (direction == 1):
        (start, end) = ((button_count - 1), (start - 1))
    else:
        (start, end) = (start, button_count)
    for index in range(start, end, (- direction)):
        item = self.layout().itemAtPosition((index / self.__columns), (index % self.__columns))
        if item:
            button = item.widget()
            new_index = (index + count)
            self.layout().addWidget(button, (new_index / self.__columns), (new_index % self.__columns), (Qt.AlignLeft | Qt.AlignTop))
