fixed #1914: Use singleton debug window

This commit is contained in:
Jaex 2018-01-04 10:08:42 +03:00
parent 3b06f7daa0
commit 212b21904f
2 changed files with 16 additions and 4 deletions

View file

@ -33,9 +33,11 @@ namespace ShareX.HelpersLib
{
public partial class DebugForm : Form
{
private static DebugForm instance;
public Logger Logger { get; private set; }
public DebugForm(Logger logger)
private DebugForm(Logger logger)
{
InitializeComponent();
Icon = ShareXResources.Icon;
@ -54,6 +56,16 @@ public DebugForm(Logger logger)
FormClosing += (sender, e) => Logger.MessageAdded -= logger_MessageAdded;
}
public static DebugForm GetFormInstance(Logger logger)
{
if (instance == null || instance.IsDisposed)
{
instance = new DebugForm(logger);
}
return instance;
}
private void logger_MessageAdded(string message)
{
this.InvokeSafe(() => AppendMessage(message));
@ -65,7 +77,7 @@ private void AppendMessage(string message)
{
int start = rtbDebug.SelectionStart;
int len = rtbDebug.SelectionLength;
rtbDebug.AppendText(message + Environment.NewLine);
rtbDebug.AppendText(message);
if (len > 0)
{
rtbDebug.Select(start, len);
@ -97,7 +109,7 @@ private void btnLoadedAssemblies_Click(object sender, EventArgs e)
}
string assemblies = sb.ToString().Trim();
AppendMessage("Loaded assemblies:\r\n" + assemblies);
DebugHelper.WriteLine($"Loaded assemblies:\r\n{assemblies}");
}
private void rtbDebug_LinkClicked(object sender, LinkClickedEventArgs e)

View file

@ -1585,7 +1585,7 @@ private void tsbImageHistory_Click(object sender, EventArgs e)
private void tsmiShowDebugLog_Click(object sender, EventArgs e)
{
new DebugForm(DebugHelper.Logger).Show();
DebugForm.GetFormInstance(DebugHelper.Logger).ForceActivate();
}
private void tsmiTestImageUpload_Click(object sender, EventArgs e)