From 4ae78b830dea8aa7896b999f80398737f03ea6bd Mon Sep 17 00:00:00 2001 From: oop7 <110548351+oop7@users.noreply.github.com> Date: Tue, 28 Apr 2026 13:29:43 +0300 Subject: [PATCH] Add 'Remember Cookie Settings' checkbox Introduce a "Remember Cookie Settings" QCheckBox to the cookies UI (label uses gettext key "cookies.remember_settings"). The control defaults to True when no prior setting exists and applies custom styling for the indicator and text. Its toggled signal is wired to ConfigManager.set("cookie_remember", checked) so the preference is saved immediately (avoiding dependence on an Apply button), and the value is also saved when the dialog persists other cookie settings. Uses the "cookie_remember" config key for storage. --- .../ytsage_dialogs_custom.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/ytsage/gui/ytsage_gui_dialogs/ytsage_dialogs_custom.py b/ytsage/gui/ytsage_gui_dialogs/ytsage_dialogs_custom.py index 3c19863..8b1cf55 100644 --- a/ytsage/gui/ytsage_gui_dialogs/ytsage_dialogs_custom.py +++ b/ytsage/gui/ytsage_gui_dialogs/ytsage_dialogs_custom.py @@ -198,6 +198,37 @@ class CustomOptionsDialog(QDialog): # Initially show browser group (recommended default) and hide file group self.cookie_file_group.setVisible(False) + + # Remember Cookie Settings Checkbox + self.remember_cb = QCheckBox(_("cookies.remember_settings")) + remember_val = ConfigManager.get("cookie_remember") + self.remember_cb.setChecked(True if remember_val is None else remember_val) # Default to True + self.remember_cb.setStyleSheet( + """ + QCheckBox { + color: #ffffff; + padding: 10px 5px; + } + QCheckBox::indicator { + width: 18px; + height: 18px; + border-radius: 9px; + } + QCheckBox::indicator:unchecked { + border: 2px solid #666666; + background: #1d1e22; + border-radius: 9px; + } + QCheckBox::indicator:checked { + border: 2px solid #c90000; + background: #c90000; + border-radius: 9px; + } + """ + ) + # Connect state change directly to config save to make it work immediately without Apply button dependency if needed + self.remember_cb.toggled.connect(lambda checked: ConfigManager.set("cookie_remember", checked)) + cookies_layout.addWidget(self.remember_cb) self.cookie_browser_group.setVisible(True) # Apply button and status indicator @@ -725,6 +756,7 @@ class CustomOptionsDialog(QDialog): self._parent.browser_cookies_option = None # Save settings to ConfigManager for persistence + ConfigManager.set("cookie_remember", self.remember_cb.isChecked()) if self.cookie_file_radio.isChecked(): ConfigManager.set("cookie_source", "file") ConfigManager.set("cookie_file_path", str(cookie_path) if cookie_path else None)