Checkboxes on main window works now correct
This commit is contained in:
@@ -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 = [
|
||||
|
Reference in New Issue
Block a user