Support drag & drop importing sxcu files

This commit is contained in:
Jaex 2019-02-01 10:54:48 +03:00
parent b81f737c50
commit 070bd3dbc0
3 changed files with 1176 additions and 1724 deletions

View file

@ -43,6 +43,11 @@ private void InitializeComponent()
this.btnCustomUploaderURLShortenerTest = new System.Windows.Forms.Button();
this.lblCustomUploaderTextUploader = new System.Windows.Forms.Label();
this.gbCustomUploaders = new System.Windows.Forms.GroupBox();
this.btnCustomUploaderHelp = new ShareX.HelpersLib.MenuButton();
this.cmsCustomUploaderHelp = new System.Windows.Forms.ContextMenuStrip(this.components);
this.tsmiCustomUploaderGuide = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiCustomUploaderExamples = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiCustomUploaderExportAll = new System.Windows.Forms.ToolStripMenuItem();
this.btnCustomUploaderNew = new System.Windows.Forms.Button();
this.btnCustomUploaderDuplicate = new System.Windows.Forms.Button();
this.btnCustomUploaderClearUploaders = new System.Windows.Forms.Button();
@ -150,16 +155,12 @@ private void InitializeComponent()
this.cbCustomUploaderURLSharingService = new System.Windows.Forms.ComboBox();
this.btnCustomUploaderURLSharingServiceTest = new System.Windows.Forms.Button();
this.ttHelpTip = new System.Windows.Forms.ToolTip(this.components);
this.cmsCustomUploaderHelp = new System.Windows.Forms.ContextMenuStrip(this.components);
this.tsmiCustomUploaderGuide = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiCustomUploaderExamples = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiCustomUploaderExportAll = new System.Windows.Forms.ToolStripMenuItem();
this.btnCustomUploaderHelp = new ShareX.HelpersLib.MenuButton();
this.tscCustomUploaderResponseText.ContentPanel.SuspendLayout();
this.tscCustomUploaderResponseText.TopToolStripPanel.SuspendLayout();
this.tscCustomUploaderResponseText.SuspendLayout();
this.tsCustomUploaderResponseText.SuspendLayout();
this.gbCustomUploaders.SuspendLayout();
this.cmsCustomUploaderHelp.SuspendLayout();
this.pCustomUploader.SuspendLayout();
this.tcCustomUploader.SuspendLayout();
this.tpCustomUploaderRequest.SuspendLayout();
@ -183,7 +184,6 @@ private void InitializeComponent()
this.tpCustomUploaderResult.SuspendLayout();
this.pCustomUploaderResult.SuspendLayout();
this.tpCustomUploaderResponseText.SuspendLayout();
this.cmsCustomUploaderHelp.SuspendLayout();
this.SuspendLayout();
//
// tscCustomUploaderResponseText
@ -293,6 +293,41 @@ private void InitializeComponent()
this.gbCustomUploaders.Name = "gbCustomUploaders";
this.gbCustomUploaders.TabStop = false;
//
// btnCustomUploaderHelp
//
resources.ApplyResources(this.btnCustomUploaderHelp, "btnCustomUploaderHelp");
this.btnCustomUploaderHelp.Menu = this.cmsCustomUploaderHelp;
this.btnCustomUploaderHelp.Name = "btnCustomUploaderHelp";
this.btnCustomUploaderHelp.UseVisualStyleBackColor = true;
//
// cmsCustomUploaderHelp
//
this.cmsCustomUploaderHelp.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsmiCustomUploaderGuide,
this.tsmiCustomUploaderExamples,
this.tsmiCustomUploaderExportAll});
this.cmsCustomUploaderHelp.Name = "cmsCustomUploaderHelp";
this.cmsCustomUploaderHelp.ShowImageMargin = false;
resources.ApplyResources(this.cmsCustomUploaderHelp, "cmsCustomUploaderHelp");
//
// tsmiCustomUploaderGuide
//
this.tsmiCustomUploaderGuide.Name = "tsmiCustomUploaderGuide";
resources.ApplyResources(this.tsmiCustomUploaderGuide, "tsmiCustomUploaderGuide");
this.tsmiCustomUploaderGuide.Click += new System.EventHandler(this.tsmiCustomUploaderGuide_Click);
//
// tsmiCustomUploaderExamples
//
this.tsmiCustomUploaderExamples.Name = "tsmiCustomUploaderExamples";
resources.ApplyResources(this.tsmiCustomUploaderExamples, "tsmiCustomUploaderExamples");
this.tsmiCustomUploaderExamples.Click += new System.EventHandler(this.tsmiCustomUploaderExamples_Click);
//
// tsmiCustomUploaderExportAll
//
this.tsmiCustomUploaderExportAll.Name = "tsmiCustomUploaderExportAll";
resources.ApplyResources(this.tsmiCustomUploaderExportAll, "tsmiCustomUploaderExportAll");
this.tsmiCustomUploaderExportAll.Click += new System.EventHandler(this.tsmiCustomUploaderExportAll_Click);
//
// btnCustomUploaderNew
//
resources.ApplyResources(this.btnCustomUploaderNew, "btnCustomUploaderNew");
@ -510,8 +545,6 @@ private void InitializeComponent()
//
// lvCustomUploaderHeaders
//
this.lvCustomUploaderHeaders.AllowDrop = true;
this.lvCustomUploaderHeaders.AllowItemDrag = true;
this.lvCustomUploaderHeaders.AutoFillColumn = true;
this.lvCustomUploaderHeaders.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.chCustomUploaderHeadersName,
@ -551,8 +584,6 @@ private void InitializeComponent()
//
// lvCustomUploaderParameters
//
this.lvCustomUploaderParameters.AllowDrop = true;
this.lvCustomUploaderParameters.AllowItemDrag = true;
this.lvCustomUploaderParameters.AutoFillColumn = true;
this.lvCustomUploaderParameters.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
@ -645,8 +676,6 @@ private void InitializeComponent()
//
// lvCustomUploaderArguments
//
this.lvCustomUploaderArguments.AllowDrop = true;
this.lvCustomUploaderArguments.AllowItemDrag = true;
this.lvCustomUploaderArguments.AutoFillColumn = true;
this.lvCustomUploaderArguments.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.chCustomUploaderArgumentsName,
@ -982,8 +1011,6 @@ private void InitializeComponent()
//
// lvCustomUploaderRegexps
//
this.lvCustomUploaderRegexps.AllowDrop = true;
this.lvCustomUploaderRegexps.AllowItemDrag = true;
this.lvCustomUploaderRegexps.AutoFillColumn = true;
this.lvCustomUploaderRegexps.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.lvRegexpsColumn});
@ -1108,43 +1135,9 @@ private void InitializeComponent()
this.ttHelpTip.UseAnimation = false;
this.ttHelpTip.UseFading = false;
//
// cmsCustomUploaderHelp
//
this.cmsCustomUploaderHelp.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsmiCustomUploaderGuide,
this.tsmiCustomUploaderExamples,
this.tsmiCustomUploaderExportAll});
this.cmsCustomUploaderHelp.Name = "cmsCustomUploaderHelp";
this.cmsCustomUploaderHelp.ShowImageMargin = false;
resources.ApplyResources(this.cmsCustomUploaderHelp, "cmsCustomUploaderHelp");
//
// tsmiCustomUploaderGuide
//
this.tsmiCustomUploaderGuide.Name = "tsmiCustomUploaderGuide";
resources.ApplyResources(this.tsmiCustomUploaderGuide, "tsmiCustomUploaderGuide");
this.tsmiCustomUploaderGuide.Click += new System.EventHandler(this.tsmiCustomUploaderGuide_Click);
//
// tsmiCustomUploaderExamples
//
this.tsmiCustomUploaderExamples.Name = "tsmiCustomUploaderExamples";
resources.ApplyResources(this.tsmiCustomUploaderExamples, "tsmiCustomUploaderExamples");
this.tsmiCustomUploaderExamples.Click += new System.EventHandler(this.tsmiCustomUploaderExamples_Click);
//
// tsmiCustomUploaderExportAll
//
this.tsmiCustomUploaderExportAll.Name = "tsmiCustomUploaderExportAll";
resources.ApplyResources(this.tsmiCustomUploaderExportAll, "tsmiCustomUploaderExportAll");
this.tsmiCustomUploaderExportAll.Click += new System.EventHandler(this.tsmiCustomUploaderExportAll_Click);
//
// btnCustomUploaderHelp
//
resources.ApplyResources(this.btnCustomUploaderHelp, "btnCustomUploaderHelp");
this.btnCustomUploaderHelp.Menu = this.cmsCustomUploaderHelp;
this.btnCustomUploaderHelp.Name = "btnCustomUploaderHelp";
this.btnCustomUploaderHelp.UseVisualStyleBackColor = true;
//
// CustomUploaderSettingsForm
//
this.AllowDrop = true;
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Window;
@ -1168,6 +1161,8 @@ private void InitializeComponent()
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.Name = "CustomUploaderSettingsForm";
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.CustomUploaderSettingsForm_DragDrop);
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.CustomUploaderSettingsForm_DragEnter);
this.tscCustomUploaderResponseText.ContentPanel.ResumeLayout(false);
this.tscCustomUploaderResponseText.ContentPanel.PerformLayout();
this.tscCustomUploaderResponseText.TopToolStripPanel.ResumeLayout(false);
@ -1177,6 +1172,7 @@ private void InitializeComponent()
this.tsCustomUploaderResponseText.ResumeLayout(false);
this.tsCustomUploaderResponseText.PerformLayout();
this.gbCustomUploaders.ResumeLayout(false);
this.cmsCustomUploaderHelp.ResumeLayout(false);
this.pCustomUploader.ResumeLayout(false);
this.pCustomUploader.PerformLayout();
this.tcCustomUploader.ResumeLayout(false);
@ -1207,7 +1203,6 @@ private void InitializeComponent()
this.tpCustomUploaderResult.ResumeLayout(false);
this.pCustomUploaderResult.ResumeLayout(false);
this.tpCustomUploaderResponseText.ResumeLayout(false);
this.cmsCustomUploaderHelp.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();

View file

@ -552,6 +552,27 @@ private void CustomUploaderUpdateList()
}
}
private void AddTextToActiveURLField(string text)
{
RichTextBox rtb;
switch (customUploaderURLType)
{
default:
case URLType.URL:
rtb = rtbCustomUploaderURL;
break;
case URLType.ThumbnailURL:
rtb = rtbCustomUploaderThumbnailURL;
break;
case URLType.DeletionURL:
rtb = rtbCustomUploaderDeletionURL;
break;
}
rtb.AppendText(text);
}
private async Task TestCustomUploader(CustomUploaderDestinationType type, int index)
{
if (!Config.CustomUploadersList.IsValidIndex(index))
@ -733,6 +754,51 @@ private void CustomUploaderFormatXMLData()
#region Form events
private void CustomUploaderSettingsForm_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop, false))
{
string[] files = e.Data.GetData(DataFormats.FileDrop, false) as string[];
if (files != null && files.Any(x => !string.IsNullOrEmpty(x) && x.EndsWith(".sxcu")))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void CustomUploaderSettingsForm_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop, false))
{
string[] files = e.Data.GetData(DataFormats.FileDrop, false) as string[];
if (files != null)
{
foreach (string filePath in files.Where(x => !string.IsNullOrEmpty(x) && x.EndsWith(".sxcu")))
{
CustomUploaderItem cui = JsonHelpers.DeserializeFromFilePath<CustomUploaderItem>(filePath);
if (cui != null)
{
cui.CheckBackwardCompatibility();
CustomUploaderAdd(cui);
}
}
eiCustomUploaders_ImportCompleted();
}
}
}
private void btnCustomUploaderNew_Click(object sender, EventArgs e)
{
CustomUploaderNew();
@ -1375,27 +1441,6 @@ private void rtbCustomUploaderDeletionURL_TextChanged(object sender, EventArgs e
CustomUploaderSyntaxHighlight(rtbCustomUploaderDeletionURL);
}
private void AddTextToActiveURLField(string text)
{
RichTextBox rtb;
switch (customUploaderURLType)
{
default:
case URLType.URL:
rtb = rtbCustomUploaderURL;
break;
case URLType.ThumbnailURL:
rtb = rtbCustomUploaderThumbnailURL;
break;
case URLType.DeletionURL:
rtb = rtbCustomUploaderDeletionURL;
break;
}
rtb.AppendText(text);
}
private void txtCustomUploaderLog_LinkClicked(object sender, LinkClickedEventArgs e)
{
URLHelpers.OpenURL(e.LinkText);

File diff suppressed because it is too large Load diff