Made uploaders config form singleton

This commit is contained in:
Jaex 2016-04-30 11:30:03 +03:00
parent bb8cc6df6b
commit 82f6e38336
2 changed files with 40 additions and 11 deletions

View file

@ -40,18 +40,35 @@ namespace ShareX.UploadersLib
{
public partial class UploadersConfigForm : Form
{
private static UploadersConfigForm instance;
public UploadersConfig Config { get; private set; }
private ImageList uploadersImageList;
private URLType urlType = URLType.URL;
private URLType customUploaderURLType = URLType.URL;
public UploadersConfigForm(UploadersConfig config)
private UploadersConfigForm(UploadersConfig config)
{
Config = config;
InitializeComponent();
InitializeControls();
}
public static UploadersConfigForm GetFormInstance(UploadersConfig config, out bool firstInstance)
{
if (instance == null || instance.IsDisposed)
{
instance = new UploadersConfigForm(config);
firstInstance = true;
}
else
{
firstInstance = false;
}
return instance;
}
private void UploadersConfigForm_Shown(object sender, EventArgs e)
{
LoadSettings();
@ -2861,24 +2878,24 @@ private void btnCustomUploaderXmlSyntaxAdd_Click(object sender, EventArgs e)
private void txtCustomUploaderURL_Enter(object sender, EventArgs e)
{
urlType = URLType.URL;
customUploaderURLType = URLType.URL;
}
private void txtCustomUploaderThumbnailURL_Enter(object sender, EventArgs e)
{
urlType = URLType.ThumbnailURL;
customUploaderURLType = URLType.ThumbnailURL;
}
private void txtCustomUploaderDeletionURL_Enter(object sender, EventArgs e)
{
urlType = URLType.DeletionURL;
customUploaderURLType = URLType.DeletionURL;
}
private void AddTextToActiveURLField(string text)
{
TextBox tb;
switch (urlType)
switch (customUploaderURLType)
{
default:
case URLType.URL:

View file

@ -916,17 +916,29 @@ public static void OpenUploadersConfigWindow(IUploaderService uploaderService =
Program.UploaderSettingsResetEvent.WaitOne();
}
using (UploadersConfigForm uploadersConfigForm = new UploadersConfigForm(Program.UploadersConfig))
bool firstInstance;
UploadersConfigForm form = UploadersConfigForm.GetFormInstance(Program.UploadersConfig, out firstInstance);
if (firstInstance)
{
form.FormClosed += (sender, e) => Program.UploadersConfigSaveAsync();
if (uploaderService != null)
{
form.NavigateToTabPage(uploaderService.GetUploadersConfigTabPage(form));
}
form.Show();
}
else
{
if (uploaderService != null)
{
uploadersConfigForm.NavigateToTabPage(uploaderService.GetUploadersConfigTabPage(uploadersConfigForm));
form.NavigateToTabPage(uploaderService.GetUploadersConfigTabPage(form));
}
uploadersConfigForm.ShowDialog();
form.ForceActivate();
}
Program.UploadersConfigSaveAsync();
}
}
}