fix: wrap Setup tab in CTkScrollableFrame for small windows

Content was clipped when window height was insufficient.
Now all sections are accessible via scroll.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
chrome-storm-c442
2026-02-23 15:49:31 -05:00
parent b8e4eba997
commit 6496797424

View File

@@ -18,21 +18,25 @@ class SetupTab(ctk.CTkFrame):
super().__init__(master, fg_color="transparent")
self.store = store
# Scrollable container for all content
self._scroll = ctk.CTkScrollableFrame(self, fg_color="transparent")
self._scroll.pack(fill="both", expand=True)
# Header
self.header_label = ctk.CTkLabel(
self, text=t("claude_integration"),
self._scroll, text=t("claude_integration"),
font=ctk.CTkFont(size=20, weight="bold")
)
self.header_label.pack(padx=20, pady=(20, 5))
self.desc_label = ctk.CTkLabel(
self, text=t("claude_desc"),
self._scroll, text=t("claude_desc"),
text_color="#9ca3af", justify="center"
)
self.desc_label.pack(padx=20, pady=(0, 15))
# Status card
self.status_frame = ctk.CTkFrame(self)
self.status_frame = ctk.CTkFrame(self._scroll)
self.status_frame.pack(fill="x", padx=20, pady=10)
self.status_title = ctk.CTkLabel(
@@ -62,7 +66,7 @@ class SetupTab(ctk.CTkFrame):
self._status_text_labels[key] = (text_label, i18n_key)
# Buttons
btn_frame = ctk.CTkFrame(self, fg_color="transparent")
btn_frame = ctk.CTkFrame(self._scroll, fg_color="transparent")
btn_frame.pack(fill="x", padx=20, pady=15)
self.install_all_btn = ctk.CTkButton(
@@ -91,7 +95,7 @@ class SetupTab(ctk.CTkFrame):
self.refresh_btn.pack(side="right")
# ── Monitoring section ─────────────────────────
monitor_frame = ctk.CTkFrame(self)
monitor_frame = ctk.CTkFrame(self._scroll)
monitor_frame.pack(fill="x", padx=20, pady=(5, 5))
self.monitor_title = ctk.CTkLabel(
@@ -120,7 +124,7 @@ class SetupTab(ctk.CTkFrame):
self._interval_buttons[seconds] = btn
# ── Configuration section ─────────────────────
config_frame = ctk.CTkFrame(self)
config_frame = ctk.CTkFrame(self._scroll)
config_frame.pack(fill="x", padx=20, pady=(5, 5))
self.config_title = ctk.CTkLabel(
@@ -201,8 +205,8 @@ class SetupTab(ctk.CTkFrame):
self.import_backup_btn.pack(side="left", padx=5)
# Log
self.log = ctk.CTkTextbox(self, height=150, font=ctk.CTkFont(family="Consolas", size=11), state="disabled")
self.log.pack(fill="both", expand=True, padx=20, pady=(5, 20))
self.log = ctk.CTkTextbox(self._scroll, height=150, font=ctk.CTkFont(family="Consolas", size=11), state="disabled")
self.log.pack(fill="x", padx=20, pady=(5, 20))
# Initial status check
self._refresh_status()