refactor: Implement Singleton pattern for DatabaseManager

Refactor the database handling to use a Singleton pattern for `DatabaseManager`.

- A single, module-level instance `db_manager` is created in `core/database.py` to ensure one database connection is used throughout the application.
- `MediaRepository` and `MainController` are updated to use this shared instance instead of creating their own.
- This simplifies dependency injection and prevents potential issues with multiple database connections.
- Also, update `review.md` to reflect the progress.
This commit is contained in:
2025-10-14 08:55:45 +02:00
parent 96c2495a8b
commit c8d9029df7
4 changed files with 28 additions and 6 deletions

View File

@@ -51,3 +51,22 @@ To bardzo obiecujący projekt z solidnymi fundamentami. Moje sugestie mają na c
4. **Uprość logikę UI:** Zastanów się nad refaktoryzacją obsługi stanu przycisków w `MainController`, aby kod był bardziej czytelny i mniej podatny na błędy.
Świetna robota! Jeśli masz więcej pytań lub chciałbyś, żebym przyjrzał się jakiemuś konkretnemu fragmentowi, daj znać.
---
### Postęp Prac (14.10.2025)
Na podstawie powyższej recenzji, wspólnie wprowadziliśmy następujące zmiany:
* **Zrefaktoryzowano ścieżki do zasobów (Zrealizowano):**
* Utworzono plik `settings.py` do centralnego zarządzania ścieżkami.
* Zaktualizowano komponenty UI (`split_view_widget.py`, `view_settings_dialog.py`), aby korzystały ze scentralizowanych ścieżek, co uniezależniło aplikację od katalogu roboczego.
* **Poprawiono logikę rotacji obrazu (Zrealizowano):**
* Zmieniono mechanizm obracania obrazu referencyjnego w `SplitView`, aby operacje były wykonywane na oryginalnym obrazie. Zapobiega to stopniowej utracie jakości przy wielokrotnych rotacjach.
* **Uproszczono logikę sygnałów w `MainController` (Zrealizowano):**
* Zastąpiono dynamiczne łączenie i rozłączanie sygnałów przycisku kamery jednym, stałym połączeniem i centralną metodą obsługi. Zwiększyło to czytelność i niezawodność kodu.
* **Wyczyszczono projekt (Zrealizowano):**
* Użytkownik potwierdził usunięcie zduplikowanych plików (`camera_controller.py` i `mock_gphoto.py`) z katalogu `controllers`.