Add a new frame with two canvases for the restore view to show the disk usage before and after the restore.
Show the new frame only in restore mode.
Show the old frames for disk usage only in backup mode. Update the drawing logic to draw the new canvases.
Centralize Mutual Exclusivity Logic:** Refactored the "Full Backup" and
"Incremental" mutual exclusivity logic into a shared utility function (
`enforce_backup_type_exclusivity`) in `pyimage_ui/shared_logic.py`. This ensures
consistent behavior across both the main application view and the advanced settings.
Corrected Main View Exclusivity:** Resolved the issue where users could select
both "Full Backup" and "Incremental" simultaneously in the main view. The checkboxes
now correctly enforce mutual exclusivity.
Enhanced "First Backup" Handling:** Improved the logic for the initial backup.
If no existing backup is detected in the destination, the system automatically
enforces a "Full Backup" and disables the relevant checkboxes in the main view. This
prevents incorrect backup types for new destinations.
This commit introduces a new "Backup Defaults" section in the Advanced Settings and
implements a system to synchronize the main UI with these settings.
Advanced Backup Defaults:** A new section in "Advanced Settings" allows users to
set persistent defaults for backup operations. Users can now force every backup to
be full, incremental, compressed, or encrypted.
Synchronize Main UI with Advanced Settings:** The main backup options now
reflect the state of the advanced settings. If a "force" option is enabled, the
corresponding checkbox in the main view is checked and disabled, providing clear
visual feedback and preventing conflicting configurations. This state is
consistently applied on startup and when switching modes.
Implement Mutual Exclusivity for Backup Types:** Adds logic to ensure "Full
Backup" and "Incremental Backup" are mutually exclusive, both in the main view and
in the advanced settings, to prevent invalid combinations.