Winify – Diff between revs 73 and 75

Subversion Repositories:
Rev:
Only display areas with differencesIgnore whitespace
Rev 73 Rev 75
1 using System; 1 using System;
-   2 using System.IO;
2 using System.Linq; 3 using System.Linq;
3 using System.Threading; 4 using System.Threading;
4 using System.Windows.Forms; 5 using System.Windows.Forms;
5 using Announcements; 6 using Announcements;
6 using Servers; 7 using Servers;
7   8  
8 namespace Winify.Settings 9 namespace Winify.Settings
9 { 10 {
10 public partial class SettingsForm : Form 11 public partial class SettingsForm : Form
11 { 12 {
12 #region Public Events & Delegates 13 #region Public Events & Delegates
13   14  
14 public event EventHandler<SettingsSavedEventArgs> Save; 15 public event EventHandler<SettingsSavedEventArgs> Save;
15   16  
16 #endregion 17 #endregion
17   18  
18 #region Private Delegates, Events, Enums, Properties, Indexers and Fields 19 #region Private Delegates, Events, Enums, Properties, Indexers and Fields
19   20  
20 private readonly BindingSource _announcementBindingSource; 21 private readonly BindingSource _announcementBindingSource;
21   22  
22 private Announcements.Announcements _announcements; 23 private Announcements.Announcements _announcements;
23   24  
24 private readonly BindingSource _serverBindingSource; 25 private readonly BindingSource _serverBindingSource;
25   26  
26 private Servers.Servers _servers; 27 private Servers.Servers _servers;
27   28  
28 private Announcement _announcement; 29 private Announcement _announcement;
29   30  
30 private Server _server; 31 private Server _server;
31 private readonly MainForm _mainForm; 32 private readonly MainForm _mainForm;
32 private readonly CancellationToken _cancellationToken; 33 private readonly CancellationToken _cancellationToken;
33 private readonly BindingSource _configurationBindingSource; 34 private readonly BindingSource _configurationBindingSource;
34 private readonly BindingSource _configurationProxyBindingSource; 35 private readonly BindingSource _configurationProxyBindingSource;
35   36  
36 #endregion 37 #endregion
37   38  
38 #region Constructors, Destructors and Finalizers 39 #region Constructors, Destructors and Finalizers
39   40  
40 public SettingsForm() 41 public SettingsForm()
41 { 42 {
42 InitializeComponent(); 43 InitializeComponent();
43 } 44 }
44   45  
45 public SettingsForm(MainForm mainForm, Servers.Servers servers, Announcements.Announcements announcements, 46 public SettingsForm(MainForm mainForm, Servers.Servers servers, Announcements.Announcements announcements,
46 CancellationToken cancellationToken) : this() 47 CancellationToken cancellationToken) : this()
47 { 48 {
48 _mainForm = mainForm; 49 _mainForm = mainForm;
49 _servers = servers; 50 _servers = servers;
50 _announcements = announcements; 51 _announcements = announcements;
51 _cancellationToken = cancellationToken; 52 _cancellationToken = cancellationToken;
52   53  
53 _configurationBindingSource = new BindingSource(); 54 _configurationBindingSource = new BindingSource();
54 _configurationBindingSource.DataSource = _mainForm.Configuration; 55 _configurationBindingSource.DataSource = _mainForm.Configuration;
55   56  
56 _configurationProxyBindingSource = new BindingSource(); 57 _configurationProxyBindingSource = new BindingSource();
57 _configurationProxyBindingSource.DataSource = _mainForm.Configuration.Proxy; 58 _configurationProxyBindingSource.DataSource = _mainForm.Configuration.Proxy;
58   59  
59 switch (_servers?.Server == null) 60 switch (_servers?.Server == null)
60 { 61 {
61 case true: 62 case true:
62 _servers = new Servers.Servers(); 63 _servers = new Servers.Servers();
63 _server = new Server(); 64 _server = new Server();
64 _servers.Server.Add(_server); 65 _servers.Server.Add(_server);
65 break; 66 break;
66 default: 67 default:
67 _server = _servers.Server.FirstOrDefault(); 68 _server = _servers.Server.FirstOrDefault();
68 if (_server == null) 69 if (_server == null)
69 { 70 {
70 _server = new Server(); 71 _server = new Server();
71 _servers.Server.Add(_server); 72 _servers.Server.Add(_server);
72 } 73 }
73 break; 74 break;
74 } 75 }
75   76  
76 _serverBindingSource = new BindingSource(); 77 _serverBindingSource = new BindingSource();
77 _serverBindingSource.DataSource = _server; 78 _serverBindingSource.DataSource = _server;
78   79  
79 switch (_announcements?.Announcement == null) 80 switch (_announcements?.Announcement == null)
80 { 81 {
81 case true: 82 case true:
82 _announcements = new Announcements.Announcements(); 83 _announcements = new Announcements.Announcements();
83 _announcement = new Announcement(); 84 _announcement = new Announcement();
84 _announcements.Announcement.Add(_announcement); 85 _announcements.Announcement.Add(_announcement);
85 break; 86 break;
86 default: 87 default:
87 _announcement = _announcements.Announcement.FirstOrDefault(); 88 _announcement = _announcements.Announcement.FirstOrDefault();
88 if (_announcement == null) 89 if (_announcement == null)
89 { 90 {
90 _announcement = new Announcement(); 91 _announcement = new Announcement();
91 _announcements.Announcement.Add(_announcement); 92 _announcements.Announcement.Add(_announcement);
92 } 93 }
93 break; 94 break;
94 } 95 }
95   96  
96 _announcementBindingSource = new BindingSource(); 97 _announcementBindingSource = new BindingSource();
97 _announcementBindingSource.DataSource = _announcement; 98 _announcementBindingSource.DataSource = _announcement;
98 } 99 }
99   100  
100 #endregion 101 #endregion
101   102  
102 #region Event Handlers 103 #region Event Handlers
103   104  
104 private void Button1_Click(object sender, EventArgs e) 105 private void Button1_Click(object sender, EventArgs e)
105 { 106 {
106 var server = new Server(); 107 var server = new Server();
107 server.Name = "New Server"; 108 server.Name = "New Server";
108   109  
109 _servers.Server.Add(server); 110 _servers.Server.Add(server);
110 _serverBindingSource.DataSource = server; 111 _serverBindingSource.DataSource = server;
111   112  
112 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements)); 113 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements));
113   114  
114 listBox1.SelectedItem = server; 115 listBox1.SelectedItem = server;
115 } 116 }
116   117  
117 private void Button2_Click(object sender, EventArgs e) 118 private void Button2_Click(object sender, EventArgs e)
118 { 119 {
119 var index = -1; 120 var index = -1;
120   121  
121 if (listBox1.SelectedItem is Server server) 122 if (listBox1.SelectedItem is Server server)
122 { 123 {
123 index = listBox1.Items.IndexOf(server); 124 index = listBox1.Items.IndexOf(server);
124 _servers.Server.Remove(server); 125 _servers.Server.Remove(server);
125 } 126 }
126   127  
127 if (index >= listBox1.Items.Count) 128 if (index >= listBox1.Items.Count)
128 { 129 {
129 --index; 130 --index;
130 } 131 }
131   132  
132 listBox1.SelectedIndex = index; 133 listBox1.SelectedIndex = index;
133 } 134 }
134   135  
135 private void ListBox1_SelectedIndexChanged(object sender, EventArgs e) 136 private void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
136 { 137 {
137 138
138 var listBox = (ListBox)sender; 139 var listBox = (ListBox)sender;
139 if (listBox.SelectedIndex == -1) 140 if (listBox.SelectedIndex == -1)
140 { 141 {
141 _serverBindingSource.DataSource = new 142 _serverBindingSource.DataSource = new
142 { Name = string.Empty, Url = string.Empty, Username = string.Empty, Password = string.Empty }; 143 { Name = string.Empty, Url = string.Empty, Username = string.Empty, Password = string.Empty };
143 return; 144 return;
144 } 145 }
145   146  
146 if (listBox.SelectedItem is Server server) 147 if (listBox.SelectedItem is Server server)
147 { 148 {
148 _server = server; 149 _server = server;
149   150  
150 _serverBindingSource.DataSource = _server; 151 _serverBindingSource.DataSource = _server;
151 } 152 }
152 } 153 }
153   154  
154 private void Button3_Click(object sender, EventArgs e) 155 private void Button3_Click(object sender, EventArgs e)
155 { 156 {
156 if (listBox2.SelectedItem is Announcement announcement) _announcements.Announcement.Remove(announcement); 157 if (listBox2.SelectedItem is Announcement announcement) _announcements.Announcement.Remove(announcement);
157 } 158 }
158   159  
159 private void Button4_Click(object sender, EventArgs e) 160 private void Button4_Click(object sender, EventArgs e)
160 { 161 {
161 var announcement = new Announcement(); 162 var announcement = new Announcement();
162 if (int.TryParse(appIdTextBox.Text, out var appId)) announcement.AppId = appId; 163 if (int.TryParse(appIdTextBox.Text, out var appId)) announcement.AppId = appId;
163   164  
164 _announcements.Announcement.Add(announcement); 165 _announcements.Announcement.Add(announcement);
165   166  
166 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements)); 167 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements));
167   168  
168 listBox2.SelectedItem = announcement; 169 listBox2.SelectedItem = announcement;
169 } 170 }
170   171  
171 private void ListBox2_SelectedIndexChanged(object sender, EventArgs e) 172 private void ListBox2_SelectedIndexChanged(object sender, EventArgs e)
172 { 173 {
173 var listBox = (ListBox)sender; 174 var listBox = (ListBox)sender;
174   175  
175 if (listBox.SelectedItem is Announcement announcement) 176 if (listBox.SelectedItem is Announcement announcement)
176 { 177 {
177 _announcement = announcement; 178 _announcement = announcement;
178   179  
179 _announcementBindingSource.DataSource = _announcement; 180 _announcementBindingSource.DataSource = _announcement;
180 } 181 }
181 } 182 }
182   183  
183 private void Button6_Click(object sender, EventArgs e) 184 private void Button6_Click(object sender, EventArgs e)
184 { 185 {
185 Close(); 186 Close();
186 } 187 }
187   188  
188 private void Button5_Click(object sender, EventArgs e) 189 private void Button5_Click(object sender, EventArgs e)
189 { 190 {
190 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements)); 191 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements));
191   192  
192 Close(); 193 Close();
193 } 194 }
194   195  
195 #endregion 196 #endregion
196   197  
197 private void checkBox4_CheckedStateChanged(object sender, EventArgs e) 198 private void checkBox4_CheckedStateChanged(object sender, EventArgs e)
198 { 199 {
199 var checkBox = (CheckBox)sender; 200 var checkBox = (CheckBox)sender;
200 var state = checkBox.Checked; 201 var state = checkBox.Checked;
201 if (state) 202 if (state)
202 { 203 {
203 ToggleTableRow(tableLayoutPanel13, 0, false); 204 ToggleTableRow(tableLayoutPanel13, 0, false);
204   205  
205 return; 206 return;
206 } 207 }
207   208  
208 ToggleTableRow(tableLayoutPanel13, 0, true); 209 ToggleTableRow(tableLayoutPanel13, 0, true);
209 } 210 }
210   211  
211 private static void ToggleTableRow(TableLayoutPanel tableLayoutPanel, int row, bool enable) 212 private static void ToggleTableRow(TableLayoutPanel tableLayoutPanel, int row, bool enable)
212 { 213 {
213 var count = tableLayoutPanel.RowCount; 214 var count = tableLayoutPanel.RowCount;
214 foreach (var i in Enumerable.Range(0, count)) 215 foreach (var i in Enumerable.Range(0, count))
215 { 216 {
216 var control = tableLayoutPanel.GetControlFromPosition(i, row); 217 var control = tableLayoutPanel.GetControlFromPosition(i, row);
217 control.Enabled = enable; 218 control.Enabled = enable;
218 } 219 }
219 } 220 }
220   221  
221 private void SettingsForm_Load(object sender, EventArgs e) 222 private void SettingsForm_Load(object sender, EventArgs e)
222 { 223 {
223 Utilities.WindowState.FormTracker.Track(this); 224 Utilities.WindowState.FormTracker.Track(this);
224   225  
225 // Databindings. 226 // Databindings.
226 trackBar1.DataBindings.Add(new Binding("Value", _configurationBindingSource, 227 trackBar1.DataBindings.Add(new Binding("Value", _configurationBindingSource,
227 nameof(_mainForm.Configuration.RetrievePastNotificationHours), true, 228 nameof(_mainForm.Configuration.RetrievePastNotificationHours), true,
228 DataSourceUpdateMode.OnPropertyChanged)); 229 DataSourceUpdateMode.OnPropertyChanged));
229   230  
230 textBox4.DataBindings.Add(new Binding("Text", _configurationBindingSource, 231 textBox4.DataBindings.Add(new Binding("Text", _configurationBindingSource,
231 nameof(_mainForm.Configuration.RetrievePastNotificationHours), true, 232 nameof(_mainForm.Configuration.RetrievePastNotificationHours), true,
232 DataSourceUpdateMode.OnPropertyChanged)); 233 DataSourceUpdateMode.OnPropertyChanged));
233   234  
234 numericUpDown1.DataBindings.Add(new Binding("Value", _configurationBindingSource, 235 numericUpDown1.DataBindings.Add(new Binding("Value", _configurationBindingSource,
235 nameof(_mainForm.Configuration.ToastDuration), true, 236 nameof(_mainForm.Configuration.ToastDuration), true,
236 DataSourceUpdateMode.OnPropertyChanged)); 237 DataSourceUpdateMode.OnPropertyChanged));
237   238  
238 checkBox4.DataBindings.Add( 239 checkBox4.DataBindings.Add(
239 new Binding("Checked", _configurationBindingSource, nameof(_mainForm.Configuration.InfiniteToastDuration), true, 240 new Binding("Checked", _configurationBindingSource, nameof(_mainForm.Configuration.InfiniteToastDuration), true,
240 DataSourceUpdateMode.OnPropertyChanged)); 241 DataSourceUpdateMode.OnPropertyChanged));
241   242  
242 checkBox1.DataBindings.Add(new Binding("Checked", _configurationBindingSource, 243 checkBox1.DataBindings.Add(new Binding("Checked", _configurationBindingSource,
243 nameof(_mainForm.Configuration.LaunchOnBoot), true, DataSourceUpdateMode.OnPropertyChanged)); 244 nameof(_mainForm.Configuration.LaunchOnBoot), true, DataSourceUpdateMode.OnPropertyChanged));
244   245  
245 checkBox2.DataBindings.Add(new Binding("Checked", _configurationBindingSource, 246 checkBox2.DataBindings.Add(new Binding("Checked", _configurationBindingSource,
246 nameof(_mainForm.Configuration.IgnoreSelfSignedCertificates), true, 247 nameof(_mainForm.Configuration.IgnoreSelfSignedCertificates), true,
247 DataSourceUpdateMode.OnPropertyChanged)); 248 DataSourceUpdateMode.OnPropertyChanged));
248   249  
249 checkBox3.DataBindings.Add( 250 checkBox3.DataBindings.Add(
250 new Binding("Checked", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Enable), true, 251 new Binding("Checked", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Enable), true,
251 DataSourceUpdateMode.OnPropertyChanged)); 252 DataSourceUpdateMode.OnPropertyChanged));
252 textBox1.DataBindings.Add( 253 textBox1.DataBindings.Add(
253 new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Url), true, 254 new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Url), true,
254 DataSourceUpdateMode.OnPropertyChanged)); 255 DataSourceUpdateMode.OnPropertyChanged));
255 textBox2.DataBindings.Add( 256 textBox2.DataBindings.Add(
256 new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Username), true, 257 new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Username), true,
257 DataSourceUpdateMode.OnPropertyChanged)); 258 DataSourceUpdateMode.OnPropertyChanged));
258 textBox3.DataBindings.Add( 259 textBox3.DataBindings.Add(
259 new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Password), true, 260 new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Password), true,
260 DataSourceUpdateMode.OnPropertyChanged)); 261 DataSourceUpdateMode.OnPropertyChanged));
261   262  
262 serverNameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Name), true, 263 serverNameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Name), true,
263 DataSourceUpdateMode.OnPropertyChanged)); 264 DataSourceUpdateMode.OnPropertyChanged));
264 serverUrlTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Url), true, 265 serverUrlTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Url), true,
265 DataSourceUpdateMode.OnPropertyChanged)); 266 DataSourceUpdateMode.OnPropertyChanged));
266 serverUsernameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Username), 267 serverUsernameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Username),
267 true, 268 true,
268 DataSourceUpdateMode.OnPropertyChanged)); 269 DataSourceUpdateMode.OnPropertyChanged));
269 serverPasswordTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Password), 270 serverPasswordTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Password),
270 true, 271 true,
271 DataSourceUpdateMode.OnPropertyChanged)); 272 DataSourceUpdateMode.OnPropertyChanged));
272   273  
273 listBox1.DataSource = _servers.Server; 274 listBox1.DataSource = _servers.Server;
274 listBox1.DisplayMember = "Name"; 275 listBox1.DisplayMember = "Name";
275 listBox1.DataBindings.Add(new Binding("Text", _servers.Server, "Name", true, 276 listBox1.DataBindings.Add(new Binding("Text", _servers.Server, "Name", true,
276 DataSourceUpdateMode.OnPropertyChanged)); 277 DataSourceUpdateMode.OnPropertyChanged));
277   278  
278 appIdTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, nameof(_announcement.AppId), 279 appIdTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, nameof(_announcement.AppId),
279 true, 280 true,
280 DataSourceUpdateMode.OnPropertyChanged)); 281 DataSourceUpdateMode.OnPropertyChanged));
281 numericUpDown2.DataBindings.Add(new Binding("Value", _announcementBindingSource, 282 numericUpDown2.DataBindings.Add(new Binding("Value", _announcementBindingSource,
282 nameof(_announcement.LingerTime), true, 283 nameof(_announcement.LingerTime), true,
283 DataSourceUpdateMode.OnPropertyChanged)); 284 DataSourceUpdateMode.OnPropertyChanged));
284 checkBox5.DataBindings.Add( 285 checkBox5.DataBindings.Add(
285 new Binding("Checked", _announcementBindingSource, nameof(_announcement.Ignore), true, 286 new Binding("Checked", _announcementBindingSource, nameof(_announcement.Ignore), true,
286 DataSourceUpdateMode.OnPropertyChanged)); 287 DataSourceUpdateMode.OnPropertyChanged));
287 checkBox6.DataBindings.Add( 288 checkBox6.DataBindings.Add(
288 new Binding("Checked", _announcementBindingSource, nameof(_announcement.EnableChime), true, 289 new Binding("Checked", _announcementBindingSource, nameof(_announcement.EnableChime), true,
289 DataSourceUpdateMode.OnPropertyChanged)); 290 DataSourceUpdateMode.OnPropertyChanged));
290   291  
291 listBox2.DataSource = _announcements.Announcement; 292 listBox2.DataSource = _announcements.Announcement;
292 listBox2.DisplayMember = "Id"; 293 listBox2.DisplayMember = "Id";
293 listBox2.DataBindings.Add(new Binding("Text", _announcements.Announcement, "Id", true, 294 listBox2.DataBindings.Add(new Binding("Text", _announcements.Announcement, "Id", true,
294 DataSourceUpdateMode.OnPropertyChanged)); 295 DataSourceUpdateMode.OnPropertyChanged));
295   296  
296 // Miscellaneous. 297 // Miscellaneous.
297 ToggleTableRow(tableLayoutPanel13, 0, !_mainForm.Configuration.InfiniteToastDuration); 298 ToggleTableRow(tableLayoutPanel13, 0, !_mainForm.Configuration.InfiniteToastDuration);
298 } 299 }
299   300  
300 private void trackBar1_ValueChanged(object sender, EventArgs e) 301 private void trackBar1_ValueChanged(object sender, EventArgs e)
301 { 302 {
302   303  
303 } 304 }
-   305  
-   306 private void button7_Click(object sender, EventArgs e)
-   307 {
-   308 globalChimeOpenFileDialog1.FileOk += GlobalChimeOpenFileDialog1FileOk;
-   309 globalChimeOpenFileDialog1.ShowDialog();
-   310 }
-   311  
-   312 private void GlobalChimeOpenFileDialog1FileOk(object sender, System.ComponentModel.CancelEventArgs e)
-   313 {
-   314 globalChimeOpenFileDialog1.FileOk -= GlobalChimeOpenFileDialog1FileOk;
-   315  
-   316 if (string.IsNullOrEmpty(globalChimeOpenFileDialog1.FileName) ||
-   317 !File.Exists(globalChimeOpenFileDialog1.FileName))
-   318 {
-   319 return;
-   320 }
-   321  
-   322 _mainForm.Configuration.Chime = File.ReadAllBytes(globalChimeOpenFileDialog1.FileName);
-   323 }
-   324  
-   325 private void button8_Click(object sender, EventArgs e)
-   326 {
-   327 announcementsChimeOpenFileDialog1.FileOk += AnnouncementsChimeOpenFileDialog1_FileOk;
-   328 announcementsChimeOpenFileDialog1.ShowDialog();
-   329 }
-   330  
-   331 private void AnnouncementsChimeOpenFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
-   332 {
-   333 if (string.IsNullOrEmpty(announcementsChimeOpenFileDialog1.FileName) ||
-   334 !File.Exists(announcementsChimeOpenFileDialog1.FileName))
-   335 {
-   336 return;
-   337 }
-   338  
-   339 _announcement.Chime = File.ReadAllBytes(announcementsChimeOpenFileDialog1.FileName);
-   340 }
304 } 341 }
305 } 342 }
306   343  
307
Generated by GNU Enscript 1.6.5.90.
344
Generated by GNU Enscript 1.6.5.90.
308   345  
309   346  
310   347