added reload config, and show config buttons to the context menu
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
#nullable enable
|
#nullable enable
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
|
|
||||||
@@ -25,7 +27,19 @@ public class TrayApp : ApplicationContext
|
|||||||
};
|
};
|
||||||
|
|
||||||
var menu = new ContextMenuStrip();
|
var menu = new ContextMenuStrip();
|
||||||
|
|
||||||
|
// Show config.json
|
||||||
|
menu.Items.Add("Show Config", null, OnShowConfig);
|
||||||
|
|
||||||
|
// Reload config
|
||||||
|
menu.Items.Add("Reload Config", null, OnReloadConfig);
|
||||||
|
|
||||||
|
// Separator
|
||||||
|
menu.Items.Add(new ToolStripSeparator());
|
||||||
|
|
||||||
|
// Exit
|
||||||
menu.Items.Add("Exit", null, OnExit);
|
menu.Items.Add("Exit", null, OnExit);
|
||||||
|
|
||||||
trayIcon.ContextMenuStrip = menu;
|
trayIcon.ContextMenuStrip = menu;
|
||||||
|
|
||||||
// Main telemetry timer
|
// Main telemetry timer
|
||||||
@@ -65,6 +79,66 @@ public class TrayApp : ApplicationContext
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Show config.json in Explorer
|
||||||
|
private void OnShowConfig(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string exeDir = AppContext.BaseDirectory;
|
||||||
|
string cfgPath = Path.Combine(exeDir, "config.json");
|
||||||
|
|
||||||
|
if (File.Exists(cfgPath))
|
||||||
|
{
|
||||||
|
Process.Start("explorer.exe", $"/select,\"{cfgPath}\"");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show(
|
||||||
|
"config.json not found.",
|
||||||
|
"Show Config",
|
||||||
|
MessageBoxButtons.OK,
|
||||||
|
MessageBoxIcon.Warning
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(
|
||||||
|
$"Failed to open config.json:\n{ex.Message}",
|
||||||
|
"Show Config Error",
|
||||||
|
MessageBoxButtons.OK,
|
||||||
|
MessageBoxIcon.Error
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reload config handler
|
||||||
|
private void OnReloadConfig(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
telemetry.Dispose();
|
||||||
|
telemetry = new Telemetry();
|
||||||
|
telemetry.Initialize();
|
||||||
|
|
||||||
|
MessageBox.Show(
|
||||||
|
"Configuration reloaded successfully.",
|
||||||
|
"Reload Config",
|
||||||
|
MessageBoxButtons.OK,
|
||||||
|
MessageBoxIcon.Information
|
||||||
|
);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(
|
||||||
|
$"Failed to reload configuration:\n{ex.Message}",
|
||||||
|
"Reload Config Error",
|
||||||
|
MessageBoxButtons.OK,
|
||||||
|
MessageBoxIcon.Error
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void OnExit(object? sender, EventArgs e)
|
private void OnExit(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
telemetry.Dispose();
|
telemetry.Dispose();
|
||||||
|
|||||||
Reference in New Issue
Block a user