El historial de deshacer

abril 5, 2007

Implemnetar la capacidad de deshacer en una aplicación tampoco parece, en principio, demasiado complicado, si se tiene la aplicación diseñada a base de comandos como es el caso de konqueror. Simplemente se guardan los comandos en una pila y ya está. El problema viene cuando tan pronto como tocamos con la realidad.

Resulta que konqueror permite tener varias instancias de sí mismas en ejecución, pero comparten un historial de deshacer entre ellas. Por ejemplo, arrastramos de una ventana a otra un fichero. Desde ambas (y desde cualquier otra) es posible deshacer ésta acción. Esta característica es típica en los administradores de archivos. Pero resulta que las “pestañas cerradas recientemente” son propias de cada ventana. Además, dependiendo de la vista en que se esté, solo se podrán deshacer un tipo de comandos u otro. Es decir, en la vista de navegador web no puede deshacerse la creación de pestañas.

Toda ésta parafernalia viene como resultado de que konqueror sea una aplicación extremadamente versatil y sirva tanto para administrar ficheros como de navegador web. En KDE4 el administrador de ficheros por defecto será dolphin, pero Konqueror seguirá siendo tan flexible como ahora.

A éste cóctel, añadir que resulta que Qt ahora implementa unas serie de clases específicas para manejar la pila de deshacer, y que nos gustaría poder usar. Pero no permite acceder ni eliminar cualquier elemento de la pila, sólo el que está encima del todo. He mandado un reporte de error a la gente de Qt para que subsanen ese problemilla.

De todo esto y más cosas he estado charlando ésta tarde con David Faure por IRC hoy, uno de los principales desarrolladores de KDE. Debido a que no está nada claro el tema, aun no se ha incluído el parche que mandé a la lista de desarrollo 😉

Anuncios

Parche en las puertas de KDE

abril 3, 2007

La semana pasada fue infernal. Estuve intentando por todos los medios compilar KDE y menos mal que al final lo conseguí. Después de eso me he pasado muchas horas intentando arreglar el desguisado que teníamos montado con las pestañas recientemente cerradas: la integración en el historial de deshacer fallaba por algún lado. Usé el kdbg para intentar depurar el error pero finalmente he optado por reimplementarlo de una manera diferente y por fin funciona.

Un parche totalmente funcional y que yo sepa sin errores está disponible ahora mismo en la forja. He hablado por IRC con David Faure que es quien mueve los hilos en Konqueror y le he mostrado el parche, le he explicado lo que llevo hecho, y hemos quedado en que realice un mero cambio estético en el código y que luego lo enviaría a la lista de desarrollo de konqueror. El parche ha pasado muchas revisiones, y se encuentra listo, a un paso de traspasar a las puertas del juzgado celestial que permite la entrada en trunk.