8282 print ("安装命令: pip3 install PyQt5" )
8383 sys .exit (1 )
8484
85- APP_VERSION = "1.3 "
85+ APP_VERSION = "1.4 "
8686APP_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