pdulvp.fr

Des jeux de cartes livrés avec le paquet has been fixed.

See more details at : https://github.com/pdulvp/pdcartes-rami/issues/19

  • le paquet installe les *.cartes d'assets/cartes/ dans

/usr/share/pdcartes-rami/cartes, et l'archive Windows dans le dossier
cartes voisin de l'exécutable ; ils apparaissent dans la liste des jeux et
des dos comme ceux de l'utilisateur

  • CardSet::searchFolders() remplace le dossier unique : celui de

l'utilisateur d'abord, puis les dossiers de données du système ; à nom de
fichier égal, le jeu de l'utilisateur l'emporte

  • CardSet::installFolder() passe de GenericConfigLocation à

AppConfigLocation : chaque programme a ses jeux, le dossier partagé
~/.config/cartes n'est plus lu — un jeu installé par l'atelier n'arrive
donc plus de lui-même dans le rami

  • les jeux livrés ne sont ni modifiables ni effaçables depuis le programme :

CardDecks::folder(), qu'ouvre le bouton « Dossier » des réglages, reste le
seul dossier où l'on écrive

Des jeux de cartes livrés avec le paquet

<sub>2026-10-28-2035-des-jeux-de-cartes-livres-avec-le-paquet.md — 2026-10-28 20:35</sub>

Les jeux .cartes sont aujourd'hui cherchés dans un dossier unique,
~/.config/cartes, partagé par tous les programmes qui lisent ce format. Ce
dossier appartient à l'utilisateur : rien ne peut y être posé par
l'installation du paquet, qui écrit sous /usr et ne connaît pas les
dossiers personnels.

Le programme lit désormais plusieurs dossiers : le sien, sous son dossier de
réglages, puis les dossiers du système, où le paquet dépose les jeux qu'il
emporte. Un dossier assets/cartes/ du dépôt est la source de ces jeux-là.

La cartothèque est partagée avec l'atelier (cartes-set-creator) : la
modification du dossier d'installation vaut pour les deux programmes, et
chacun a dès lors le sien.

Décisions

  • Le dossier de l'utilisateur devient celui de l'application.

CardSet::installFolder() part de AppConfigLocation et non plus de
GenericConfigLocation, soit ~/.config/pdulvp/pdcartes-rami/cartes pour
le rami et ~/.config/pdcartes-barquette/pdcartes-barquette/cartes pour
l'atelier. Le dossier partagé ~/.config/cartes n'est plus lu.

  • Conséquence assumée : un jeu installé par l'atelier n'apparaît plus de

lui-même dans le rami, et les jeux déjà posés dans ~/.config/cartes ne
sont plus vus. C'est le prix du cloisonnement demandé ; un déplacement de
l'ancien dossier vers le nouveau n'est pas prévu par ce plan.

  • Les dossiers système viennent de GenericDataLocation, le nom de

l'application et cartes ajoutés à chacun : /usr/share/pdcartes-rami/cartes
pour le paquet Debian, dont le préfixe est /usr, ainsi que
/usr/local/share et ~/.local/share pour qui installe ailleurs. Le
dossier voisin de l'exécutable est lu également, ce dont se sert l'archive
Windows, qu'on décompresse où l'on veut.

  • Le dossier d'écriture reste le premier de la liste. CardDecks::folder()

et le bouton « Dossier » des réglages désignent toujours le dossier de
l'utilisateur ; les jeux livrés ne s'y trouvent pas et ne peuvent donc être
ni remplacés ni effacés depuis le programme.

  • Deux jeux de même nom de fichier : le premier dossier l'emporte.

L'identifiant d'un jeu est le nom de son fichier ; un jeu personnel masque
donc un jeu livré de même nom, et non l'inverse.

  • La liste des dos ne demande rien de plus. Les dos appartiennent au jeu

choisi ; un jeu livré apparu dans la liste des jeux apporte ses dos avec
lui.

  • Aucun fichier .cartes n'est ajouté au dépôt par ce plan.

assets/cartes/ reçoit une note disant ce qu'on y dépose ; les jeux y
seront posés ensuite et seront emportés par le build suivant.

Étapes

  1. [x] Cartothèque, lib/CardSet.{h,cpp} : installFolder() passe au

dossier de l'application, et searchFolders() renvoie la liste des
dossiers lus, celui-là en tête.

  1. [x] Cartothèque, lib/CardDeck.cpp : refresh() parcourt tous les

dossiers de la liste et ignore un jeu dont l'identifiant est déjà pris.

  1. [x] assets/cartes/ et sa note dans le dépôt du rami.
  2. [x] CMakeLists.txt : installation des *.cartes dans

${CMAKE_INSTALL_DATAROOTDIR}/pdcartes-rami/cartes, et dans cartes
à côté de l'exécutable sous Windows.

  1. [x] Build en série, puis vérification : installation dans un bac à sable,

un jeu déposé dans le dossier système est bien listé par le programme.

  1. [x] docs/plans/sumup.md et archivage du plan.

Vérifié

Les deux programmes bâtis en série : pdcartes-rami et pdcartes-barquette
compilent et se lient sans avertissement.

Les dossiers lus, dits par un petit programme lié à la cartothèque :

/home/pdu/.config/pdulvp/pdcartes-rami/cartes
/home/pdu/.local/share/pdcartes-rami/cartes
<préfixe d'essai>/share/pdcartes-rami/cartes
<dossier de l'exécutable>/cartes

Un jeu exporté par --exporter-cartes et déposé dans assets/cartes/ est
installé par cmake --install dans share/pdcartes-rami/cartes, et le
programme le liste avec son dos. Le même jeu posé dans le dossier de
l'utilisateur prend sa place dans la liste, sans doublon.

Le paquet fabriqué par cmake --build build --target deb porte
./usr/share/pdcartes-rami/cartes/jeu-dessine.cartes : le préfixe du paquet
Debian est /usr et non le /usr/local du cache de configuration.

Le jeu d'essai a été retiré ensuite : assets/cartes/ ne contient que sa
note, comme prévu.

<sub>Filed by prel from the completed plans at commit time.</sub>