tbf/EventViewer/Forms/SettingsDlg.cs

86 lines
3.0 KiB
C#

///
/// Copyright (c) 2020 Sensus Slovensko a.s.
///
using System;
using System.Drawing;
using System.Windows.Forms;
using EventViewer.Resources;
namespace EventViewer.Forms
{
public partial class SettingsDlg : Form
{
public SettingsDlg()
{
InitializeComponent();
Localize();
ManageCheckGroupBox(nonAnonymousAccessCheckBox, userGroupBox);
}
void Localize()
{
Text = Strings.Settings;
eventsDBConnStringLabel.Text = Strings.Events_database;
usersDBConnStringLabel.Text = Strings.Users_database;
nonAnonymousAccessCheckBox.Text = Strings.Non_anonymous_access;
userNameLabel.Text = Strings.User_name;
recentTimeDaysLabel.Text = Strings.Recent_time_period_in_days;
languageLabel.Text = Strings.Language;
okButton.Text = Strings.OK;
cancelButton.Text = Strings.Cancel;
}
private void SettingsDlg_Load(object sender, EventArgs e)
{
LocalSettings ls = Program.LocalSettings;
eventsDBConnStringTextBox.Text = ls.ConnectionString;
usersDBConnStringTextBox.Text = ls.UsersDBConnString;
nonAnonymousAccessCheckBox.Checked = ls.NonAnonymousAccess;
userNameTextBox.Text = ls.UserName;
recentTimeDaysTextBox.Text = ls.RecentTimeDays.ToString();
languageTextBox.Text = ls.Language;
}
private void okButton_Click(object sender, EventArgs e)
{
int days;
LocalSettings ls = Program.LocalSettings;
ls.ConnectionString = eventsDBConnStringTextBox.Text;
ls.UsersDBConnString = usersDBConnStringTextBox.Text;
ls.NonAnonymousAccess = nonAnonymousAccessCheckBox.Checked;
ls.UserName = userNameTextBox.Text;
if (int.TryParse(recentTimeDaysTextBox.Text, out days) && days > 0) ls.RecentTimeDays = days;
ls.Language = languageTextBox.Text;
ls.Save();
DialogResult = DialogResult.OK;
Close();
}
private void cancelButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
private void nonAnonymousAccessCheckBox_CheckedChanged(object sender, EventArgs e)
{
ManageCheckGroupBox(nonAnonymousAccessCheckBox, userGroupBox);
}
private void ManageCheckGroupBox(CheckBox chk, GroupBox grp)
{
/// Make sure the CheckBox isn't in the GroupBox. This will only happen the first time.
if (chk.Parent == grp)
{
grp.Parent.Controls.Add(chk); /// Reparent the CheckBox so it's not in the GroupBox.
chk.Location = new Point(chk.Left + grp.Left, chk.Top + grp.Top); /// Adjust the CheckBox's location.
chk.BringToFront(); /// Move the CheckBox to the top of the stacking order.
}
/// Enable or disable the GroupBox.
grp.Enabled = chk.Checked;
}
}
}