mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-02 18:26:27 +13:00
Made uploaders config form singleton
This commit is contained in:
parent
bb8cc6df6b
commit
82f6e38336
2 changed files with 40 additions and 11 deletions
|
@ -40,18 +40,35 @@ namespace ShareX.UploadersLib
|
||||||
{
|
{
|
||||||
public partial class UploadersConfigForm : Form
|
public partial class UploadersConfigForm : Form
|
||||||
{
|
{
|
||||||
|
private static UploadersConfigForm instance;
|
||||||
|
|
||||||
public UploadersConfig Config { get; private set; }
|
public UploadersConfig Config { get; private set; }
|
||||||
|
|
||||||
private ImageList uploadersImageList;
|
private ImageList uploadersImageList;
|
||||||
private URLType urlType = URLType.URL;
|
private URLType customUploaderURLType = URLType.URL;
|
||||||
|
|
||||||
public UploadersConfigForm(UploadersConfig config)
|
private UploadersConfigForm(UploadersConfig config)
|
||||||
{
|
{
|
||||||
Config = config;
|
Config = config;
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
InitializeControls();
|
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)
|
private void UploadersConfigForm_Shown(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
|
@ -2861,24 +2878,24 @@ private void btnCustomUploaderXmlSyntaxAdd_Click(object sender, EventArgs e)
|
||||||
|
|
||||||
private void txtCustomUploaderURL_Enter(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)
|
private void txtCustomUploaderThumbnailURL_Enter(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
urlType = URLType.ThumbnailURL;
|
customUploaderURLType = URLType.ThumbnailURL;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void txtCustomUploaderDeletionURL_Enter(object sender, EventArgs e)
|
private void txtCustomUploaderDeletionURL_Enter(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
urlType = URLType.DeletionURL;
|
customUploaderURLType = URLType.DeletionURL;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddTextToActiveURLField(string text)
|
private void AddTextToActiveURLField(string text)
|
||||||
{
|
{
|
||||||
TextBox tb;
|
TextBox tb;
|
||||||
|
|
||||||
switch (urlType)
|
switch (customUploaderURLType)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case URLType.URL:
|
case URLType.URL:
|
||||||
|
|
|
@ -916,17 +916,29 @@ public static void OpenUploadersConfigWindow(IUploaderService uploaderService =
|
||||||
Program.UploaderSettingsResetEvent.WaitOne();
|
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)
|
if (uploaderService != null)
|
||||||
{
|
{
|
||||||
uploadersConfigForm.NavigateToTabPage(uploaderService.GetUploadersConfigTabPage(uploadersConfigForm));
|
form.NavigateToTabPage(uploaderService.GetUploadersConfigTabPage(form));
|
||||||
}
|
}
|
||||||
|
|
||||||
uploadersConfigForm.ShowDialog();
|
form.ForceActivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
Program.UploadersConfigSaveAsync();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue