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.
This commit is contained in:
@@ -198,6 +198,37 @@ class CustomOptionsDialog(QDialog):
|
|||||||
|
|
||||||
# Initially show browser group (recommended default) and hide file group
|
# Initially show browser group (recommended default) and hide file group
|
||||||
self.cookie_file_group.setVisible(False)
|
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)
|
self.cookie_browser_group.setVisible(True)
|
||||||
|
|
||||||
# Apply button and status indicator
|
# Apply button and status indicator
|
||||||
@@ -725,6 +756,7 @@ class CustomOptionsDialog(QDialog):
|
|||||||
self._parent.browser_cookies_option = None
|
self._parent.browser_cookies_option = None
|
||||||
|
|
||||||
# Save settings to ConfigManager for persistence
|
# Save settings to ConfigManager for persistence
|
||||||
|
ConfigManager.set("cookie_remember", self.remember_cb.isChecked())
|
||||||
if self.cookie_file_radio.isChecked():
|
if self.cookie_file_radio.isChecked():
|
||||||
ConfigManager.set("cookie_source", "file")
|
ConfigManager.set("cookie_source", "file")
|
||||||
ConfigManager.set("cookie_file_path", str(cookie_path) if cookie_path else None)
|
ConfigManager.set("cookie_file_path", str(cookie_path) if cookie_path else None)
|
||||||
|
|||||||
Reference in New Issue
Block a user