Winify – Diff between revs 49 and 50

Subversion Repositories:
Rev:
Only display areas with differencesIgnore whitespace
Rev 49 Rev 50
1 using System; 1 using System;
2 using System.Linq; 2 using System.Linq;
3 using System.Threading; 3 using System.Threading;
4 using System.Windows.Forms; 4 using System.Windows.Forms;
5 using Announcements; 5 using Announcements;
6 using Servers; 6 using Servers;
7 using Winify.Utilities; 7 using Winify.Utilities;
8 using static System.Windows.Forms.VisualStyles.VisualStyleElement; 8 using static System.Windows.Forms.VisualStyles.VisualStyleElement;
9   9  
10 namespace Winify.Settings 10 namespace Winify.Settings
11 { 11 {
12 public partial class SettingsForm : Form 12 public partial class SettingsForm : Form
13 { 13 {
14 #region Public Events & Delegates 14 #region Public Events & Delegates
15   15  
16 public event EventHandler<SettingsSavedEventArgs> Save; 16 public event EventHandler<SettingsSavedEventArgs> Save;
17   17  
18 #endregion 18 #endregion
19   19  
20 #region Private Delegates, Events, Enums, Properties, Indexers and Fields 20 #region Private Delegates, Events, Enums, Properties, Indexers and Fields
21   21  
22 private readonly BindingSource _announcementBindingSource; 22 private readonly BindingSource _announcementBindingSource;
23   23  
24 private readonly Announcements.Announcements _announcements; 24 private readonly Announcements.Announcements _announcements;
25   25  
26 private readonly BindingSource _serverBindingSource; 26 private readonly BindingSource _serverBindingSource;
27   27  
28 private readonly Servers.Servers _servers; 28 private readonly Servers.Servers _servers;
29   29  
30 private Announcement _announcement; 30 private Announcement _announcement;
31   31  
32 private Server _server; 32 private Server _server;
33 private readonly MainForm _mainForm; 33 private readonly MainForm _mainForm;
34 private readonly CancellationToken _cancellationToken; 34 private readonly CancellationToken _cancellationToken;
35 private readonly BindingSource _configurationBindingSource; 35 private readonly BindingSource _configurationBindingSource;
-   36 private readonly BindingSource _configurationProxyBindingSource;
36   37  
37 #endregion 38 #endregion
38   39  
39 #region Constructors, Destructors and Finalizers 40 #region Constructors, Destructors and Finalizers
40   41  
41 public SettingsForm() 42 public SettingsForm()
42 { 43 {
43 InitializeComponent(); 44 InitializeComponent();
44 Utilities.WindowState.FormTracker.Track(this); 45 Utilities.WindowState.FormTracker.Track(this);
45 } 46 }
46   47  
47 public SettingsForm(MainForm mainForm) : this() 48 public SettingsForm(MainForm mainForm) : this()
48 { 49 {
49 _mainForm = mainForm; 50 _mainForm = mainForm;
50 } 51 }
51   52  
52 public SettingsForm(MainForm mainForm, Servers.Servers servers, Announcements.Announcements announcements, 53 public SettingsForm(MainForm mainForm, Servers.Servers servers, Announcements.Announcements announcements,
53 CancellationToken cancellationToken) : this(mainForm) 54 CancellationToken cancellationToken) : this(mainForm)
54 { 55 {
55 _servers = servers; 56 _servers = servers;
56 _server = _servers.Server.FirstOrDefault() ?? new Server(); 57 _server = _servers.Server.FirstOrDefault() ?? new Server();
57 _cancellationToken = cancellationToken; 58 _cancellationToken = cancellationToken;
58   59  
59 _serverBindingSource = new BindingSource(); 60 _serverBindingSource = new BindingSource();
60 _serverBindingSource.DataSource = _server; 61 _serverBindingSource.DataSource = _server;
61 _configurationBindingSource = new BindingSource(); 62 _configurationBindingSource = new BindingSource();
62 _configurationBindingSource.DataSource = _mainForm.Configuration; 63 _configurationBindingSource.DataSource = _mainForm.Configuration;
-   64 _configurationProxyBindingSource = new BindingSource();
-   65 _configurationProxyBindingSource.DataSource = _mainForm.Configuration.Proxy;
-   66  
-   67 checkBox3.DataBindings.Add(
-   68 new Binding("Checked", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Enable), true,
-   69 DataSourceUpdateMode.OnPropertyChanged));
-   70 textBox1.DataBindings.Add(
-   71 new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Url), true,
-   72 DataSourceUpdateMode.OnPropertyChanged));
-   73 textBox2.DataBindings.Add(
-   74 new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Username), true,
-   75 DataSourceUpdateMode.OnPropertyChanged));
-   76 textBox3.DataBindings.Add(
-   77 new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Password), true,
-   78 DataSourceUpdateMode.OnPropertyChanged));
63   79  
64 checkBox1.DataBindings.Add(new Binding("Checked", _configurationBindingSource, 80 checkBox1.DataBindings.Add(new Binding("Checked", _configurationBindingSource,
65 nameof(_mainForm.Configuration.LaunchOnBoot), true, DataSourceUpdateMode.OnPropertyChanged)); 81 nameof(_mainForm.Configuration.LaunchOnBoot), true, DataSourceUpdateMode.OnPropertyChanged));
66   82  
67 checkBox2.DataBindings.Add(new Binding("Checked", _configurationBindingSource, 83 checkBox2.DataBindings.Add(new Binding("Checked", _configurationBindingSource,
68 nameof(_mainForm.Configuration.IgnoreSelfSignedCertificates), true, DataSourceUpdateMode.OnPropertyChanged)); 84 nameof(_mainForm.Configuration.IgnoreSelfSignedCertificates), true, DataSourceUpdateMode.OnPropertyChanged));
69   85  
70 serverNameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Name), true, 86 serverNameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Name), true,
71 DataSourceUpdateMode.OnPropertyChanged)); 87 DataSourceUpdateMode.OnPropertyChanged));
72 serverUrlTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Url), true, 88 serverUrlTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Url), true,
73 DataSourceUpdateMode.OnPropertyChanged)); 89 DataSourceUpdateMode.OnPropertyChanged));
74 serverUsernameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Username), 90 serverUsernameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Username),
75 true, 91 true,
76 DataSourceUpdateMode.OnPropertyChanged)); 92 DataSourceUpdateMode.OnPropertyChanged));
77 serverPasswordTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Password), 93 serverPasswordTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Password),
78 true, 94 true,
79 DataSourceUpdateMode.OnPropertyChanged)); 95 DataSourceUpdateMode.OnPropertyChanged));
80   96  
81 listBox1.DataSource = _servers.Server; 97 listBox1.DataSource = _servers.Server;
82 listBox1.DisplayMember = "Name"; 98 listBox1.DisplayMember = "Name";
83 listBox1.DataBindings.Add(new Binding("Text", _servers.Server, "Name", true, 99 listBox1.DataBindings.Add(new Binding("Text", _servers.Server, "Name", true,
84 DataSourceUpdateMode.OnPropertyChanged)); 100 DataSourceUpdateMode.OnPropertyChanged));
85   101  
86 _announcements = announcements; 102 _announcements = announcements;
87 _announcement = _announcements.Announcement.FirstOrDefault() ?? new Announcement(); 103 _announcement = _announcements.Announcement.FirstOrDefault() ?? new Announcement();
88   104  
89 _announcementBindingSource = new BindingSource(); 105 _announcementBindingSource = new BindingSource();
90 _announcementBindingSource.DataSource = _announcement; 106 _announcementBindingSource.DataSource = _announcement;
91   107  
92 appIdTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, nameof(_announcement.AppId), 108 appIdTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, nameof(_announcement.AppId),
93 true, 109 true,
94 DataSourceUpdateMode.OnPropertyChanged)); 110 DataSourceUpdateMode.OnPropertyChanged));
95 lingerTimeTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, 111 lingerTimeTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource,
96 nameof(_announcement.LingerTime), true, 112 nameof(_announcement.LingerTime), true,
97 DataSourceUpdateMode.OnPropertyChanged)); 113 DataSourceUpdateMode.OnPropertyChanged));
98   114  
99 listBox2.DataSource = _announcements.Announcement; 115 listBox2.DataSource = _announcements.Announcement;
100 listBox2.DisplayMember = "Id"; 116 listBox2.DisplayMember = "Id";
101 listBox2.DataBindings.Add(new Binding("Text", _announcements.Announcement, "Id", true, 117 listBox2.DataBindings.Add(new Binding("Text", _announcements.Announcement, "Id", true,
102 DataSourceUpdateMode.OnPropertyChanged)); 118 DataSourceUpdateMode.OnPropertyChanged));
103 } 119 }
104   120  
105 #endregion 121 #endregion
106   122  
107 #region Event Handlers 123 #region Event Handlers
108   124  
109 private void CheckBox1_CheckedChanged(object sender, EventArgs e) 125 private void CheckBox1_CheckedChanged(object sender, EventArgs e)
110 { 126 {
111 _mainForm.Configuration.LaunchOnBoot = ((CheckBox)sender).Checked; 127 _mainForm.Configuration.LaunchOnBoot = ((CheckBox)sender).Checked;
112   128  
113 _mainForm.ChangedConfigurationContinuation.Schedule(TimeSpan.FromSeconds(1), 129 _mainForm.ChangedConfigurationContinuation.Schedule(TimeSpan.FromSeconds(1),
114 async () => { await _mainForm.SaveConfiguration(); }, _cancellationToken); 130 async () => { await _mainForm.SaveConfiguration(); }, _cancellationToken);
115   131  
116 Miscellaneous.LaunchOnBootSet(_mainForm.Configuration.LaunchOnBoot); 132 Miscellaneous.LaunchOnBootSet(_mainForm.Configuration.LaunchOnBoot);
117 } 133 }
118   134  
119 private void Button1_Click(object sender, EventArgs e) 135 private void Button1_Click(object sender, EventArgs e)
120 { 136 {
121 var server = new Server(); 137 var server = new Server();
122 server.Name = "New Server"; 138 server.Name = "New Server";
123   139  
124 _servers.Server.Add(server); 140 _servers.Server.Add(server);
125 _serverBindingSource.DataSource = server; 141 _serverBindingSource.DataSource = server;
126   142  
127 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements)); 143 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements));
128   144  
129 listBox1.SelectedItem = server; 145 listBox1.SelectedItem = server;
130 } 146 }
131   147  
132 private void Button2_Click(object sender, EventArgs e) 148 private void Button2_Click(object sender, EventArgs e)
133 { 149 {
134 var index = -1; 150 var index = -1;
135   151  
136 if (listBox1.SelectedItem is Server server) 152 if (listBox1.SelectedItem is Server server)
137 { 153 {
138 index = listBox1.Items.IndexOf(server); 154 index = listBox1.Items.IndexOf(server);
139 _servers.Server.Remove(server); 155 _servers.Server.Remove(server);
140 } 156 }
141   157  
142 if (index >= listBox1.Items.Count) 158 if (index >= listBox1.Items.Count)
143 { 159 {
144 --index; 160 --index;
145 } 161 }
146   162  
147 listBox1.SelectedIndex = index; 163 listBox1.SelectedIndex = index;
148 } 164 }
149   165  
150 private void ListBox1_SelectedIndexChanged(object sender, EventArgs e) 166 private void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
151 { 167 {
152 168
153 var listBox = (ListBox)sender; 169 var listBox = (ListBox)sender;
154 if (listBox.SelectedIndex == -1) 170 if (listBox.SelectedIndex == -1)
155 { 171 {
156 _serverBindingSource.DataSource = new 172 _serverBindingSource.DataSource = new
157 { Name = string.Empty, Url = string.Empty, Username = string.Empty, Password = string.Empty }; 173 { Name = string.Empty, Url = string.Empty, Username = string.Empty, Password = string.Empty };
158 return; 174 return;
159 } 175 }
160   176  
161 if (listBox.SelectedItem is Server server) 177 if (listBox.SelectedItem is Server server)
162 { 178 {
163 _server = server; 179 _server = server;
164   180  
165 _serverBindingSource.DataSource = _server; 181 _serverBindingSource.DataSource = _server;
166 } 182 }
167 } 183 }
168   184  
169 private void Button3_Click(object sender, EventArgs e) 185 private void Button3_Click(object sender, EventArgs e)
170 { 186 {
171 if (listBox2.SelectedItem is Announcement announcement) _announcements.Announcement.Remove(announcement); 187 if (listBox2.SelectedItem is Announcement announcement) _announcements.Announcement.Remove(announcement);
172 } 188 }
173   189  
174 private void Button4_Click(object sender, EventArgs e) 190 private void Button4_Click(object sender, EventArgs e)
175 { 191 {
176 var announcement = new Announcement(); 192 var announcement = new Announcement();
177 if (int.TryParse(appIdTextBox.Text, out var appId)) announcement.AppId = appId; 193 if (int.TryParse(appIdTextBox.Text, out var appId)) announcement.AppId = appId;
178   194  
179 if (int.TryParse(lingerTimeTextBox.Text, out var lingerTime)) announcement.LingerTime = lingerTime; 195 if (int.TryParse(lingerTimeTextBox.Text, out var lingerTime)) announcement.LingerTime = lingerTime;
180   196  
181 _announcements.Announcement.Add(announcement); 197 _announcements.Announcement.Add(announcement);
182   198  
183 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements)); 199 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements));
184   200  
185 listBox2.SelectedItem = announcement; 201 listBox2.SelectedItem = announcement;
186 } 202 }
187   203  
188 private void ListBox2_SelectedIndexChanged(object sender, EventArgs e) 204 private void ListBox2_SelectedIndexChanged(object sender, EventArgs e)
189 { 205 {
190 var listBox = (ListBox)sender; 206 var listBox = (ListBox)sender;
191   207  
192 if (listBox.SelectedItem is Announcement announcement) 208 if (listBox.SelectedItem is Announcement announcement)
193 { 209 {
194 _announcement = announcement; 210 _announcement = announcement;
195   211  
196 _announcementBindingSource.DataSource = _announcement; 212 _announcementBindingSource.DataSource = _announcement;
197 } 213 }
198 } 214 }
199   215  
200 private void Button6_Click(object sender, EventArgs e) 216 private void Button6_Click(object sender, EventArgs e)
201 { 217 {
202 Close(); 218 Close();
203 } 219 }
204   220  
205 private void Button5_Click(object sender, EventArgs e) 221 private void Button5_Click(object sender, EventArgs e)
206 { 222 {
207 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements)); 223 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements));
208   224  
209 Close(); 225 Close();
210 } 226 }
211   227  
212 private void SettingsForm_Load(object sender, EventArgs e) 228 private void SettingsForm_Load(object sender, EventArgs e)
213 { 229 {
214 checkBox1.Checked = _mainForm.Configuration.LaunchOnBoot; 230 checkBox1.Checked = _mainForm.Configuration.LaunchOnBoot;
215 } 231 }
216   232  
217 #endregion 233 #endregion
218   234  
219 private void CheckBox2_CheckedChanged(object sender, EventArgs e) 235 private void CheckBox2_CheckedChanged(object sender, EventArgs e)
220 { 236 {
221 _mainForm.Configuration.IgnoreSelfSignedCertificates = ((CheckBox)sender).Checked; 237 _mainForm.Configuration.IgnoreSelfSignedCertificates = ((CheckBox)sender).Checked;
222   238  
223 _mainForm.ChangedConfigurationContinuation.Schedule(TimeSpan.FromSeconds(1), 239 _mainForm.ChangedConfigurationContinuation.Schedule(TimeSpan.FromSeconds(1),
224 async () => { await _mainForm.SaveConfiguration(); }, _cancellationToken); 240 async () => { await _mainForm.SaveConfiguration(); }, _cancellationToken);
225 } 241 }
226 } 242 }
227 } 243 }
228   244  
229
Generated by GNU Enscript 1.6.5.90.
245
Generated by GNU Enscript 1.6.5.90.
230   246  
231   247  
232   248