Dynamic destination changes

This commit is contained in:
mcored 2014-05-13 01:28:08 +08:00
parent 73306ffc74
commit 5554acf8b5
2 changed files with 71 additions and 33 deletions

View file

@ -30,13 +30,14 @@ private void InitializeComponent()
{
this.btnOK = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.lblTitle = new System.Windows.Forms.Label();
this.ucBeforeUpload = new ShareX.BeforeUploadControl();
this.SuspendLayout();
//
// btnOK
//
this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnOK.Location = new System.Drawing.Point(120, 349);
this.btnOK.Location = new System.Drawing.Point(240, 349);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(75, 23);
this.btnOK.TabIndex = 1;
@ -47,7 +48,7 @@ private void InitializeComponent()
// btnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.Location = new System.Drawing.Point(200, 349);
this.btnCancel.Location = new System.Drawing.Point(320, 349);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(75, 23);
this.btnCancel.TabIndex = 2;
@ -55,14 +56,23 @@ private void InitializeComponent()
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// lblTitle
//
this.lblTitle.Location = new System.Drawing.Point(0, 0);
this.lblTitle.Name = "lblTitle";
this.lblTitle.Padding = new System.Windows.Forms.Padding(4);
this.lblTitle.Size = new System.Drawing.Size(400, 40);
this.lblTitle.TabIndex = 3;
this.lblTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// ucBeforeUpload
//
this.ucBeforeUpload.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ucBeforeUpload.Location = new System.Drawing.Point(0, 0);
this.ucBeforeUpload.Location = new System.Drawing.Point(0, 48);
this.ucBeforeUpload.Name = "ucBeforeUpload";
this.ucBeforeUpload.Size = new System.Drawing.Size(280, 329);
this.ucBeforeUpload.Size = new System.Drawing.Size(400, 289);
this.ucBeforeUpload.TabIndex = 0;
//
// BeforeUploadForm
@ -70,13 +80,14 @@ private void InitializeComponent()
this.AcceptButton = this.btnOK;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 381);
this.ClientSize = new System.Drawing.Size(404, 381);
this.Controls.Add(this.lblTitle);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnOK);
this.Controls.Add(this.ucBeforeUpload);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(300, 420);
this.MinimumSize = new System.Drawing.Size(420, 420);
this.Name = "BeforeUploadForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "ShareX - Dynamic Destinations";
@ -89,5 +100,6 @@ private void InitializeComponent()
private BeforeUploadControl ucBeforeUpload;
private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Label lblTitle;
}
}

View file

@ -47,35 +47,23 @@ public BeforeUploadForm(TaskInfo info)
Info = info;
if (info.DataType == EDataType.Image)
{
Enum.GetValues(typeof(ImageDestination)).Cast<ImageDestination>().ForEach(x =>
{
if (x != ImageDestination.FileUploader)
{
AddDestination<ImageDestination>((int)x);
}
});
}
else if (info.DataType == EDataType.Text)
{
Enum.GetValues(typeof(TextDestination)).Cast<TextDestination>().ForEach(x =>
{
if (x != TextDestination.FileUploader)
{
AddDestination<TextDestination>((int)x);
}
});
}
Enum.GetValues(typeof(FileDestination)).Cast<FileDestination>().ForEach(x =>
{
AddDestination<FileDestination>((int)x);
});
switch (Info.DataType)
{
case EDataType.Image:
Enum.GetValues(typeof(ImageDestination)).Cast<ImageDestination>().ForEach(x =>
{
if (x != ImageDestination.FileUploader)
{
AddDestination<ImageDestination>((int)x);
}
});
Enum.GetValues(typeof(FileDestination)).Cast<FileDestination>().ForEach(x =>
{
AddDestination<FileDestination>((int)x);
});
ucBeforeUpload.flp.Controls.OfType<RadioButton>().ForEach(x =>
{
x.Checked = (x.Tag is ImageDestination && (ImageDestination)x.Tag == (ImageDestination)Info.TaskSettings.ImageDestination) ||
@ -83,6 +71,19 @@ public BeforeUploadForm(TaskInfo info)
});
break;
case EDataType.Text:
Enum.GetValues(typeof(TextDestination)).Cast<TextDestination>().ForEach(x =>
{
if (x != TextDestination.FileUploader)
{
AddDestination<TextDestination>((int)x);
}
});
Enum.GetValues(typeof(FileDestination)).Cast<FileDestination>().ForEach(x =>
{
AddDestination<FileDestination>((int)x);
});
ucBeforeUpload.flp.Controls.OfType<RadioButton>().ForEach(x =>
{
x.Checked = (x.Tag is TextDestination && (TextDestination)x.Tag == (TextDestination)Info.TaskSettings.ImageDestination) ||
@ -90,12 +91,31 @@ public BeforeUploadForm(TaskInfo info)
});
break;
case EDataType.File:
Enum.GetValues(typeof(FileDestination)).Cast<FileDestination>().ForEach(x =>
{
AddDestination<FileDestination>((int)x);
});
ucBeforeUpload.flp.Controls.OfType<RadioButton>().ForEach(x =>
{
x.Checked = x.Tag is FileDestination && (FileDestination)x.Tag == (FileDestination)Info.TaskSettings.ImageDestination;
x.Checked = x.Tag is FileDestination && (FileDestination)x.Tag == (FileDestination)Info.TaskSettings.FileDestination;
});
break;
case EDataType.URL:
Enum.GetValues(typeof(UrlShortenerType)).Cast<UrlShortenerType>().ForEach(x =>
{
AddDestination<UrlShortenerType>((int)x);
});
ucBeforeUpload.flp.Controls.OfType<RadioButton>().ForEach(x =>
{
x.Checked = x.Tag is UrlShortenerType && (UrlShortenerType)x.Tag == (UrlShortenerType)Info.TaskSettings.URLShortenerDestination;
});
break;
}
lblTitle.Text = string.Format("{0} is about to be uploaded to {1}. You may choose a different destination.", info.FileName, ucBeforeUpload.flp.Controls.OfType<RadioButton>().First<RadioButton>(x => x.Checked).Text);
}
private void UpdateUI<T>(int index)
@ -151,6 +171,12 @@ private void SetDestinations(bool isActive, object destination)
Info.TaskSettings.FileDestination = (FileDestination)destination;
}
break;
case EDataType.URL:
if (destination is UrlShortenerType)
{
Info.TaskSettings.URLShortenerDestination = (UrlShortenerType)destination;
}
break;
}
}
}