cbfa535d20
* Add log tab * Merge control mesg & duty log * Fix ping (calc loss) * Add current connection in ping tab. Able to copy by double clicking item * Log font has moved to config * Add debug enable on config + save * Display ping failed reason (debug enable) * Handled copy exception * New content list in duty tab * Show loss rate option in ping tab * Rename Chinese packet info file (No data) * Bigger UI font
273 lines
5.8 KiB
C#
273 lines
5.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace DutyContent.Tab
|
|
{
|
|
public partial class ConfigForm : Form, Interface.ISuppLocale, Interface.ISuppActPlugin
|
|
{
|
|
private static ConfigForm _self;
|
|
public static ConfigForm Self => _self;
|
|
|
|
public ConfigForm()
|
|
{
|
|
_self = this;
|
|
|
|
InitializeComponent();
|
|
}
|
|
|
|
public void PluginDeinitialize()
|
|
{
|
|
|
|
}
|
|
|
|
public void PluginInitialize()
|
|
{
|
|
//
|
|
lblCurrentLang.Text = Locale.Text("LANG");
|
|
|
|
//
|
|
var lang = MakeConfigLangList();
|
|
|
|
foreach (var i in lang)
|
|
{
|
|
var n = cboDispLang.Items.Add(i);
|
|
if (i.Equals(DcConfig.Language))
|
|
cboDispLang.SelectedIndex = n;
|
|
}
|
|
|
|
if (cboDispLang.SelectedIndex < 0)
|
|
cboDispLang.SelectedIndex = 0;
|
|
|
|
Task.Factory.StartNew(() =>
|
|
{
|
|
while (true)
|
|
{
|
|
Updater.CheckNewVersion();
|
|
Thread.Sleep(30 * 60 * 1000);
|
|
}
|
|
});
|
|
|
|
//
|
|
rdoDataUpdateLocal.Checked = !DcConfig.DataRemoteUpdate;
|
|
rdoDataUpdateRemote.Checked = DcConfig.DataRemoteUpdate;
|
|
|
|
//
|
|
rdoStatusBarEnable.Checked = DcConfig.StatusBar;
|
|
rdoStatusBarDisable.Checked = !DcConfig.StatusBar;
|
|
|
|
//
|
|
rdoDebugEnable.Checked = DcConfig.DebugEnable;
|
|
rdoDebugDisable.Checked = !DcConfig.DebugEnable;
|
|
}
|
|
|
|
public void RefreshLocale()
|
|
{
|
|
|
|
}
|
|
|
|
public void UpdateUiLocale()
|
|
{
|
|
lblDispLang.Text = Locale.Text(201);
|
|
|
|
lblDataUpdate.Text = Locale.Text(203);
|
|
rdoDataUpdateLocal.Text = Locale.Text(204);
|
|
rdoDataUpdateRemote.Text = Locale.Text(205);
|
|
|
|
lblUiFont.Text = Locale.Text(210);
|
|
btnUiFont.Text = DcConfig.UiFontFamily;
|
|
|
|
lblLogFont.Text = Locale.Text(216);
|
|
btnLogFont.Text = $"{DcConfig.Duty.LogFontFamily}, {DcConfig.Duty.LogFontSize}";
|
|
|
|
lblTag.Text = Locale.Text(211, DcConfig.PluginTag, DcConfig.PluginVersion);
|
|
|
|
lblUseStatusBar.Text = Locale.Text(212);
|
|
rdoStatusBarEnable.Text = Locale.Text(213);
|
|
rdoStatusBarDisable.Text = Locale.Text(214);
|
|
lblStatusBarNeedRestart.Text = Locale.Text(215);
|
|
|
|
|
|
rdoDebugEnable.Text = Locale.Text(213);
|
|
rdoDebugDisable.Text = Locale.Text(214);
|
|
}
|
|
|
|
public static List<string> MakeConfigLangList()
|
|
{
|
|
List<string> lst = new List<string>();
|
|
|
|
lst.Add($"<{Locale.Text(26)}>");
|
|
|
|
DirectoryInfo di = new DirectoryInfo(DcConfig.DataPath);
|
|
|
|
foreach (var fi in di.GetFiles("DcLang-*.txt"))
|
|
{
|
|
var s = fi.Name.Substring(7, fi.Name.Length - 7 - 4);
|
|
lst.Add(s);
|
|
}
|
|
|
|
return lst;
|
|
}
|
|
|
|
private void CboDispLang_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (!DcConfig.PluginEnable)
|
|
return;
|
|
|
|
if (cboDispLang.SelectedIndex == 0)
|
|
{
|
|
// default
|
|
DcConfig.Language = string.Empty;
|
|
}
|
|
else
|
|
{
|
|
var l = (string)cboDispLang.SelectedItem;
|
|
|
|
if (string.IsNullOrWhiteSpace(l) || l.Equals(DcConfig.Language))
|
|
return;
|
|
|
|
DcConfig.Language = l;
|
|
}
|
|
|
|
//
|
|
DcConfig.ReadLanguage();
|
|
DcControl.Self?.UpdateUiLocale();
|
|
DcConfig.SaveConfig();
|
|
|
|
lblCurrentLang.Text = Locale.Text("LANG");
|
|
}
|
|
|
|
private void InternalDataUpdate(bool value)
|
|
{
|
|
if (!DcConfig.PluginEnable)
|
|
return;
|
|
|
|
if (value && DcConfig.DataRemoteUpdate)
|
|
return;
|
|
if (!value && !DcConfig.DataRemoteUpdate)
|
|
return;
|
|
|
|
DcConfig.DataRemoteUpdate = value;
|
|
DcConfig.SaveConfig();
|
|
}
|
|
|
|
private void RdoDataUpdateLocal_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
InternalDataUpdate(false);
|
|
}
|
|
|
|
private void RdoDataUpdateRemote_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
InternalDataUpdate(true);
|
|
}
|
|
|
|
private void BtnUiFont_Click(object sender, EventArgs e)
|
|
{
|
|
Font ret = (Font)WorkerAct.Invoker(new WorkerAct.ObjectReturnerDelegate(() =>
|
|
{
|
|
FontDialog dg = new FontDialog
|
|
{
|
|
Font = btnUiFont.Font,
|
|
FontMustExist = true,
|
|
AllowVerticalFonts = false,
|
|
AllowVectorFonts = false,
|
|
ShowColor = false,
|
|
ShowEffects = false,
|
|
MaxSize = 12,
|
|
MinSize = 12,
|
|
};
|
|
|
|
return dg.ShowDialog() == DialogResult.OK ? dg.Font : null;
|
|
}));
|
|
|
|
if (ret != null)
|
|
{
|
|
DcConfig.UiFontFamily = ret.Name;
|
|
DcControl.Self.UpdateUiLocale();
|
|
DcConfig.SaveConfig();
|
|
}
|
|
}
|
|
|
|
private void BtnLogFont_Click(object sender, EventArgs e)
|
|
{
|
|
Font ret = (Font)WorkerAct.Invoker(new WorkerAct.ObjectReturnerDelegate(() =>
|
|
{
|
|
FontDialog dg = new FontDialog
|
|
{
|
|
Font = Tab.LogForm.Self?.LogFont,
|
|
FontMustExist = true,
|
|
AllowVerticalFonts = false
|
|
};
|
|
|
|
return (dg.ShowDialog() == DialogResult.OK) ? dg.Font : null;
|
|
}));
|
|
|
|
if (ret != null)
|
|
{
|
|
if (LogForm.Self != null)
|
|
LogForm.Self.LogFont = ret;
|
|
|
|
DcConfig.Duty.LogFontFamily = ret.Name;
|
|
DcConfig.Duty.LogFontSize = ret.Size;
|
|
DcConfig.SaveConfig();
|
|
|
|
btnLogFont.Font = ret;
|
|
btnLogFont.Text = $"{DcConfig.Duty.LogFontFamily}, {DcConfig.Duty.LogFontSize}";
|
|
}
|
|
}
|
|
|
|
private void InternalStatusBar(bool value)
|
|
{
|
|
if (!DcConfig.PluginEnable)
|
|
return;
|
|
|
|
if (value && DcConfig.StatusBar)
|
|
return;
|
|
if (!value && !DcConfig.StatusBar)
|
|
return;
|
|
|
|
DcConfig.StatusBar = value;
|
|
DcConfig.SaveConfig();
|
|
|
|
DcControl.Self?.ShowStatusBarAsConfig();
|
|
}
|
|
|
|
private void RdoStatusBarEnable_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
InternalStatusBar(true);
|
|
}
|
|
|
|
private void RdoStatusBarDisable_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
InternalStatusBar(false);
|
|
}
|
|
|
|
private void InternalDebug(bool value)
|
|
{
|
|
if (!DcConfig.PluginEnable)
|
|
return;
|
|
|
|
if (value && DcConfig.DebugEnable)
|
|
return;
|
|
if (!value && !DcConfig.DebugEnable)
|
|
return;
|
|
|
|
DcConfig.DebugEnable = value;
|
|
DcConfig.SaveConfig();
|
|
}
|
|
|
|
private void rdoDebugEnable_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
InternalDebug(true);
|
|
}
|
|
|
|
private void rdoDebugDisable_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
InternalDebug(false);
|
|
}
|
|
}
|
|
}
|