mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Added UI to configure uploader filters
This commit is contained in:
parent
3e9c561c0d
commit
4dd247c1fc
5 changed files with 917 additions and 419 deletions
|
@ -37,7 +37,7 @@ public abstract class UploaderService<T> : IUploaderService
|
|||
// Unique identifier
|
||||
public string ServiceIdentifier => EnumValue.ToString();
|
||||
|
||||
public string ServiceName => ((Enum)(object)EnumValue).GetDescription();
|
||||
public string ServiceName => ((Enum)(object)EnumValue).GetLocalizedDescription();
|
||||
|
||||
public virtual Icon ServiceIcon { get; }
|
||||
|
||||
|
@ -49,5 +49,10 @@ public virtual TabPage GetUploadersConfigTabPage(UploadersConfigForm form)
|
|||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return ServiceName;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -37,6 +37,10 @@ public class UploaderFilter
|
|||
public List<string> Extensions { get; set; } = new List<string>();
|
||||
//public long Size { get; set; }
|
||||
|
||||
public UploaderFilter()
|
||||
{
|
||||
}
|
||||
|
||||
public UploaderFilter(string uploader, params string[] extensions)
|
||||
{
|
||||
Uploader = uploader;
|
||||
|
@ -55,6 +59,23 @@ public IGenericUploaderService GetUploaderService()
|
|||
return UploaderFactory.AllGenericUploaderServices.Where(x => x.ServiceIdentifier.Equals(Uploader, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();
|
||||
}
|
||||
|
||||
public void SetExtensions(string extensions)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(extensions))
|
||||
{
|
||||
Extensions = extensions.Split(',').Select(x => x.Trim()).Where(x => !string.IsNullOrEmpty(x)).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
Extensions = new List<string>();
|
||||
}
|
||||
}
|
||||
|
||||
public string GetExtensions()
|
||||
{
|
||||
return string.Join(", ", Extensions);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Uploader;
|
||||
|
|
113
ShareX/Forms/TaskSettingsForm.Designer.cs
generated
113
ShareX/Forms/TaskSettingsForm.Designer.cs
generated
|
@ -228,6 +228,18 @@ private void InitializeComponent()
|
|||
this.pgTaskSettings = new System.Windows.Forms.PropertyGrid();
|
||||
this.chkUseDefaultAdvancedSettings = new System.Windows.Forms.CheckBox();
|
||||
this.tttvMain = new ShareX.HelpersLib.TabToTreeView();
|
||||
this.tpUploaderFilters = new System.Windows.Forms.TabPage();
|
||||
this.txtUploaderFiltersExtensions = new System.Windows.Forms.TextBox();
|
||||
this.lblUploaderFiltersExtensions = new System.Windows.Forms.Label();
|
||||
this.lblUploaderFiltersExtensionsExample = new System.Windows.Forms.Label();
|
||||
this.cbUploaderFiltersDestination = new System.Windows.Forms.ComboBox();
|
||||
this.lblUploaderFiltersDestination = new System.Windows.Forms.Label();
|
||||
this.btnUploaderFiltersAdd = new System.Windows.Forms.Button();
|
||||
this.btnUploaderFiltersUpdate = new System.Windows.Forms.Button();
|
||||
this.btnUploaderFiltersRemove = new System.Windows.Forms.Button();
|
||||
this.lvUploaderFiltersList = new ShareX.HelpersLib.MyListView();
|
||||
this.chUploaderFiltersName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.chUploaderFiltersExtension = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.tcTaskSettings.SuspendLayout();
|
||||
this.tpTask.SuspendLayout();
|
||||
this.cmsDestinations.SuspendLayout();
|
||||
|
@ -278,6 +290,7 @@ private void InitializeComponent()
|
|||
this.tpTools.SuspendLayout();
|
||||
this.pTools.SuspendLayout();
|
||||
this.tpAdvanced.SuspendLayout();
|
||||
this.tpUploaderFilters.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// cmsAfterCapture
|
||||
|
@ -1592,6 +1605,7 @@ private void InitializeComponent()
|
|||
this.tcUpload.Controls.Add(this.tpUploadMain);
|
||||
this.tcUpload.Controls.Add(this.tpFileNaming);
|
||||
this.tcUpload.Controls.Add(this.tpUploadClipboard);
|
||||
this.tcUpload.Controls.Add(this.tpUploaderFilters);
|
||||
resources.ApplyResources(this.tcUpload, "tcUpload");
|
||||
this.tcUpload.Name = "tcUpload";
|
||||
this.tcUpload.SelectedIndex = 0;
|
||||
|
@ -1958,6 +1972,91 @@ private void InitializeComponent()
|
|||
this.tttvMain.TreeViewSize = 190;
|
||||
this.tttvMain.TabChanged += new ShareX.HelpersLib.TabToTreeView.TabChangedEventHandler(this.tttvMain_TabChanged);
|
||||
//
|
||||
// tpUploaderFilters
|
||||
//
|
||||
this.tpUploaderFilters.Controls.Add(this.lvUploaderFiltersList);
|
||||
this.tpUploaderFilters.Controls.Add(this.btnUploaderFiltersRemove);
|
||||
this.tpUploaderFilters.Controls.Add(this.btnUploaderFiltersUpdate);
|
||||
this.tpUploaderFilters.Controls.Add(this.btnUploaderFiltersAdd);
|
||||
this.tpUploaderFilters.Controls.Add(this.lblUploaderFiltersDestination);
|
||||
this.tpUploaderFilters.Controls.Add(this.cbUploaderFiltersDestination);
|
||||
this.tpUploaderFilters.Controls.Add(this.lblUploaderFiltersExtensionsExample);
|
||||
this.tpUploaderFilters.Controls.Add(this.lblUploaderFiltersExtensions);
|
||||
this.tpUploaderFilters.Controls.Add(this.txtUploaderFiltersExtensions);
|
||||
resources.ApplyResources(this.tpUploaderFilters, "tpUploaderFilters");
|
||||
this.tpUploaderFilters.Name = "tpUploaderFilters";
|
||||
this.tpUploaderFilters.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// txtUploaderFiltersExtensions
|
||||
//
|
||||
resources.ApplyResources(this.txtUploaderFiltersExtensions, "txtUploaderFiltersExtensions");
|
||||
this.txtUploaderFiltersExtensions.Name = "txtUploaderFiltersExtensions";
|
||||
//
|
||||
// lblUploaderFiltersExtensions
|
||||
//
|
||||
resources.ApplyResources(this.lblUploaderFiltersExtensions, "lblUploaderFiltersExtensions");
|
||||
this.lblUploaderFiltersExtensions.Name = "lblUploaderFiltersExtensions";
|
||||
//
|
||||
// lblUploaderFiltersExtensionsExample
|
||||
//
|
||||
resources.ApplyResources(this.lblUploaderFiltersExtensionsExample, "lblUploaderFiltersExtensionsExample");
|
||||
this.lblUploaderFiltersExtensionsExample.Name = "lblUploaderFiltersExtensionsExample";
|
||||
//
|
||||
// cbUploaderFiltersDestination
|
||||
//
|
||||
this.cbUploaderFiltersDestination.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cbUploaderFiltersDestination.FormattingEnabled = true;
|
||||
resources.ApplyResources(this.cbUploaderFiltersDestination, "cbUploaderFiltersDestination");
|
||||
this.cbUploaderFiltersDestination.Name = "cbUploaderFiltersDestination";
|
||||
//
|
||||
// lblUploaderFiltersDestination
|
||||
//
|
||||
resources.ApplyResources(this.lblUploaderFiltersDestination, "lblUploaderFiltersDestination");
|
||||
this.lblUploaderFiltersDestination.Name = "lblUploaderFiltersDestination";
|
||||
//
|
||||
// btnUploaderFiltersAdd
|
||||
//
|
||||
resources.ApplyResources(this.btnUploaderFiltersAdd, "btnUploaderFiltersAdd");
|
||||
this.btnUploaderFiltersAdd.Name = "btnUploaderFiltersAdd";
|
||||
this.btnUploaderFiltersAdd.UseVisualStyleBackColor = true;
|
||||
this.btnUploaderFiltersAdd.Click += new System.EventHandler(this.btnUploaderFiltersAdd_Click);
|
||||
//
|
||||
// btnUploaderFiltersUpdate
|
||||
//
|
||||
resources.ApplyResources(this.btnUploaderFiltersUpdate, "btnUploaderFiltersUpdate");
|
||||
this.btnUploaderFiltersUpdate.Name = "btnUploaderFiltersUpdate";
|
||||
this.btnUploaderFiltersUpdate.UseVisualStyleBackColor = true;
|
||||
this.btnUploaderFiltersUpdate.Click += new System.EventHandler(this.btnUploaderFiltersUpdate_Click);
|
||||
//
|
||||
// btnUploaderFiltersRemove
|
||||
//
|
||||
resources.ApplyResources(this.btnUploaderFiltersRemove, "btnUploaderFiltersRemove");
|
||||
this.btnUploaderFiltersRemove.Name = "btnUploaderFiltersRemove";
|
||||
this.btnUploaderFiltersRemove.UseVisualStyleBackColor = true;
|
||||
this.btnUploaderFiltersRemove.Click += new System.EventHandler(this.btnUploaderFiltersRemove_Click);
|
||||
//
|
||||
// lvUploaderFiltersList
|
||||
//
|
||||
resources.ApplyResources(this.lvUploaderFiltersList, "lvUploaderFiltersList");
|
||||
this.lvUploaderFiltersList.AutoFillColumn = true;
|
||||
this.lvUploaderFiltersList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.chUploaderFiltersName,
|
||||
this.chUploaderFiltersExtension});
|
||||
this.lvUploaderFiltersList.FullRowSelect = true;
|
||||
this.lvUploaderFiltersList.HideSelection = false;
|
||||
this.lvUploaderFiltersList.Name = "lvUploaderFiltersList";
|
||||
this.lvUploaderFiltersList.UseCompatibleStateImageBehavior = false;
|
||||
this.lvUploaderFiltersList.View = System.Windows.Forms.View.Details;
|
||||
this.lvUploaderFiltersList.SelectedIndexChanged += new System.EventHandler(this.lvUploaderFiltersList_SelectedIndexChanged);
|
||||
//
|
||||
// chUploaderFiltersName
|
||||
//
|
||||
resources.ApplyResources(this.chUploaderFiltersName, "chUploaderFiltersName");
|
||||
//
|
||||
// chUploaderFiltersExtension
|
||||
//
|
||||
resources.ApplyResources(this.chUploaderFiltersExtension, "chUploaderFiltersExtension");
|
||||
//
|
||||
// TaskSettingsForm
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
|
@ -2039,6 +2138,8 @@ private void InitializeComponent()
|
|||
this.pTools.PerformLayout();
|
||||
this.tpAdvanced.ResumeLayout(false);
|
||||
this.tpAdvanced.PerformLayout();
|
||||
this.tpUploaderFilters.ResumeLayout(false);
|
||||
this.tpUploaderFilters.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
@ -2243,5 +2344,17 @@ private void InitializeComponent()
|
|||
private System.Windows.Forms.Panel pTools;
|
||||
private System.Windows.Forms.TextBox txtToolsScreenColorPickerFormat;
|
||||
private System.Windows.Forms.Label lblToolsScreenColorPickerFormat;
|
||||
private System.Windows.Forms.TabPage tpUploaderFilters;
|
||||
private HelpersLib.MyListView lvUploaderFiltersList;
|
||||
private System.Windows.Forms.ColumnHeader chUploaderFiltersName;
|
||||
private System.Windows.Forms.ColumnHeader chUploaderFiltersExtension;
|
||||
private System.Windows.Forms.Button btnUploaderFiltersRemove;
|
||||
private System.Windows.Forms.Button btnUploaderFiltersUpdate;
|
||||
private System.Windows.Forms.Button btnUploaderFiltersAdd;
|
||||
private System.Windows.Forms.Label lblUploaderFiltersDestination;
|
||||
private System.Windows.Forms.ComboBox cbUploaderFiltersDestination;
|
||||
private System.Windows.Forms.Label lblUploaderFiltersExtensionsExample;
|
||||
private System.Windows.Forms.Label lblUploaderFiltersExtensions;
|
||||
private System.Windows.Forms.TextBox txtUploaderFiltersExtensions;
|
||||
}
|
||||
}
|
|
@ -323,6 +323,19 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
|
||||
#endregion Clipboard upload
|
||||
|
||||
#region Uploader filters
|
||||
|
||||
cbUploaderFiltersDestination.Items.AddRange(UploaderFactory.AllGenericUploaderServices.OrderBy(x => x.ServiceName).ToArray());
|
||||
|
||||
if (TaskSettings.UploadSettings.UploaderFilters == null) TaskSettings.UploadSettings.UploaderFilters = new List<UploaderFilter>();
|
||||
|
||||
foreach (UploaderFilter filter in TaskSettings.UploadSettings.UploaderFilters)
|
||||
{
|
||||
AddUploaderFilterToList(filter);
|
||||
}
|
||||
|
||||
#endregion Uploader filters
|
||||
|
||||
#endregion Upload
|
||||
|
||||
#region Actions
|
||||
|
@ -1226,6 +1239,82 @@ private void cbClipboardUploadAutoIndexFolder_CheckedChanged(object sender, Even
|
|||
TaskSettings.UploadSettings.ClipboardUploadAutoIndexFolder = cbClipboardUploadAutoIndexFolder.Checked;
|
||||
}
|
||||
|
||||
private void AddUploaderFilterToList(UploaderFilter filter)
|
||||
{
|
||||
if (filter != null)
|
||||
{
|
||||
ListViewItem lvi = new ListViewItem(filter.Uploader);
|
||||
lvi.SubItems.Add(filter.GetExtensions());
|
||||
lvi.Tag = filter;
|
||||
|
||||
lvUploaderFiltersList.Items.Add(lvi);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateUploaderFilterFields(UploaderFilter filter)
|
||||
{
|
||||
if (filter == null)
|
||||
{
|
||||
filter = new UploaderFilter();
|
||||
}
|
||||
|
||||
for (int i = 0; i < cbUploaderFiltersDestination.Items.Count; i++)
|
||||
{
|
||||
if (cbUploaderFiltersDestination.Items[i].ToString().Equals(filter.Uploader, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
cbUploaderFiltersDestination.SelectedIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
txtUploaderFiltersExtensions.Text = filter.GetExtensions();
|
||||
}
|
||||
|
||||
private void btnUploaderFiltersAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
IGenericUploaderService service = cbUploaderFiltersDestination.SelectedItem as IGenericUploaderService;
|
||||
|
||||
if (service != null)
|
||||
{
|
||||
UploaderFilter filter = new UploaderFilter();
|
||||
filter.Uploader = service.ServiceIdentifier;
|
||||
filter.SetExtensions(txtUploaderFiltersExtensions.Text);
|
||||
|
||||
TaskSettings.UploadSettings.UploaderFilters.Add(filter);
|
||||
|
||||
AddUploaderFilterToList(filter);
|
||||
|
||||
lvUploaderFiltersList.SelectedIndex = lvUploaderFiltersList.Items.Count - 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnUploaderFiltersUpdate_Click(object sender, EventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
private void btnUploaderFiltersRemove_Click(object sender, EventArgs e)
|
||||
{
|
||||
int index = lvUploaderFiltersList.SelectedIndex;
|
||||
|
||||
if (index > -1)
|
||||
{
|
||||
TaskSettings.UploadSettings.UploaderFilters.RemoveAt(index);
|
||||
lvUploaderFiltersList.Items.RemoveAt(index);
|
||||
}
|
||||
}
|
||||
|
||||
private void lvUploaderFiltersList_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
UploaderFilter filter = null;
|
||||
|
||||
if (lvUploaderFiltersList.SelectedItems.Count > 0)
|
||||
{
|
||||
filter = lvUploaderFiltersList.SelectedItems[0].Tag as UploaderFilter;
|
||||
}
|
||||
|
||||
UpdateUploaderFilterFields(filter);
|
||||
}
|
||||
|
||||
#endregion Upload
|
||||
|
||||
#region Actions
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue