Skip to content

Commit 67aae33

Browse files
authored
Update gui.py
1 parent ea033e2 commit 67aae33

1 file changed

Lines changed: 43 additions & 13 deletions

File tree

gui.py

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
print("安装命令: pip3 install PyQt5")
8383
sys.exit(1)
8484

85-
APP_VERSION = "1.3"
85+
APP_VERSION = "1.4"
8686
APP_TITLE = f"ECH Workers 客户端 v{APP_VERSION}"
8787

8888
# 中国IP列表URL
@@ -862,18 +862,29 @@ def refresh_server_combo(self):
862862
def get_control_values(self):
863863
"""获取界面输入值"""
864864
server = self.config_manager.get_current_server()
865-
if server:
866-
server = server.copy()
867-
server['server'] = self.server_edit.text()
868-
server['listen'] = self.listen_edit.text()
869-
server['token'] = self.token_edit.text()
870-
server['ip'] = self.ip_edit.text()
871-
server['dns'] = self.dns_edit.text()
872-
server['ech'] = self.ech_edit.text()
873-
# 保存分流模式
874-
routing_mode = self.routing_combo.currentData()
875-
if routing_mode:
876-
server['routing_mode'] = routing_mode
865+
if not server:
866+
# 如果没有当前服务器,创建一个临时配置
867+
import uuid
868+
server = {
869+
'id': str(uuid.uuid4()),
870+
'name': '临时配置',
871+
}
872+
873+
# 创建副本并更新为界面当前值
874+
server = server.copy()
875+
server['server'] = self.server_edit.text()
876+
server['listen'] = self.listen_edit.text()
877+
server['token'] = self.token_edit.text()
878+
server['ip'] = self.ip_edit.text()
879+
server['dns'] = self.dns_edit.text()
880+
server['ech'] = self.ech_edit.text()
881+
# 保存分流模式
882+
routing_mode = self.routing_combo.currentData()
883+
if routing_mode:
884+
server['routing_mode'] = routing_mode
885+
else:
886+
# 如果没有选择,使用默认值
887+
server['routing_mode'] = server.get('routing_mode', 'bypass_cn')
877888
return server
878889

879890
def on_server_changed(self):
@@ -895,11 +906,30 @@ def on_server_changed(self):
895906
if index >= 0:
896907
server_id = self.server_combo.itemData(index)
897908
if server_id and server_id != self.config_manager.current_server_id:
909+
# 先保存当前编辑框的值到当前服务器(如果有的话)
910+
current_server = self.config_manager.get_current_server()
911+
if current_server:
912+
# 将当前编辑框的值保存到当前服务器
913+
current_server['server'] = self.server_edit.text()
914+
current_server['listen'] = self.listen_edit.text()
915+
current_server['token'] = self.token_edit.text()
916+
current_server['ip'] = self.ip_edit.text()
917+
current_server['dns'] = self.dns_edit.text()
918+
current_server['ech'] = self.ech_edit.text()
919+
# 保存分流模式
920+
routing_mode = self.routing_combo.currentData()
921+
if routing_mode:
922+
current_server['routing_mode'] = routing_mode
923+
self.config_manager.update_server(current_server)
924+
925+
# 切换到新服务器
898926
self.config_manager.current_server_id = server_id
899927
# 暂时断开信号,避免递归
900928
self.server_combo.currentIndexChanged.disconnect()
929+
# 加载新服务器的配置到界面
901930
self.load_server_config()
902931
self.server_combo.currentIndexChanged.connect(self.on_server_changed)
932+
# 保存配置
903933
self.config_manager.save_config()
904934

905935
def add_server(self):

0 commit comments

Comments
 (0)