33namespace InvisibleManXRay . Factories
44{
55 using Core ;
6+ using Models ;
67 using Managers ;
78 using Handlers ;
89
@@ -34,6 +35,7 @@ public MainWindow CreateMainWindow()
3435 checkForUpdate : updateHandler . CheckForUpdate ,
3536 checkForBroadcast : broadcastHandler . CheckForBroadcast ,
3637 openServerWindow : CreateServerWindow ,
38+ openSettingsWindow : CreateSettingsWindow ,
3739 openUpdateWindow : CreateUpdateWindow ,
3840 openAboutWindow : CreateAboutWindow ,
3941 onRunServer : core . Run ,
@@ -48,6 +50,37 @@ public MainWindow CreateMainWindow()
4850 return mainWindow ;
4951 }
5052
53+ public SettingsWindow CreateSettingsWindow ( )
54+ {
55+ SettingsHandler settingsHandler = handlersManager . GetHandler < SettingsHandler > ( ) ;
56+ NotifyHandler notifyHandler = handlersManager . GetHandler < NotifyHandler > ( ) ;
57+
58+ SettingsWindow settingsWindow = new SettingsWindow ( ) ;
59+ settingsWindow . Setup (
60+ getMode : settingsHandler . UserSettings . GetMode ,
61+ getProtocol : settingsHandler . UserSettings . GetProtocol ,
62+ getUdpEnabled : settingsHandler . UserSettings . GetUdpEnabled ,
63+ getRunAtStartupEnabled : settingsHandler . UserSettings . GetRunAtStartupEnabled ,
64+ getProxyPort : settingsHandler . UserSettings . GetProxyPort ,
65+ getTunPort : settingsHandler . UserSettings . GetTunPort ,
66+ getTestPort : settingsHandler . UserSettings . GetTestPort ,
67+ getDeviceIp : settingsHandler . UserSettings . GetTunIp ,
68+ getDns : settingsHandler . UserSettings . GetDns ,
69+ getLogLevel : settingsHandler . UserSettings . GetLogLevel ,
70+ getLogPath : settingsHandler . UserSettings . GetLogPath ,
71+ onUpdateUserSettings : UpdateUserSettings
72+ ) ;
73+
74+ return settingsWindow ;
75+
76+ void UpdateUserSettings ( UserSettings userSettings )
77+ {
78+ settingsHandler . UpdateUserSettings ( userSettings ) ;
79+ notifyHandler . CheckModeItem ( userSettings . GetMode ( ) ) ;
80+ GetMainWindow ( ) . TryDisableModeAndRerun ( ) ;
81+ }
82+ }
83+
5184 public UpdateWindow CreateUpdateWindow ( )
5285 {
5386 UpdateHandler updateHandler = handlersManager . GetHandler < UpdateHandler > ( ) ;
@@ -64,16 +97,30 @@ public UpdateWindow CreateUpdateWindow()
6497
6598 public AboutWindow CreateAboutWindow ( )
6699 {
100+ VersionHandler versionHandler = handlersManager . GetHandler < VersionHandler > ( ) ;
67101 LinkHandler linkHandler = handlersManager . GetHandler < LinkHandler > ( ) ;
68102
69103 AboutWindow aboutWindow = new AboutWindow ( ) ;
70104 aboutWindow . Setup (
105+ getApplicationVersion : GetApplicationVersion ,
106+ getXRayCoreVersion : GetXRayCoreVersion ,
71107 onEmailClick : linkHandler . OpenEmailLink ,
72108 onWebsiteClick : linkHandler . OpenWebsiteLink ,
73109 onBugReportingClick : linkHandler . OpenBugReportingLink
74110 ) ;
75111
76112 return aboutWindow ;
113+
114+ string GetApplicationVersion ( )
115+ {
116+ AppVersion appVersion = versionHandler . GetApplicationVersion ( ) ;
117+ return $ "{ appVersion . Major } .{ appVersion . Feature } .{ appVersion . BugFix } ";
118+ }
119+
120+ string GetXRayCoreVersion ( )
121+ {
122+ return core . GetVersion ( ) ;
123+ }
77124 }
78125
79126 private ServerWindow CreateServerWindow ( )
@@ -90,6 +137,7 @@ private ServerWindow CreateServerWindow()
90137 convertConfigLinkToV2Ray : templateHandler . ConverLinkToV2Ray ,
91138 loadConfig : core . LoadConfig ,
92139 testConnection : core . Test ,
140+ getLogPath : settingsHandler . UserSettings . GetLogPath ,
93141 onCopyConfig : configHandler . CopyConfig ,
94142 onCreateConfig : configHandler . CreateConfig ,
95143 onDeleteConfig : configHandler . LoadConfigFiles ,
0 commit comments