public LogForm(ShadowsocksController controller, string filename) { this.controller = controller; this.filename = filename; InitializeComponent(); Icon = Icon.FromHandle(Resources.ssw128.GetHicon()); LogViewerConfig config = controller.GetConfigurationCopy().logViewer; if (config == null) { config = new LogViewerConfig(); } else { topMostTrigger = config.topMost; wrapTextTrigger = config.wrapText; toolbarTrigger = config.toolbarShown; LogMessageTextBox.BackColor = config.GetBackgroundColor(); LogMessageTextBox.ForeColor = config.GetTextColor(); LogMessageTextBox.Font = config.GetFont(); } controller.TrafficChanged += controller_TrafficChanged; UpdateTexts(); }
public Configuration() { version = UpdateChecker.Version; strategy = ""; index = 0; global = false; enabled = false; shareOverLan = false; firstRun = true; localPort = 1080; portableMode = true; showPluginOutput = false; pacUrl = ""; useOnlinePac = false; secureLocalPac = true; regeneratePacOnUpdate = true; autoCheckUpdate = false; checkPreRelease = false; skippedUpdateVersion = ""; isVerboseLogging = false; // hidden options isIPv6Enabled = false; generateLegacyUrl = false; geositeUrl = ""; geositeSha256sumUrl = ""; geositeDirectGroups = new List <string>() { "private", "cn", "geolocation-!cn@cn", }; geositeProxiedGroups = new List <string>() { "geolocation-!cn", }; geositePreferDirect = false; userAgent = "ShadowsocksWindows/$version"; logViewer = new LogViewerConfig(); proxy = new ForwardProxyConfig(); hotkey = new HotkeyConfig(); firstRunOnNewVersion = false; configs = new List <Server>(); onlineConfigSource = new List <string>(); }
public Configuration() { version = UpdateChecker.Version; strategy = ""; index = 0; global = false; enabled = false; shareOverLan = false; firstRun = true; localPort = 1080; portableMode = true; showPluginOutput = false; pacUrl = ""; useOnlinePac = false; secureLocalPac = true; regeneratePacOnUpdate = true; availabilityStatistics = false; autoCheckUpdate = false; checkPreRelease = false; isVerboseLogging = false; // hidden options isIPv6Enabled = false; generateLegacyUrl = false; geositeUrl = ""; geositeGroup = "geolocation-!cn"; geositeBlacklistMode = true; userAgent = "ShadowsocksWindows/$version"; logViewer = new LogViewerConfig(); proxy = new ProxyConfig(); hotkey = new HotkeyConfig(); firstRunOnNewVersion = false; configs = new List <Server>(); onlineConfigSource = new List <string>(); }
public void SaveLogViewerConfig(LogViewerConfig newConfig) { _config.logViewer = newConfig; Configuration.Save(_config); }
private void LogForm_Load(object sender, EventArgs e) { InitContent(); timer = new Timer(); timer.Interval = 300; timer.Tick += Timer_Tick; timer.Start(); LogViewerConfig config = controller.GetConfigurationCopy().logViewer; if (config == null) config = new LogViewerConfig(); Height = config.height; Width = config.width; Top = config.GetBestTop(); Left = config.GetBestLeft(); if(config.maximized) { WindowState = FormWindowState.Maximized; } topMostTriggerLock = true; TopMost = TopMostMenuItem.Checked = TopMostCheckBox.Checked = topMostTrigger; topMostTriggerLock = false; wrapTextTriggerLock = true; LogMessageTextBox.WordWrap = WrapTextMenuItem.Checked = WrapTextCheckBox.Checked = wrapTextTrigger; wrapTextTriggerLock = false; ToolbarFlowLayoutPanel.Visible = ShowToolbarMenuItem.Checked = toolbarTrigger; }
private void LogForm_FormClosing(object sender, FormClosingEventArgs e) { timer.Stop(); controller.TrafficChanged -= controller_TrafficChanged; LogViewerConfig config = controller.GetConfigurationCopy().logViewer; if (config == null) config = new LogViewerConfig(); config.topMost = topMostTrigger; config.wrapText = wrapTextTrigger; config.toolbarShown = toolbarTrigger; config.SetFont(LogMessageTextBox.Font); config.SetBackgroundColor(LogMessageTextBox.BackColor); config.SetTextColor(LogMessageTextBox.ForeColor); if(!(config.maximized = WindowState == FormWindowState.Maximized)) { config.top = Top; config.left = Left; config.height = Height; config.width = Width; } controller.SaveLogViewerConfig(config); }
public void FixConfiguration() { if (localPort == 0) { localPort = 1080; } if (keepVisitTime == 0) { keepVisitTime = 180; } if (portMap == null) { portMap = new Dictionary <string, object>(); } if (token == null) { token = new Dictionary <string, string>(); } if (connect_timeout == 0) { connect_timeout = 10; reconnectTimes = 2; TTL = 180; keepVisitTime = 180; } if (localAuthPassword == null || localAuthPassword.Length < 16) { localAuthPassword = randString(20); } Dictionary <string, int> id = new Dictionary <string, int>(); if (index < 0 || index >= configs.Count) { index = 0; } foreach (Server server in configs) { if (id.ContainsKey(server.id)) { byte[] new_id = new byte[16]; Util.Utils.RandBytes(new_id, new_id.Length); server.id = BitConverter.ToString(new_id).Replace("-", ""); } else { id[server.id] = 0; } } bool type_err = false; foreach (KeyValuePair <string, object> pair in portMap) { if (pair.Value.GetType() != typeof(PortMapConfig)) { type_err = true; } } if (type_err) { Dictionary <string, object> new_portMap = new Dictionary <string, object>(); foreach (KeyValuePair <string, object> pair in portMap) { if (pair.Value.GetType() != typeof(PortMapConfig)) { PortMapConfig pm; Type type = typeof(PortMapConfig); object obj = Activator.CreateInstance(type); System.Reflection.FieldInfo[] field = null; field = type.GetFields(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public); pm = new PortMapConfig(); foreach (System.Reflection.FieldInfo fi in field) { if (((SimpleJson.JsonObject)pair.Value).ContainsKey(fi.Name)) { if (fi.FieldType == typeof(int)) { int val = (int)(Int64)((SimpleJson.JsonObject)pair.Value)[fi.Name]; fi.SetValue(pm, val); } else { fi.SetValue(pm, ((SimpleJson.JsonObject)pair.Value)[fi.Name]); } } } new_portMap[pair.Key] = pm; } else { new_portMap[pair.Key] = pair.Value; } } portMap = new_portMap; } if (logViewer == null) { logViewer = new LogViewerConfig(); } else { logViewer.FixConfiguration(); } }
private void LogForm_FormClosing(object sender, FormClosingEventArgs e) { timer.Stop(); LogViewerConfig config = controller.GetConfigurationCopy().logViewer; if (config == null) config = new LogViewerConfig(); config.topMost = topMostTrigger; config.wrapText = wrapTextTrigger; config.toolbarShown = toolbarTrigger; config.SetFont(LogMessageTextBox.Font); config.SetBackgroundColor(LogMessageTextBox.BackColor); config.SetTextColor(LogMessageTextBox.ForeColor); controller.SaveLogViewerConfig(config); }