修复:

- 设置弹窗改为"保存更改"统一提交(后续设置项在此扩展),保存更改与退出登录并排底部
- 更新检查与更新下载不再携带节点 Basic 认证头(update_url 已迁移到公开 CDN,凭据不再暴露给 CDN 日志)
This commit is contained in:
RoyirinRosmontis
2026-08-23 13:59:03 +08:00
parent 40175a144d
commit 701845afc2
+28 -26
View File
@@ -1407,13 +1407,19 @@ class SettingsDialog(QDialog):
port_row.addWidget(self.ed_port)
layout.addLayout(port_row)
self.lb_port = QLabel("代理运行中,关闭代理后可修改" if port_locked else "保存后下次开启代理生效")
self.lb_port.setStyleSheet(f"color: {C_SUBTEXT}; font-size: 11px;")
self.lb_port.setFixedHeight(14)
layout.addWidget(self.lb_port)
self.lb_hint = QLabel("代理运行中,关闭代理后可修改" if port_locked else "保存更改后下次开启代理生效")
self.lb_hint.setStyleSheet(f"color: {C_SUBTEXT}; font-size: 11px;")
self.lb_hint.setFixedHeight(14)
layout.addWidget(self.lb_hint)
btn_save = QPushButton("保存端口")
btn_save.setStyleSheet(f"""
layout.addStretch()
# 底部:保存更改 + 退出登录 并排
btns = QHBoxLayout()
btns.setSpacing(10)
btns.addStretch()
self.btn_save = QPushButton("保存更改")
self.btn_save.setStyleSheet(f"""
QPushButton {{
background-color: {C_GREEN}; color: #fff; border: none;
border-radius: 6px; padding: 5px 14px;
@@ -1421,12 +1427,11 @@ class SettingsDialog(QDialog):
}}
QPushButton:disabled {{ background-color: #2a3a2e; color: #666; }}
""")
btn_save.setEnabled(not port_locked)
btn_save.clicked.connect(self._save_port)
layout.addWidget(btn_save)
btn_logout = QPushButton("退出登录")
btn_logout.setStyleSheet(f"""
self.btn_save.setEnabled(not port_locked)
self.btn_save.clicked.connect(self._save_settings)
btns.addWidget(self.btn_save)
self.btn_logout = QPushButton("退出登录")
self.btn_logout.setStyleSheet(f"""
QPushButton {{
background-color: {C_CARD}; color: {C_RED};
border: 1px solid {C_RED}; border-radius: 6px;
@@ -1434,22 +1439,23 @@ class SettingsDialog(QDialog):
}}
QPushButton:hover {{ background-color: #ffecec; }}
""")
btn_logout.setToolTip("清除登录凭据与本地节点配置,下次启动需重新登录")
btn_logout.clicked.connect(self._logout)
layout.addWidget(btn_logout)
self.btn_logout.setToolTip("清除登录凭据与本地节点配置,下次启动需重新登录")
self.btn_logout.clicked.connect(self._logout)
btns.addWidget(self.btn_logout)
btns.addStretch()
layout.addLayout(btns)
layout.addStretch()
def _save_port(self):
def _save_settings(self):
"""保存更改:统一校验并应用全部设置项(后续新增设置项在此扩展)。"""
port = _parse_port(self.ed_port.text())
if port is None:
self.lb_port.setText("端口应为 1-65535 的数字")
self.lb_port.setStyleSheet(f"color: {C_RED}; font-size: 11px;")
self.lb_hint.setText("端口应为 1-65535 的数字")
self.lb_hint.setStyleSheet(f"color: {C_RED}; font-size: 11px;")
return
_set_local_port(port)
self.ed_port.setText(str(port))
self.lb_port.setText(f"已保存: {port},下次开启代理生效")
self.lb_port.setStyleSheet(f"color: {C_GREEN}; font-size: 11px;")
self.lb_hint.setText(f"已保存: {port},下次开启代理生效")
self.lb_hint.setStyleSheet(f"color: {C_GREEN}; font-size: 11px;")
def _logout(self):
"""退出登录:删除加密凭据与本地节点配置,清空内存缓存。"""
@@ -2015,8 +2021,6 @@ class MainWindow(QWidget):
{"http": f"{PROXY_HOST}:{PROXY_PORT}",
"https": f"{PROXY_HOST}:{PROXY_PORT}"}))
req = urllib.request.Request(url)
auth = _proxy_auth_basic()
req.add_header("Authorization", f"Basic {auth}")
data = opener.open(req, timeout=10).read().decode("utf-8-sig")
finally:
_release_forwarder(started_here)
@@ -2069,8 +2073,6 @@ class MainWindow(QWidget):
{"http": f"{PROXY_HOST}:{PROXY_PORT}",
"https": f"{PROXY_HOST}:{PROXY_PORT}"}))
req = urllib.request.Request(url)
auth = _proxy_auth_basic()
req.add_header("Authorization", f"Basic {auth}")
with opener.open(req, timeout=120) as resp:
data = resp.read()