'Move the current index by rows, columns.'

def moveCurrent(self, rows, columns=0):

    if (self.__view is not None):
        view = self.__view
        model = view.model()
        curr = view.currentIndex()
        (curr_row, curr_col) = (curr.row(), curr.column())
        sign = (1 if (rows >= 0) else (-1))
        row = (curr_row + rows)
        row_count = model.rowCount()
        for i in range(row_count):
            index = model.index(((row + (sign * i)) % row_count), 0)
            if (index.flags() & Qt.ItemIsEnabled):
                view.setCurrentIndex(index)
                break
