/trunk/Winify/Settings/SettingsForm.cs |
@@ -21,11 +21,11 @@ |
|
private readonly BindingSource _announcementBindingSource; |
|
private readonly Announcements.Announcements _announcements; |
private Announcements.Announcements _announcements; |
|
private readonly BindingSource _serverBindingSource; |
|
private readonly Servers.Servers _servers; |
private Servers.Servers _servers; |
|
private Announcement _announcement; |
|
@@ -42,80 +42,29 @@ |
public SettingsForm() |
{ |
InitializeComponent(); |
|
Utilities.WindowState.FormTracker.Track(this); |
} |
|
public SettingsForm(MainForm mainForm) : this() |
public SettingsForm(MainForm mainForm, Servers.Servers servers, Announcements.Announcements announcements, |
CancellationToken cancellationToken) : this() |
{ |
_mainForm = mainForm; |
} |
|
public SettingsForm(MainForm mainForm, Servers.Servers servers, Announcements.Announcements announcements, |
CancellationToken cancellationToken) : this(mainForm) |
{ |
_servers = servers; |
_server = _servers.Server.FirstOrDefault() ?? new Server(); |
_announcements = announcements; |
_cancellationToken = cancellationToken; |
|
_serverBindingSource = new BindingSource(); |
_serverBindingSource.DataSource = _server; |
_configurationBindingSource = new BindingSource(); |
_configurationBindingSource.DataSource = _mainForm.Configuration; |
|
_configurationProxyBindingSource = new BindingSource(); |
_configurationProxyBindingSource.DataSource = _mainForm.Configuration.Proxy; |
|
checkBox3.DataBindings.Add( |
new Binding("Checked", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Enable), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
textBox1.DataBindings.Add( |
new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Url), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
textBox2.DataBindings.Add( |
new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Username), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
textBox3.DataBindings.Add( |
new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Password), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
_serverBindingSource = new BindingSource(); |
_serverBindingSource.DataSource = _server; |
|
checkBox1.DataBindings.Add(new Binding("Checked", _configurationBindingSource, |
nameof(_mainForm.Configuration.LaunchOnBoot), true, DataSourceUpdateMode.OnPropertyChanged)); |
|
checkBox2.DataBindings.Add(new Binding("Checked", _configurationBindingSource, |
nameof(_mainForm.Configuration.IgnoreSelfSignedCertificates), true, DataSourceUpdateMode.OnPropertyChanged)); |
|
serverNameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Name), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverUrlTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Url), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverUsernameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Username), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverPasswordTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Password), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
listBox1.DataSource = _servers.Server; |
listBox1.DisplayMember = "Name"; |
listBox1.DataBindings.Add(new Binding("Text", _servers.Server, "Name", true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
_announcements = announcements; |
_announcement = _announcements.Announcement.FirstOrDefault() ?? new Announcement(); |
|
_announcementBindingSource = new BindingSource(); |
_announcementBindingSource.DataSource = _announcement; |
|
appIdTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, nameof(_announcement.AppId), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
lingerTimeTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, |
nameof(_announcement.LingerTime), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
listBox2.DataSource = _announcements.Announcement; |
listBox2.DisplayMember = "Id"; |
listBox2.DataBindings.Add(new Binding("Text", _announcements.Announcement, "Id", true, |
DataSourceUpdateMode.OnPropertyChanged)); |
} |
|
#endregion |
@@ -124,12 +73,7 @@ |
|
private void CheckBox1_CheckedChanged(object sender, EventArgs e) |
{ |
_mainForm.Configuration.LaunchOnBoot = ((CheckBox)sender).Checked; |
|
_mainForm.ChangedConfigurationContinuation.Schedule(TimeSpan.FromSeconds(1), |
async () => { await _mainForm.SaveConfiguration(); }, _cancellationToken); |
|
Miscellaneous.LaunchOnBootSet(_mainForm.Configuration.LaunchOnBoot); |
} |
|
private void Button1_Click(object sender, EventArgs e) |
@@ -225,19 +169,117 @@ |
Close(); |
} |
|
#endregion |
|
private void checkBox4_CheckedStateChanged(object sender, EventArgs e) |
{ |
var checkBox = (CheckBox)sender; |
var state = checkBox.Checked; |
if (state) |
{ |
ToggleTableRow(tableLayoutPanel13, 0, false); |
|
return; |
} |
|
ToggleTableRow(tableLayoutPanel13, 0, true); |
} |
|
private static void ToggleTableRow(TableLayoutPanel tableLayoutPanel, int row, bool enable) |
{ |
var count = tableLayoutPanel.RowCount; |
foreach (var i in Enumerable.Range(0, count)) |
{ |
var control = tableLayoutPanel.GetControlFromPosition(i, row); |
control.Enabled = enable; |
} |
} |
|
private void SettingsForm_Load(object sender, EventArgs e) |
{ |
checkBox1.Checked = _mainForm.Configuration.LaunchOnBoot; |
// Databindings. |
numericUpDown1.DataBindings.Add(new Binding("Value", _configurationBindingSource, |
nameof(_mainForm.Configuration.ToastDuration), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
checkBox4.DataBindings.Add( |
new Binding("Checked", _configurationBindingSource, nameof(_mainForm.Configuration.InfiniteToastDuration), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
checkBox1.DataBindings.Add(new Binding("Checked", _configurationBindingSource, |
nameof(_mainForm.Configuration.LaunchOnBoot), true, DataSourceUpdateMode.OnPropertyChanged)); |
|
checkBox2.DataBindings.Add(new Binding("Checked", _configurationBindingSource, |
nameof(_mainForm.Configuration.IgnoreSelfSignedCertificates), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
checkBox3.DataBindings.Add( |
new Binding("Checked", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Enable), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
textBox1.DataBindings.Add( |
new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Url), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
textBox2.DataBindings.Add( |
new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Username), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
textBox3.DataBindings.Add( |
new Binding("Text", _configurationProxyBindingSource, nameof(_mainForm.Configuration.Proxy.Password), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
switch (_servers?.Server == null) |
{ |
case true: |
_servers = new Servers.Servers(); |
_server = new Server(); |
_servers.Server.Add(_server); |
break; |
default: |
_server = _servers.Server.FirstOrDefault(); |
break; |
} |
|
#endregion |
serverNameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Name), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverUrlTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Url), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverUsernameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Username), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverPasswordTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Password), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
private void CheckBox2_CheckedChanged(object sender, EventArgs e) |
listBox1.DataSource = _servers.Server; |
listBox1.DisplayMember = "Name"; |
listBox1.DataBindings.Add(new Binding("Text", _servers.Server, "Name", true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
switch (_announcements?.Announcement == null) |
{ |
_mainForm.Configuration.IgnoreSelfSignedCertificates = ((CheckBox)sender).Checked; |
case true: |
_announcements = new Announcements.Announcements(); |
_announcement = new Announcement(); |
_announcements.Announcement.Add(_announcement); |
break; |
default: |
_announcement = _announcements.Announcement.FirstOrDefault(); |
break; |
} |
|
_mainForm.ChangedConfigurationContinuation.Schedule(TimeSpan.FromSeconds(1), |
async () => { await _mainForm.SaveConfiguration(); }, _cancellationToken); |
appIdTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, nameof(_announcement.AppId), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
lingerTimeTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, |
nameof(_announcement.LingerTime), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
listBox2.DataSource = _announcements.Announcement; |
listBox2.DisplayMember = "Id"; |
listBox2.DataBindings.Add(new Binding("Text", _announcements.Announcement, "Id", true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
// Miscellaneous. |
ToggleTableRow(tableLayoutPanel13, 0, !_mainForm.Configuration.InfiniteToastDuration); |
} |
} |
} |