Winify – Diff between revs 44 and 48

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