tincho   27-06-2023, 22:46
#1
Hola crustáceos.

A raíz de un hilo de Alberto sobre los SVG me puse a programar un ejemplo que al final terminó llevándome mas días de lo previsto.
El caso es que, aprovechando que Linux ya tiene una forma de ordenar los iconos, los listé y me puse a contrastarlos con los que usa gambas (Stock)
No me gusta Stock es complicar la cosa, así que hice otro sistema pero respetando el estándar de Linux, luego, ya que estaba, hice un método que pone Dark o Light el formulario sin tener en cuenta el tema de escritorio.
Aquí le muestro el resultado:

[Imagen: 6LHBtMw.gif]

Dejé de lado los PNG ya que Shordi hizo un programa para eso, yo me dediqué a los SVG.
Archivos adjuntos
.gz
icon-svg-chiaroscuro-0.0.2.tar.gz (Tamaño: 42.69 KB Descargas: 6)
Última modificación: 01-09-2023, 14:38 por tincho.

1 Saludo.
Shordi   28-06-2023, 10:18
#2
¿Y el código?

Big Grin Big Grin

No podemos regresar
tincho   28-06-2023, 11:25
#3
(28-06-2023, 10:18)Shordi escribió: ¿Y el código?

Jeje, lo estoy poniendo a punto para poder usarlo para "buscar" iconos, en un toque lo subo Big Grin

Ahí esta, subí el código.
Puede que funcione como buscador de iconos del sistema para los programas, pero seguramente sera de utilidad a aquellos que deseen trabajar con iconos SVG y cambiar el aspecto del formulario en tiempo de ejecución.

Nota: El programa trabaja con los sets de iconos SVG como Papirus, Adwaita, Elementary etc. Luego en  /tmp/icons.json se creara una lista json de todos los iconos SVG instalados en el sistema.
Última modificación: 28-06-2023, 12:18 por tincho.

1 Saludo.
tercoide   28-06-2023, 12:21
#4
muy interesante che, y con eso se puede "robar" iconos del sistema para nuestros programas?

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
tincho   28-06-2023, 12:31
#5
(28-06-2023, 12:21)tercoide escribió: y con eso se puede "robar" iconos del sistema para nuestros programas?

Si, esa es la idea, ya que siempre hay una parte de los iconos que son comunes, como abrir un archivo o imprimir, entonces al icono del programa le pones el .Tag = "actions/document-print" por ejemplo, y eso permite que luego puedas cambiar el "Skin" del programa en tiempo de ejecución.

1 Saludo.
Shordi   29-06-2023, 10:40
#6
Ta chulo. Dos cositas.

Si seleccionas en el treeview superior un Tema que no tenga la sección previamente seleccionada de un tema anterior, da un error. La solución es cambiar el código de la línea 165 a:
Código:
      If Not TreeThemes.Exist($Section) Then
 

Y cuando seleccionas un tema que no dispone de todos los iconos de la barra superior, te pasa ésto:
[Imagen: 7SVl6iX.png]

o esto:
[Imagen: hF72OMW.png]

Habría que implementar, quizá, que si no encuentra el icono en el tema elegido utilice uno de los que se incluyen en el proyecto (var/svg/actions) o algo así.

Pero, repito: Ta chulo. Buen trabajo.

Saludos
Última modificación: 29-06-2023, 11:35 por Shordi.

No podemos regresar
Shordi   29-06-2023, 11:50
#7
Un último feed-back:

Los iconos no aparecen ordenados. Si añades .sort(gb.ascent) a la línea 277 de la clase icons, ya lo tienes

[code]

Saludos

No podemos regresar
tincho   29-06-2023, 12:07
#8
(29-06-2023, 10:40)Shordi escribió: If Not TreeThemes.Exist($Section) Then

ok, lo implemente pero creo que te refieres a TreeSections no a TreeThemes. Smile

(29-06-2023, 10:40)Shordi escribió: Habría que implementar, quizá, que si no encuentra el icono en el tema elegido utilice uno de los que se incluyen en el proyecto (var/svg/actions) o algo así.

Si, estoy dándole vueltas a eso, porque creo que hay dos escenarios el escenario de este programa que es para analizar, probar y buscar iconos disponibles en el sistema y por otra parte están los programas a los que se desea agregar estos métodos para gestionar iconos y temas. En los programas si no se encuentra el icono el en tema, le tiene que poner el del tema por defecto, el icono rojo ese no queda nada bien en un programa, en eso estoy completamente de acuerdo, en el "testing" tal vez sea útil ver el farol rojo para saber si el tema tiene el icono necesario.

(29-06-2023, 11:50)Shordi escribió: Los iconos no aparecen ordenados. Si añades .sort(gb.ascent) a la línea 277 de la clase icons, ya lo tienes

Implementado.

Gracias por el feedback.

Creo que, si quiero hacer una clase que funcione para todos los iconos, tengo que interpretar el archivo "index.theme" antes de crear  la lista
Última modificación: 29-06-2023, 12:48 por tincho.

1 Saludo.
Shell   30-06-2023, 11:34
#9
(29-06-2023, 11:50)Shordi escribió: File.ScanFiles

Ey, ¿ de donde sale eso ?, forastero. Cool
No se encuentra ni en gb.util.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
tincho   28-08-2023, 18:51
#10
Hola a todos.
Agregue una nueva función que permite cambiar también el idioma a voluntad independientemente del idioma del sistema, que en el caso de los programas de CAD suele ser así.
[Imagen: rZTN6JG.gif]

1 Saludo.
  
Usuarios navegando en este tema: 6 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.