A raíz de otro tema donde Tincho referencia un viejo post del foro antiguo donde presentaba una serie de controles propios para manejo de bases de datos, compruebo que el gusanillo del foro sigue vivo en mi vieja cabeza y no me resisto a traeros el programa en el que estoy trabajando y que es una nueva versión de uno que los foreros antiguos conocerán: el Soprano (Sólo Otro Programa de Recursos y Ayuda al NOvelista).
Ante todo permitidme daros la paliza con un poco de historia (es como funcionamos los viejos):
De toda la vida he aspirado a escribir ficción pero la vida laboral no me daba ni tiempo ni estado mental suficiente para ello. No recuerdo el año, pero hace ya mucho, cayó en mis manos un programa (IWriter, creo que se llamaba, aunque lo he googleado y así se llama hoy una plataforma de no sé qué servicio web) enfocado a escribir ficción. Era para windows, pero me encantó. No encontré entonces un equivalente en Linux por lo que, para eso soy programador, decidí hacer un clon y lo llamé Soprano.
Aquél clon (no recuerdo si llegué a subirlo al foro) nunca llegó a funcionar bien, pero me dejó la espinita clavada para siempre. Luego aparecieron otros programas, como scribener también para windows y considerado el mejor en su clase, bibisco, y manusKript (versión linux de scribener). El enfoque que le daban al tema me gustó mucho más que el del viejo iWriter, y abandoné mi querido Soprano para utilizar manusKript. Sin embargo, aún siendo mucho mejor que mi Soprano, tenía los problemas que todo software que no es tuyo tiene: las actualizaciones eran muy lentas y las modificaciones sugeridas se perdían en colas de espera eternas. Dos soluciones tenía, o aprendía Python para hacer mi propia versión, cosa inaceptable, o me hacía mi programa en gambas imitando manusKript que a su vez imitaba a scribener.
Con eso nació la siguiente versión de Soprano, que inicié en mis últimos años de vida laboral y que terminé nada más jubilarme y con el que escribí mis primeros proyectos de ficción. Pero no todo el monte es orégano. El uso del nuevo programa y el desarrollo de mis hábitos y maneras de escribir me demostró que había un montón de "features" que le había añadido al programa sólo porque otros programas lo tenías y quedaba chulo, además, pero que luego nunca llegué a utilizar.
Jubilado como estoy me dije: Estoy jubilado. Tengo tiempo. Hago otro. (Nadie dijo que mis conversaciones conmigo mismo sean inteligentes) y así nació el que ahora os traigo.
Es mucho más simple, tanto en su apariencia como en su funcionamiento. No maneja bases de datos, no utiliza controles propios, salvo el editor de texto basado en richText, que es lo mismo que decir html y que he mantenido como control independiente por si algún día quiero utilizarlo en algún otro sitio (este editor puede ser la única parte que os interese como programadores, supongo).
Este era el Soprano anterior:
y este es el nuevo:
Como veis, nada de iconitos, montones de opciones desaparecidas, nada de barras de desplazamientos de colorines ni iconos en las listas, etc. etc. El aspecto del nuevo es absolutamente sobrio porque tanta cosita puesta en lugar de ayudarme me distraía. De casi 11.000 líneas de código lo he dejado en menos de 5.000
No está terminado. Aún me surgen fallos y cuelgues... pero bueno, supongo que ya está presentable en sociedad.
Las características básicas son:
Abandono por primera vez mi querido control de workspaces y utilizo las ventanas independientes.
No utilizo controles propios (salvo el editor) y no utilizo bases de datos, sólo la clase Settings, de la que se maneja un archivo de propiedades generales del programa y otro archivo propio de cada proyecto con sus propiedades específicas.
No utilizo json ni webview para las estadísticas. Sólo la clase gb.chart de gambas, que es algo limitada pero me vale para lo que quiero. Tenía diseñados unos logos pero me cansé de ellos y he puesto un icono muy naif (pillado en la web) y una foto de mi antigua máquina de escribir, con la que aprendí a teclear hace más de cuarenta años.
No os cuento más para no hacer ésto eterno. Luego pondré otro post específico sobre el control rtEditor, que es quizá lo único que os pueda interesar.
Saludos
P.D.: En principio había colgado aquí el código fuente, pero dados todos los cambios que podéis ir siguiendo en este hilo, mejor que aquél que tenga algún interés, se pase por
https://gitlab.com/shordi/soprano Ahí siempre tendréis a mano la última versión... y por supuesto se aceptan colaboraciones y mejoras.