修复:
- 设置弹窗改为"保存更改"统一提交(后续设置项在此扩展),保存更改与退出登录并排底部 - 更新检查与更新下载不再携带节点 Basic 认证头(update_url 已迁移到公开 CDN,凭据不再暴露给 CDN 日志)
This commit is contained in:
+28
-26
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user