diff --git a/lite/proxy_lite.py b/lite/proxy_lite.py index 1d5f1cb..13d5300 100644 --- a/lite/proxy_lite.py +++ b/lite/proxy_lite.py @@ -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()