From e1ea76d53ba8fae16bd724e8caa00856c7d65add Mon Sep 17 00:00:00 2001 From: Jaex Date: Sun, 18 May 2014 13:12:12 +0300 Subject: [PATCH] Workflows can show all tasks optionally, Added workflows to tray menu --- ShareX/ApplicationConfig.cs | 3 ++ ShareX/Forms/AboutForm.Designer.cs | 6 ++-- ShareX/Forms/AboutForm.resx | 2 +- ShareX/Forms/MainForm.Designer.cs | 32 +++++++++++------ ShareX/Forms/MainForm.cs | 15 ++++++-- ShareX/Forms/MainForm_Capture.cs | 47 ++++++++++++++----------- ShareX/Properties/Resources.Designer.cs | 4 +-- ShareX/Properties/Resources.resx | 5 ++- 8 files changed, 70 insertions(+), 44 deletions(-) diff --git a/ShareX/ApplicationConfig.cs b/ShareX/ApplicationConfig.cs index 916fc37f0..faa146462 100644 --- a/ShareX/ApplicationConfig.cs +++ b/ShareX/ApplicationConfig.cs @@ -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; } diff --git a/ShareX/Forms/AboutForm.Designer.cs b/ShareX/Forms/AboutForm.Designer.cs index 14b41a318..c742dfb80 100644 --- a/ShareX/Forms/AboutForm.Designer.cs +++ b/ShareX/Forms/AboutForm.Designer.cs @@ -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); diff --git a/ShareX/Forms/AboutForm.resx b/ShareX/Forms/AboutForm.resx index 8914e5935..723db5aae 100644 --- a/ShareX/Forms/AboutForm.resx +++ b/ShareX/Forms/AboutForm.resx @@ -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: diff --git a/ShareX/Forms/MainForm.Designer.cs b/ShareX/Forms/MainForm.Designer.cs index 8329b658b..1f254ed75 100644 --- a/ShareX/Forms/MainForm.Designer.cs +++ b/ShareX/Forms/MainForm.Designer.cs @@ -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; } } \ No newline at end of file diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index dcc2d1ca4..688f3dad1 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -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(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(); diff --git a/ShareX/Forms/MainForm_Capture.cs b/ShareX/Forms/MainForm_Capture.cs index 0a0ff7685..39d08e777 100644 --- a/ShareX/Forms/MainForm_Capture.cs +++ b/ShareX/Forms/MainForm_Capture.cs @@ -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(); diff --git a/ShareX/Properties/Resources.Designer.cs b/ShareX/Properties/Resources.Designer.cs index 3bc19630f..0657590f2 100644 --- a/ShareX/Properties/Resources.Designer.cs +++ b/ShareX/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // 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 { /// 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)); } } diff --git a/ShareX/Properties/Resources.resx b/ShareX/Properties/Resources.resx index 6137d94fc..b47af8ed5 100644 --- a/ShareX/Properties/Resources.resx +++ b/ShareX/Properties/Resources.resx @@ -117,7 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + ..\Resources\Test.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -358,8 +358,7 @@ ..\Resources\application-task.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - + ..\Resources\application-wave.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file