Anec-notas (IV)

Parece contradictorio que durante las vacaciones esté publicando más posts sobre mi trabajo que durante los meses laborales, pero qué le vamos a hacer, la vida es así.

Esta entrada la quiero dedicar al Visual Studio, así que allá vamos.

Implementar el comando “touch”

Unos de esos comando de UNIX que siempre me han gustado es el touch (para los que no lo conozcan, este comando modifica la cabecera de un fichero actualizando su fecha de modificación, creando el archivo si éste no existiere). Windows no tiene un comando equivalente a primera mano. Buscando un poco me encontré que se puede emular usando

copy /b <fichero> +,,

Donde es el nombre del fichero a “tocar” (pueden usarse comodines). Una limitación de este comando es que el fichero debe estar en el mismo directorio que el activo desde donde se ejecuta el comando. Ejecutar el comando siguiente no funcionará correctamente sino que copiará el fichero al directorio actual.

copy /b ..\config\game.ini +,,

La línea correcta en ese caso sería

copy /b ..\config\game.ini +,, ..\config\game.ini

Ahora bien, ¿a qué todo esto en Visual Studio? Imaginemos el siguiente escenario: estamos utilizando Qt y tenemos una hoja de estilos definida en un fichero QSS (Qt Stylesheet), el cual está incluido como recurso en un fichero QRC. Este fichero se recompila únicamente cuando se ha modificado, no cuando se han modificado los ficheros que incluye. Por lo que si estamos modificando continuamente el fichero de estilos tendríamos que “modificar” el fichero QRC para que se recompilase. En este caso el comando touch es un gran aliado. Para automatizar esta tarea podemos recurrir a los “Build Events”, más específicamente al “Pre-Build Event”. Está ubicado en “Project Properties > Build Events > Pre-Build Event”, donde especificamos el comando a utilizar (el ampersand “&” es un separador de comandos para poder indicar varios comandos uno a continuación de otro):

cd Resources &amp; copy /b *.qrc +,,

Los “Build Events” sólo permiten ejecutar un único comando (línea), por lo que si queremos realizar varias tareas lo mejor será definir un fichero por lotes que las ejecute. Otro detalle a tener en cuenta es que los ficheros QRC pueden tardar cierto tiempo en compilarse si contienen muchos recursos, especialmente imágenes, por lo que es conveniente que este evento sólo esté presente en una configuración de proyecto, tal como la Debug, o crearnos una especial.

Detalles de usabilidad

Acá me gustaría criticar comentar un detalle en la pantalla de creación de nuevos proyectos.

Nuevo proyecto VS

Resulta que en los campos de “Nombre” y “Nombre de la solución”, este cuadro de diálogo comprueba si el texto introducido es ““, en cuyo caso desactiva el botón “OK”. Probad vosotros y borrad una letra para que veáis cómo podéis crear el proyecto. Re-escribid esa letra y el botón “OK” se desactivará. ¿Tantos avances que se han hecho en usabilidad y no podían usar la propiedad “placeholder” en este caso?

1 comment

Comments are closed.