mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +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
|
||||
{
|
||||
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:
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue