Workflows can show all tasks optionally, Added workflows to tray menu

This commit is contained in:
Jaex 2014-05-18 13:12:12 +03:00
parent ccc6b16474
commit e1ea76d53b
8 changed files with 70 additions and 44 deletions

View file

@ -120,6 +120,9 @@ public ApplicationConfig()
[Category("Application"), DefaultValue(false), Description("By default copying \"Bitmap\" to clipboard. Alternative method copying \"PNG and DIB\" to clipboard.")]
public bool UseAlternativeClipboardCopyImage { get; set; }
[Category("Application"), DefaultValue(true), Description("Show only customized tasks in main window workflows.")]
public bool WorkflowsOnlyShowEdited { get; set; }
[Category("Application / Config"), DefaultValue(false), Description("Automatically detect external changes to UploaderConfig file and load settigns to memory.")]
public bool DetectUploaderConfigFileChanges { get; set; }

View file

@ -159,7 +159,7 @@ private void InitializeComponent()
this.rtbCredits.Location = new System.Drawing.Point(15, 200);
this.rtbCredits.Name = "rtbCredits";
this.rtbCredits.ReadOnly = true;
this.rtbCredits.Size = new System.Drawing.Size(409, 248);
this.rtbCredits.Size = new System.Drawing.Size(417, 248);
this.rtbCredits.TabIndex = 11;
this.rtbCredits.Text = resources.GetString("rtbCredits.Text");
this.rtbCredits.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.rtb_LinkClicked);
@ -204,7 +204,7 @@ private void InitializeComponent()
this.cLogo.Interval = 100;
this.cLogo.Location = new System.Drawing.Point(224, -8);
this.cLogo.Name = "cLogo";
this.cLogo.Size = new System.Drawing.Size(200, 200);
this.cLogo.Size = new System.Drawing.Size(208, 200);
this.cLogo.TabIndex = 5;
this.cLogo.Draw += new HelpersLib.Canvas.DrawEventHandler(this.cLogo_Draw);
this.cLogo.MouseDown += new System.Windows.Forms.MouseEventHandler(this.cLogo_MouseDown);
@ -221,7 +221,7 @@ private void InitializeComponent()
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.WhiteSmoke;
this.ClientSize = new System.Drawing.Size(433, 457);
this.ClientSize = new System.Drawing.Size(441, 457);
this.Controls.Add(this.pbMikeSteamURL);
this.Controls.Add(this.lblOwners);
this.Controls.Add(this.rtbShareXInfo);

View file

@ -123,7 +123,7 @@
Logo and icon: Mopsy - http://mpql.net
Jira, Gist and Mega support: gpailler (Grégoire Pailler)
Web site: dmxt (Dana)
Amazon S3 and DreamObjects support: Alan Edwardes - http://alan.edward.es
Amazon S3 and DreamObjects support: Alan Edwardes - http://alanedwardes.com
External libraries:

View file

@ -34,6 +34,7 @@ private void InitializeComponent()
this.tsbClipboardUpload = new System.Windows.Forms.ToolStripButton();
this.tsbFileUpload = new System.Windows.Forms.ToolStripButton();
this.tsbDragDropUpload = new System.Windows.Forms.ToolStripButton();
this.tsddbWorkflows = new System.Windows.Forms.ToolStripDropDownButton();
this.tsddbCapture = new System.Windows.Forms.ToolStripDropDownButton();
this.tsmiFullscreen = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiWindow = new System.Windows.Forms.ToolStripMenuItem();
@ -49,7 +50,6 @@ private void InitializeComponent()
this.tsmiLastRegion = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiScreenRecorder = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiAutoCapture = new System.Windows.Forms.ToolStripMenuItem();
this.tsddbWorkflows = new System.Windows.Forms.ToolStripDropDownButton();
this.tsddbAfterCaptureTasks = new System.Windows.Forms.ToolStripDropDownButton();
this.tsddbAfterUploadTasks = new System.Windows.Forms.ToolStripDropDownButton();
this.tsddbDestinations = new System.Windows.Forms.ToolStripDropDownButton();
@ -200,6 +200,7 @@ private void InitializeComponent()
this.tsmiTrayShow = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiTrayExit = new System.Windows.Forms.ToolStripMenuItem();
this.ssToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiTrayWorkflows = new System.Windows.Forms.ToolStripMenuItem();
this.tsMain.SuspendLayout();
this.scMain.Panel1.SuspendLayout();
this.scMain.Panel2.SuspendLayout();
@ -274,6 +275,15 @@ private void InitializeComponent()
this.tsbDragDropUpload.Text = "Drag and drop upload...";
this.tsbDragDropUpload.Click += new System.EventHandler(this.tsbDragDropUpload_Click);
//
// tsddbWorkflows
//
this.tsddbWorkflows.Image = global::ShareX.Properties.Resources.application_wave;
this.tsddbWorkflows.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
this.tsddbWorkflows.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsddbWorkflows.Name = "tsddbWorkflows";
this.tsddbWorkflows.Size = new System.Drawing.Size(147, 20);
this.tsddbWorkflows.Text = "Workflows";
//
// tsddbCapture
//
this.tsddbCapture.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -409,15 +419,6 @@ private void InitializeComponent()
this.tsmiAutoCapture.Text = "Auto capture...";
this.tsmiAutoCapture.Click += new System.EventHandler(this.tsmiAutoCapture_Click);
//
// tsddbWorkflows
//
this.tsddbWorkflows.Image = global::ShareX.Properties.Resources.application_wave;
this.tsddbWorkflows.ImageAlign = System.Drawing.ContentAlignment.BottomLeft;
this.tsddbWorkflows.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsddbWorkflows.Name = "tsddbWorkflows";
this.tsddbWorkflows.Size = new System.Drawing.Size(147, 20);
this.tsddbWorkflows.Text = "Workflows";
//
// tsddbAfterCaptureTasks
//
this.tsddbAfterCaptureTasks.Image = global::ShareX.Properties.Resources.image_export;
@ -1254,6 +1255,7 @@ private void InitializeComponent()
this.tsmiTrayClipboardUpload,
this.tsmiTrayFileUpload,
this.tsmiTrayDragDropUpload,
this.tsmiTrayWorkflows,
this.tsmiTrayCapture,
this.tsmiTrayAfterCaptureTasks,
this.tsmiTrayAfterUploadTasks,
@ -1274,7 +1276,7 @@ private void InitializeComponent()
this.tsmiTrayShow,
this.tsmiTrayExit});
this.cmsTray.Name = "cmsTray";
this.cmsTray.Size = new System.Drawing.Size(200, 440);
this.cmsTray.Size = new System.Drawing.Size(200, 462);
//
// tsmiTrayClipboardUpload
//
@ -1694,6 +1696,13 @@ private void InitializeComponent()
this.ssToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.ssToolStripMenuItem.Text = "ss";
//
// tsmiTrayWorkflows
//
this.tsmiTrayWorkflows.Image = global::ShareX.Properties.Resources.application_wave;
this.tsmiTrayWorkflows.Name = "tsmiTrayWorkflows";
this.tsmiTrayWorkflows.Size = new System.Drawing.Size(199, 22);
this.tsmiTrayWorkflows.Text = "Workflows";
//
// MainForm
//
this.AllowDrop = true;
@ -1896,5 +1905,6 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripMenuItem tsmiImageEditor;
private System.Windows.Forms.ToolStripMenuItem tsmiTrayImageEditor;
private System.Windows.Forms.ToolStripDropDownButton tsddbWorkflows;
private System.Windows.Forms.ToolStripMenuItem tsmiTrayWorkflows;
}
}

View file

@ -108,23 +108,31 @@ private void InitControls()
TaskManager.ListViewControl = lvUploads;
uim = new UploadInfoManager(lvUploads);
((ToolStripDropDownMenu)tsddbWorkflows.DropDown).ShowImageMargin = ((ToolStripDropDownMenu)tsmiTrayWorkflows.DropDown).ShowImageMargin =
((ToolStripDropDownMenu)tsmiMonitor.DropDown).ShowImageMargin = ((ToolStripDropDownMenu)tsmiTrayMonitor.DropDown).ShowImageMargin = false;
}
private void UpdateWorkflowsMenu()
{
tsddbWorkflows.DropDownItems.Clear();
tsmiTrayWorkflows.DropDownItems.Clear();
Program.HotkeyManager.Hotkeys.ForEach<HotkeySettings>(x =>
{
if (!x.TaskSettings.IsUsingDefaultSettings)
if (x.TaskSettings.Job != HotkeyType.None && (!Program.Settings.WorkflowsOnlyShowEdited || !x.TaskSettings.IsUsingDefaultSettings))
{
ToolStripMenuItem tsmi = new ToolStripMenuItem(x.TaskSettings.Description);
tsmi.Click += (sender, e) => HandleHotkeys(x);
tsmi.Click += (sender, e) => HandleTask(x.TaskSettings);
tsddbWorkflows.DropDownItems.Add(tsmi);
tsmi = new ToolStripMenuItem(x.TaskSettings.Description);
tsmi.Click += (sender, e) => HandleTask(x.TaskSettings);
tsmiTrayWorkflows.DropDownItems.Add(tsmi);
}
});
tsddbWorkflows.Visible = tsddbWorkflows.DropDownItems.Count > 0;
tsddbWorkflows.Visible = tsmiTrayWorkflows.Visible = tsddbWorkflows.DropDownItems.Count > 0;
}
private void UpdateDestinationStates()
@ -696,6 +704,7 @@ private void tsbApplicationSettings_Click(object sender, EventArgs e)
}
AfterSettingsJobs();
UpdateWorkflowsMenu();
Program.Settings.SaveAsync(Program.ApplicationConfigFilePath);
Program.ConfigureUploadersConfigWatcher();

View file

@ -56,10 +56,10 @@ private void InitHotkeys()
Program.HotkeyManager.HotkeyTrigger += HandleHotkeys;
DebugHelper.WriteLine("HotkeyManager started");
UpdateWorkflowsMenu();
Program.WatchFolderManager = new WatchFolderManager();
DebugHelper.WriteLine("WatchFolderManager started");
UpdateWorkflowsMenu();
}));
});
}
@ -70,69 +70,74 @@ private void HandleHotkeys(HotkeySettings hotkeySetting)
if (hotkeySetting.TaskSettings.Job == HotkeyType.None) return;
TaskSettings taskSettings = TaskSettings.GetSafeTaskSettings(hotkeySetting.TaskSettings);
HandleTask(hotkeySetting.TaskSettings);
}
switch (hotkeySetting.TaskSettings.Job)
private void HandleTask(TaskSettings taskSettings)
{
TaskSettings safeTaskSettings = TaskSettings.GetSafeTaskSettings(taskSettings);
switch (safeTaskSettings.Job)
{
case HotkeyType.StopUploads:
TaskManager.StopAllTasks();
break;
case HotkeyType.ClipboardUpload:
UploadManager.ClipboardUpload(taskSettings);
UploadManager.ClipboardUpload(safeTaskSettings);
break;
case HotkeyType.ClipboardUploadWithContentViewer:
UploadManager.ClipboardUploadWithContentViewer(taskSettings);
UploadManager.ClipboardUploadWithContentViewer(safeTaskSettings);
break;
case HotkeyType.FileUpload:
UploadManager.UploadFile(taskSettings);
UploadManager.UploadFile(safeTaskSettings);
break;
case HotkeyType.DragDropUpload:
TaskHelpers.OpenDropWindow();
break;
case HotkeyType.PrintScreen:
CaptureScreenshot(CaptureType.Screen, taskSettings, false);
CaptureScreenshot(CaptureType.Screen, safeTaskSettings, false);
break;
case HotkeyType.ActiveWindow:
CaptureScreenshot(CaptureType.ActiveWindow, taskSettings, false);
CaptureScreenshot(CaptureType.ActiveWindow, safeTaskSettings, false);
break;
case HotkeyType.ActiveMonitor:
CaptureScreenshot(CaptureType.ActiveMonitor, taskSettings, false);
CaptureScreenshot(CaptureType.ActiveMonitor, safeTaskSettings, false);
break;
case HotkeyType.RectangleRegion:
CaptureScreenshot(CaptureType.Rectangle, taskSettings, false);
CaptureScreenshot(CaptureType.Rectangle, safeTaskSettings, false);
break;
case HotkeyType.WindowRectangle:
CaptureScreenshot(CaptureType.RectangleWindow, taskSettings, false);
CaptureScreenshot(CaptureType.RectangleWindow, safeTaskSettings, false);
break;
case HotkeyType.RoundedRectangleRegion:
CaptureScreenshot(CaptureType.RoundedRectangle, taskSettings, false);
CaptureScreenshot(CaptureType.RoundedRectangle, safeTaskSettings, false);
break;
case HotkeyType.EllipseRegion:
CaptureScreenshot(CaptureType.Ellipse, taskSettings, false);
CaptureScreenshot(CaptureType.Ellipse, safeTaskSettings, false);
break;
case HotkeyType.TriangleRegion:
CaptureScreenshot(CaptureType.Triangle, taskSettings, false);
CaptureScreenshot(CaptureType.Triangle, safeTaskSettings, false);
break;
case HotkeyType.DiamondRegion:
CaptureScreenshot(CaptureType.Diamond, taskSettings, false);
CaptureScreenshot(CaptureType.Diamond, safeTaskSettings, false);
break;
case HotkeyType.PolygonRegion:
CaptureScreenshot(CaptureType.Polygon, taskSettings, false);
CaptureScreenshot(CaptureType.Polygon, safeTaskSettings, false);
break;
case HotkeyType.FreeHandRegion:
CaptureScreenshot(CaptureType.Freehand, taskSettings, false);
CaptureScreenshot(CaptureType.Freehand, safeTaskSettings, false);
break;
case HotkeyType.LastRegion:
CaptureScreenshot(CaptureType.LastRegion, taskSettings, false);
CaptureScreenshot(CaptureType.LastRegion, safeTaskSettings, false);
break;
case HotkeyType.ScreenRecorder:
TaskHelpers.DoScreenRecorder(taskSettings);
TaskHelpers.DoScreenRecorder(safeTaskSettings);
break;
case HotkeyType.AutoCapture:
TaskHelpers.OpenAutoCapture();
break;
case HotkeyType.ScreenColorPicker:
TaskHelpers.OpenScreenColorPicker(taskSettings);
TaskHelpers.OpenScreenColorPicker(safeTaskSettings);
break;
case HotkeyType.Ruler:
TaskHelpers.OpenRuler();

View file

@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.34011
// Runtime Version:4.0.30319.18444
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@ -165,7 +165,7 @@ public class Resources {
/// </summary>
public static System.Drawing.Bitmap application_wave {
get {
object obj = ResourceManager.GetObject("application-wave", resourceCulture);
object obj = ResourceManager.GetObject("application_wave", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}

View file

@ -117,7 +117,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Test" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Test.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -358,8 +358,7 @@
<data name="application_task" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-task.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="application-wave" type="System.Resources.ResXFileRef, System.Windows.Forms">
<data name="application_wave" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-wave.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>