Observation: ui/panel.py builds the entire UI, orchestrates calls to SecateurService, SettingsManager, ImageManager, BasemapComboBox, and SettingsDialog, and centralizes status display (_set_status). It is both the largest file in ui/ and the one with the most direct dependencies.
Impact: Any change to settings persistence, logo management, or basemap selection necessarily goes through this file, making it harder to evolve independently and more expensive to test (there is currently no test suite covering ui/panel.py).
Future direction: Extract the settings/logo wiring logic (currently in _open_settings_dialog and its associated callbacks) into a dedicated controller, leaving SecateurPanel responsible only for widget construction and delegation to services.
Observation:
ui/panel.pybuilds the entire UI, orchestrates calls toSecateurService,SettingsManager,ImageManager,BasemapComboBox, andSettingsDialog, and centralizes status display (_set_status). It is both the largest file inui/and the one with the most direct dependencies.Impact: Any change to settings persistence, logo management, or basemap selection necessarily goes through this file, making it harder to evolve independently and more expensive to test (there is currently no test suite covering
ui/panel.py).Future direction: Extract the settings/logo wiring logic (currently in
_open_settings_dialogand its associated callbacks) into a dedicated controller, leavingSecateurPanelresponsible only for widget construction and delegation to services.