Checkboxes on main window works now correct

This commit is contained in:
2025-09-12 01:08:55 +02:00
parent eff7569d71
commit 4a96fd1547

View File

@@ -68,36 +68,33 @@ class Actions:
self._set_backup_type("full")
def _refresh_backup_options_ui(self):
# Reset all to normal state first
self.app.full_backup_cb.config(state="normal")
self.app.incremental_cb.config(state="normal")
# Reset enabled/disabled state first, but respect forced states from config
if self.app.full_backup_cb.cget('state') != 'disabled':
self.app.full_backup_cb.config(state="normal")
if self.app.incremental_cb.cget('state') != 'disabled':
self.app.incremental_cb.config(state="normal")
self.app.compressed_cb.config(state="normal")
self.app.encrypted_cb.config(state="normal")
self.app.test_run_cb.config(state="normal")
self.app.incremental_size_btn.config(state="normal")
# Apply specific logic based on current states
# Apply mutual exclusion rules for Option A
if self.app.compressed_var.get():
# If compressed, cannot be incremental
self.app.incremental_var.set(False)
self.app.full_backup_var.set(True) # Force full if compressed
self.app.full_backup_var.set(True)
self.app.incremental_cb.config(state="disabled")
# If compressed, cannot be encrypted
self.app.encrypted_var.set(False)
self.app.encrypted_cb.config(state="disabled")
# Incremental size not applicable for compressed
self.app.incremental_size_btn.config(state="disabled")
elif self.app.encrypted_var.get():
# If encrypted, cannot be compressed
self.app.compressed_var.set(False)
self.app.compressed_cb.config(state="disabled")
elif self.app.incremental_var.get():
# If incremental, cannot be compressed
if self.app.incremental_var.get() or self.app.encrypted_var.get():
self.app.compressed_var.set(False)
self.app.compressed_cb.config(state="disabled")
# Update backup type controls (full/incremental) based on current state
self._update_backup_type_controls()
# Set incremental_size_btn state
if self.app.mode == "backup" and self.app.incremental_var.get():
self.app.incremental_size_btn.config(state="normal")
else:
self.app.incremental_size_btn.config(state="disabled")
def handle_backup_type_change(self, changed_var_name):
if changed_var_name == 'full':
@@ -106,6 +103,7 @@ class Actions:
elif changed_var_name == 'incremental':
if self.app.incremental_var.get():
self._set_backup_type("incremental")
self._refresh_backup_options_ui()
def handle_compression_change(self):
self._refresh_backup_options_ui()
@@ -311,6 +309,7 @@ class Actions:
if self.app.mode == 'backup':
self._update_backup_type_controls()
self._refresh_backup_options_ui()
else:
self.app.config_manager.set_setting(
"restore_destination_path", folder_path)
@@ -494,6 +493,7 @@ class Actions:
self.app.right_canvas.config(cursor="")
if enable:
self._update_backup_type_controls()
self.app.update_backup_options_from_config()
else:
checkboxes = [