Use delegates

This commit is contained in:
Charles Milette 2018-10-01 16:22:13 -04:00
parent 1ae48e8d91
commit 08129ae865
No known key found for this signature in database
GPG key ID: 1A5AE81377AD973A
22 changed files with 72 additions and 62 deletions

View file

@ -1,4 +1,4 @@
namespace ShareX
namespace ShareX.HelpersLib
{
partial class DebugForm
{

View file

@ -28,16 +28,20 @@
using System.Reflection;
using System.Text;
using System.Windows.Forms;
using ShareX.HelpersLib;
namespace ShareX
namespace ShareX.HelpersLib
{
public partial class DebugForm : Form
{
private static DebugForm instance;
public delegate void EventHandler(string log);
public event EventHandler UploadRequested;
public Logger Logger { get; private set; }
public bool HasUploadRequested => UploadRequested != null;
private DebugForm(Logger logger)
{
InitializeComponent();
@ -54,6 +58,7 @@ private DebugForm(Logger logger)
llRunningFrom.LinkClicked += (sender, e) => Helpers.OpenFolder(startupPath);
Logger.MessageAdded += logger_MessageAdded;
Activated += (sender, e) => btnUploadLog.Visible = HasUploadRequested;
FormClosing += (sender, e) => Logger.MessageAdded -= logger_MessageAdded;
}
@ -117,7 +122,7 @@ private void btnUploadLog_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(rtbDebug.Text))
{
UploadManager.UploadText(rtbDebug.Text);
UploadRequested?.Invoke(rtbDebug.Text);
}
}

View file

@ -131,6 +131,12 @@
<Compile Include="Controls\ToolStripNumericUpDown.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Forms\DebugForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\DebugForm.Designer.cs">
<DependentUpon>DebugForm.cs</DependentUpon>
</Compile>
<Compile Include="Helpers\JsonHelpers.cs" />
<Compile Include="PointInfo.cs" />
<Compile Include="SevenZipManager.cs" />
@ -766,6 +772,57 @@
<EmbeddedResource Include="Forms\ClipboardContentViewer.resx">
<DependentUpon>ClipboardContentViewer.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.de.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.es-MX.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.es.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.fr.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.hu.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.id-ID.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.it-IT.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.ko-KR.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.nl-NL.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.pt-BR.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.ru.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.tr.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.uk.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.vi-VN.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.zh-CN.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.zh-TW.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ErrorForm.de.resx">
<DependentUpon>ErrorForm.cs</DependentUpon>
</EmbeddedResource>

View file

@ -1602,7 +1602,12 @@ private void tsbImageHistory_Click(object sender, EventArgs e)
private void tsmiShowDebugLog_Click(object sender, EventArgs e)
{
DebugForm.GetFormInstance(DebugHelper.Logger).ForceActivate();
var form = DebugForm.GetFormInstance(DebugHelper.Logger);
if (!form.HasUploadRequested)
{
form.UploadRequested += text => UploadManager.UploadText(text);
}
form.ForceActivate();
}
private void tsmiTestImageUpload_Click(object sender, EventArgs e)

View file

@ -164,12 +164,6 @@
<Compile Include="Controls\NewsListControl.Designer.cs">
<DependentUpon>NewsListControl.cs</DependentUpon>
</Compile>
<Compile Include="Forms\DebugForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\DebugForm.Designer.cs">
<DependentUpon>DebugForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\TextUploadForm.cs">
<SubType>Form</SubType>
</Compile>
@ -837,57 +831,6 @@
<EmbeddedResource Include="Forms\ClipboardFormatForm.zh-TW.resx">
<DependentUpon>ClipboardFormatForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.de.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.es-MX.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.es.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.fr.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.hu.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.id-ID.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.it-IT.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.ko-KR.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.nl-NL.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.pt-BR.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.ru.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.tr.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.uk.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.vi-VN.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.zh-CN.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\DebugForm.zh-TW.resx">
<DependentUpon>DebugForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\EncoderProgramForm.de.resx">
<DependentUpon>EncoderProgramForm.cs</DependentUpon>
</EmbeddedResource>