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
- [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.
- [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.
- [x] assets/cartes/ et sa note dans le dépôt du rami.
- [x] CMakeLists.txt : installation des *.cartes dans
${CMAKE_INSTALL_DATAROOTDIR}/pdcartes-rami/cartes, et dans cartes
à côté de l'exécutable sous Windows.
- [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.
- [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>