pdulvp.fr

Les jeux cherchés dans plusieurs dossiers has been fixed.

See more details at : https://github.com/pdulvp/pdcartes-barquette/issues/14

  • CardSet::searchFolders() remplace le dossier unique : celui du programme,

puis les dossiers de données du système, puis le dossier voisin de
l'exécutable ; un programme installé peut ainsi livrer des jeux avec lui

  • CardSet::installFolder() passe de GenericConfigLocation à

AppConfigLocation : chaque programme a ses jeux, le dossier partagé
~/.config/cartes n'est plus lu

  • CardDecks::refresh() écarte un identifiant déjà pris : à nom de fichier

égal, le jeu de l'utilisateur masque le jeu livré

Les jeux cherchés dans plusieurs dossiers

<sub>2026-10-28-2035-les-jeux-cherches-dans-plusieurs-dossiers.md — 2026-10-28 20:35</sub>

La cartothèque cherchait les jeux .cartes dans un dossier unique,
~/.config/cartes, partagé par tous les programmes qui lisent ce format.
Un programme installé ne pouvait donc pas emporter de jeux avec lui : son
paquet écrit sous /usr, jamais dans le dossier personnel de quelqu'un.

Le besoin vient du rami (card-sol), dont le paquet Debian livre désormais
des jeux ; il a son propre plan. La cartothèque étant partagée, la
modification vaut pour l'atelier également.

Décisions

  • Le dossier d'écriture devient celui du programme.

CardSet::installFolder() part de AppConfigLocation et non plus de
GenericConfigLocation : ~/.config/pdcartes-barquette/pdcartes-barquette/cartes
pour l'atelier, ~/.config/pdulvp/pdcartes-rami/cartes pour le rami. Le
dossier partagé ~/.config/cartes n'est plus lu ; un jeu installé par
l'atelier n'apparaît donc plus de lui-même dans le rami.

  • CardSet::searchFolders() dit tous les dossiers lus : celui

ci-dessus, puis le nom de l'application suivi de cartes sous chaque
dossier de données du système, puis le dossier voisin de l'exécutable, dont
se sert une archive qu'on décompresse où l'on veut. Les doublons sont
écartés, un même dossier pouvant être désigné deux fois.

  • CardDecks::refresh() les parcourt dans cet ordre, et ignore un jeu

dont l'identifiant est déjà pris : un jeu personnel masque un jeu livré de
même nom de fichier, et non l'inverse.

  • CardDecks::folder() reste le dossier de l'utilisateur, seul dossier

où les programmes écrivent — l'atelier y installe ses jeux, et le rami y
ouvre son bouton « Dossier ».

Étapes

  1. [x] lib/CardSet.{h,cpp} : installFolder() et searchFolders().
  2. [x] lib/CardDeck.{h,cpp} : refresh() parcourt la liste, les

identifiants déjà pris écartés ; commentaires du dossier partagé repris.

  1. [x] Les deux programmes bâtis en série.

Vérifié

pdcartes-barquette compile et se lie sans avertissement. Du côté du rami, un
jeu déposé dans le dossier système est listé avec son dos, et un jeu de même
nom dans le dossier de l'utilisateur prend sa place sans doublon.

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