• v2026-09-29 3440c2780d

    v2026-09-29
    All checks were successful
    release / release (push) Successful in 6m32s
    Stable

    Enzo released this 2026-09-29 18:45:45 +02:00 | 6 commits to main since this release

    Nouveautés

    Langues

    • L'interface existe en anglais et en français.
    • Au premier lancement, elle prend la langue du système ou du navigateur, avec l'anglais par défaut.
    • On change de langue dans le menu Vue, sans recharger. Le choix est mémorisé.
    • Tout est traduit :
      • les menus, y compris la barre native de l'app desktop ;
      • les infobulles, les boîtes de dialogue et les messages d'erreur ;
      • les raccourcis affichés (Ctrl+Maj+E, Ctrl+Shift+E).
    • Les noms donnés aux nouveaux calques, dossiers, copies et textures suivent la langue active. Les calques existants gardent leur nom.

    Calques

    • Les dossiers se plient et se déplient. Leur état est enregistré dans le fichier et survit à l'annulation.
    • On peut glisser-déposer les calques et les dossiers n'importe où dans l'arbre. Un indicateur montre où l'élément va tomber, avec un aperçu.
      • Un dossier fermé s'ouvre tout seul quand on le survole.
      • La liste défile d'elle-même près des bords.
    • Les calques et les dossiers peuvent être verrouillés :
      • ils sont protégés dans le panneau ;
      • sur le canevas, ils ne réagissent plus à la souris.
    • Sélectionner une forme sur le canevas la révèle dans le panneau, en dépliant ses dossiers.
    • Les lignes du panneau sont plus légères.
    • Les nouvelles formes sont créées juste au-dessus de la sélection.
    • Un collage arrive juste au-dessus de l'élément copié.

    Export PNG / SVG

    • Une boîte d'export est accessible depuis le menu Fichier ou avec Ctrl+Maj+E.
    • Elle propose plusieurs options : cadrage, marge (en pixels de l'image finale), grille.

    Document

    • Le document garde le nom du fichier ouvert.
    • À l'enregistrement, on choisit le nom du fichier.

    Dessin

    • Maintenir Maj pendant le tracé d'une ligne la contraint aux axes isométriques.

    Desktop

    • L'app a une barre de menus native Fichier / Édition / Vue. Elle s'intègre au menu global de la barre quand il existe.
    • L'app Linux est publiée en AppImage.

    Exemples

    • Six documents sont fournis dans examples/ : un quartier qui utilise toutes les fonctions, un plan de bureau à 10 cm par case, un schéma d'architecture, un graphique en barres, une île flottante et une maison.
    • Les exemples gardent leur ordre de dessin quand on les modifie.

    Corrections

    • Le zoom passe par le viewBox : les formes restent nettes dans Firefox.
    • Presse-papiers :
      • on colle toujours le dernier élément copié ;
      • on peut coller un calque ou un dossier coupé.
    • Copier, couper et supprimer fonctionnent maintenant aussi sur les dossiers vides ou masqués.
    • Calques :
      • le contenu des dossiers fermés sort de l'ordre de tabulation ;
      • un glisser est annulé quand la fenêtre perd le focus ;
      • la cible de dépôt suit la liste pendant le défilement automatique ;
      • l'espace sous une ligne appartient à cette ligne pendant un glisser.
    • Export :
      • un PNG trop grand pour le navigateur est refusé proprement ;
      • la grille couvre tout le cadre ;
      • la police Inter est trouvée quelle que soit la feuille de style de la page ;
      • fermer la boîte de dialogue n'annule plus un export en cours.
    • Décorations : la texture de la face s'affiche dès l'ouverture de la boîte, au lieu de « Aucune ».

    Performances

    • Chaque forme est rendue par un composant mémoïsé.
    • Les formes masquées et verrouillées sont calculées une seule fois par rendu.
    • Un glisser n'enregistre dans l'historique que les formes qu'il a modifiées.
    • Les calques ne sont resynchronisés que quand la liste des formes change.
    • Résultats sur un gros document (taille L) :
    Scénario Mesure Avant Après
    Glisser un bloc (un pas) Firefox 349 ms 6 ms
    Glisser un bloc (un pas) Natif 603 ms 4,3 ms
    Annuler Firefox 348 ms 5 ms
    Ouvrir le document Natif 817 ms 198 ms
    Mémoire de l'historique Par glisser 2,2 Mo 4,3 Ko

    Le détail est dans docs/perf.md.

    Technique

    • Dioxus passe en 0.7.10.
    • Les traductions passent par Fluent (locales/en.ftl, locales/fr.ftl). Des tests vérifient que chaque langue a tous les messages, avec les mêmes variables, et que chaque clé utilisée existe. Ajouter une langue revient à ajouter un fichier .ftl.
    • Les messages internes (expect, assert) sont en anglais.
    • Des benchmarks natifs tournent sur des documents lourds générés, et un script mesure les performances dans l'app via Playwright.
    • La synchronisation des calques est déplacée dans un hook.
    • Une seule fonction transforme un glisser terminé en étape d'annulation.
    • Documentation :
      • le README est réécrit, en anglais, avec une version française (README.fr.md), une bannière d'exemples, une démo animée et la liste des raccourcis ;
      • specs et plans du panneau de calques, de l'export et de la régionalisation ;
      • piste de l'API WebSocket pilotable par une IA, et pour piloter l'app depuis le site en ligne ;
      • piste du menu global sous KWin en Wayland natif.
    Downloads