Winify

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 54  →  ?path2? @ 55
/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();
}
 
private void SettingsForm_Load(object sender, EventArgs e)
#endregion
 
private void checkBox4_CheckedStateChanged(object sender, EventArgs e)
{
checkBox1.Checked = _mainForm.Configuration.LaunchOnBoot;
var checkBox = (CheckBox)sender;
var state = checkBox.Checked;
if (state)
{
ToggleTableRow(tableLayoutPanel13, 0, false);
 
return;
}
 
ToggleTableRow(tableLayoutPanel13, 0, true);
}
 
#endregion
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 CheckBox2_CheckedChanged(object sender, EventArgs e)
private void SettingsForm_Load(object sender, EventArgs e)
{
_mainForm.Configuration.IgnoreSelfSignedCertificates = ((CheckBox)sender).Checked;
// Databindings.
numericUpDown1.DataBindings.Add(new Binding("Value", _configurationBindingSource,
nameof(_mainForm.Configuration.ToastDuration), true,
DataSourceUpdateMode.OnPropertyChanged));
 
_mainForm.ChangedConfigurationContinuation.Schedule(TimeSpan.FromSeconds(1),
async () => { await _mainForm.SaveConfiguration(); }, _cancellationToken);
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;
}
 
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));
 
switch (_announcements?.Announcement == null)
{
case true:
_announcements = new Announcements.Announcements();
_announcement = new Announcement();
_announcements.Announcement.Add(_announcement);
break;
default:
_announcement = _announcements.Announcement.FirstOrDefault();
break;
}
 
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);
}
}
}