Unify configuration files into rgsx_settings.json and implement migration logic

This commit is contained in:
skymike03
2025-08-21 13:27:46 +02:00
parent f1bd6ff3e5
commit f19edc9e1e
17 changed files with 377 additions and 147 deletions

View File

@@ -0,0 +1,71 @@
# Migration vers rgsx_settings.json
## Résumé des changements
Ce commit unifie les fichiers de configuration suivants en un seul fichier `rgsx_settings.json` :
- `accessibility.json``rgsx_settings.json` (clé: `accessibility`)
- `language.json``rgsx_settings.json` (clé: `language`)
- `music_config.json``rgsx_settings.json` (clé: `music_enabled`)
- `symlink_settings.json``rgsx_settings.json` (clé: `symlink`)
## Structure du nouveau fichier rgsx_settings.json
```json
{
"language": "fr",
"music_enabled": true,
"accessibility": {
"font_scale": 1.0
},
"symlink": {
"enabled": false,
"target_directory": ""
}
}
```
## Nouveau module rgsx_settings.py
Un nouveau module `rgsx_settings.py` a été créé pour centraliser la gestion des paramètres :
### Fonctions principales :
- `load_rgsx_settings()` : Charge tous les paramètres depuis rgsx_settings.json
- `save_rgsx_settings(settings)` : Sauvegarde tous les paramètres
- `migrate_old_settings()` : Migre automatiquement les anciens fichiers
## Fichiers modifiés
### Nouveau fichier : rgsx_settings.py
- Module dédié à la gestion des paramètres RGSX
- Contient toute la logique de chargement, sauvegarde et migration
- Documentation complète des fonctions
### config.py
- Ajout de `RGSX_SETTINGS_PATH`
- Import des fonctions depuis `rgsx_settings.py`
- Conservation temporaire des anciens chemins pour la migration
- Suppression des fonctions de gestion des paramètres (déplacées vers rgsx_settings.py)
### accessibility.py
- Import des fonctions depuis `rgsx_settings.py`
- Utilisation directe des fonctions importées au lieu de `config.`
### utils.py
- Import des fonctions depuis `rgsx_settings.py`
- Fonctions `load_music_config()` et `save_music_config()` mises à jour
### symlink_settings.py
- Import des fonctions depuis `rgsx_settings.py`
- Fonctions `load_symlink_settings()` et `save_symlink_settings()` mises à jour
- Compatibilité maintenue avec l'ancien format (`use_symlink_path`)
## Migration automatique
Le système détecte automatiquement les anciens fichiers et les migre vers le nouveau format :
1. Au premier lancement, `load_rgsx_settings()` vérifie si `rgsx_settings.json` existe
2. Si absent, il tente de migrer les données depuis les anciens fichiers
3. Les valeurs par défaut sont utilisées si aucun ancien fichier n'est trouvé
4. Le nouveau fichier unifié est créé automatiquement
5. Les anciens fichiers sont automatiquement supprimés après migration réussie