'Delete current line'

def delete_line(self):

    cursor = self.textCursor()
    if self.has_selected_text():
        self.extend_selection_to_complete_lines()
        (start_pos, end_pos) = (cursor.selectionStart(), cursor.selectionEnd())
        cursor.setPosition(start_pos)
    else:
        start_pos = end_pos = cursor.position()
    cursor.beginEditBlock()
    cursor.setPosition(start_pos)
    cursor.movePosition(QTextCursor.StartOfBlock)
    while (cursor.position() <= end_pos):
        cursor.movePosition(QTextCursor.EndOfBlock, QTextCursor.KeepAnchor)
        if cursor.atEnd():
            break
        cursor.movePosition(QTextCursor.NextBlock, QTextCursor.KeepAnchor)
    cursor.removeSelectedText()
    cursor.endEditBlock()
    self.ensureCursorVisible()
