Eliminar una línea / bloque de QTextEdit

Estoy luchando con la eliminación de bloque / línea deQTextEdit. El código a continuación debería (?) Funcionar pero termina en un bucle infinito por alguna razón desconocida para mí. Tengo la sospecha de quenext() yprevious() no son bienvenidos siQTextDocument esta siendo editado

<code>QTextBlock block = document()->begin();
while (block.isValid()) {
    if (to_do_or_not_to_do(block)) {
        QTextCursor cursor(block);
        cursor.select(QTextCursor::BlockUnderCursor);
        cursor.removeSelectedText();
    }
    block = block.next();
}
</code>

Iterando usandoQTextDocument::findBlockByNumber() y eliminar el bloque de la misma manera que arriba tampoco funcionó.

Apreciaría si alguien pudiera indicarme la dirección correcta sobre cómo recorrer todos los bloques y eliminarlos si es necesario.

PD
En mi caso particular, un bloque = una línea.
Qt 4.6.2, Ubuntu 10.04 x64

Respuestas a la pregunta(1)

Su respuesta a la pregunta