diff --git a/ShareX.HelpersLib/Properties/Resources.Designer.cs b/ShareX.HelpersLib/Properties/Resources.Designer.cs index 878ea3807..792532e19 100644 --- a/ShareX.HelpersLib/Properties/Resources.Designer.cs +++ b/ShareX.HelpersLib/Properties/Resources.Designer.cs @@ -753,6 +753,24 @@ internal static string HotkeyType_Automate_Category { } } + /// + /// Looks up a localized string similar to Webpage capture. + /// + internal static string HotkeyType_CaptureWebpage { + get { + return ResourceManager.GetString("HotkeyType_CaptureWebpage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Screen capture. + /// + internal static string HotkeyType_CaptureWebpage_Category { + get { + return ResourceManager.GetString("HotkeyType_CaptureWebpage_Category", resourceCulture); + } + } + /// /// Looks up a localized string similar to Upload from clipboard. /// diff --git a/ShareX.HelpersLib/Properties/Resources.resx b/ShareX.HelpersLib/Properties/Resources.resx index 54b9e09c2..9a8b38dc4 100644 --- a/ShareX.HelpersLib/Properties/Resources.resx +++ b/ShareX.HelpersLib/Properties/Resources.resx @@ -796,4 +796,10 @@ Would you like to download and install it? Tools + + Webpage capture + + + Screen capture + \ No newline at end of file diff --git a/ShareX/Enums.cs b/ShareX/Enums.cs index 6a492ca4a..f2090ebb1 100644 --- a/ShareX/Enums.cs +++ b/ShareX/Enums.cs @@ -165,6 +165,9 @@ public enum HotkeyType // Localized + Category FreeHandRegion, CustomRegion, LastRegion, + CaptureWebpage, + AutoCapture, + StartAutoCapture, // Screen record ScreenRecorder, ScreenRecorderActiveWindow, @@ -173,8 +176,6 @@ public enum HotkeyType // Localized + Category ScreenRecorderGIFActiveWindow, StartScreenRecorderGIF, // Tools - AutoCapture, - StartAutoCapture, ColorPicker, ScreenColorPicker, ImageEditor, diff --git a/ShareX/Forms/MainForm.Designer.cs b/ShareX/Forms/MainForm.Designer.cs index b36be8b68..842dba69d 100644 --- a/ShareX/Forms/MainForm.Designer.cs +++ b/ShareX/Forms/MainForm.Designer.cs @@ -183,6 +183,7 @@ private void InitializeComponent() this.tsmiTrayScreenRecordingFFmpeg = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiTrayScreenRecordingGIF = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiTrayAutoCapture = new System.Windows.Forms.ToolStripMenuItem(); + this.tsmiTrayWebpageCapture = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiTrayUpload = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiTrayUploadFile = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiTrayUploadFolder = new System.Windows.Forms.ToolStripMenuItem(); @@ -228,7 +229,6 @@ private void InitializeComponent() this.tsmiTrayRecentItems = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiTrayShow = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiTrayExit = new System.Windows.Forms.ToolStripMenuItem(); - this.tsmiTrayWebpageCapture = new System.Windows.Forms.ToolStripMenuItem(); ((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit(); this.scMain.Panel1.SuspendLayout(); this.scMain.Panel2.SuspendLayout(); @@ -382,8 +382,8 @@ private void InitializeComponent() this.tsmiLastRegion, this.tsmiScreenRecordingFFmpeg, this.tsmiScreenRecordingGIF, - this.tsmiAutoCapture, - this.tsmiWebpageCapture}); + this.tsmiWebpageCapture, + this.tsmiAutoCapture}); this.tsddbCapture.Image = global::ShareX.Properties.Resources.camera; resources.ApplyResources(this.tsddbCapture, "tsddbCapture"); this.tsddbCapture.Name = "tsddbCapture"; @@ -1296,8 +1296,8 @@ private void InitializeComponent() this.tsmiTrayLastRegion, this.tsmiTrayScreenRecordingFFmpeg, this.tsmiTrayScreenRecordingGIF, - this.tsmiTrayAutoCapture, - this.tsmiTrayWebpageCapture}); + this.tsmiTrayWebpageCapture, + this.tsmiTrayAutoCapture}); this.tsmiTrayCapture.Image = global::ShareX.Properties.Resources.camera; this.tsmiTrayCapture.Name = "tsmiTrayCapture"; resources.ApplyResources(this.tsmiTrayCapture, "tsmiTrayCapture"); @@ -1427,6 +1427,13 @@ private void InitializeComponent() resources.ApplyResources(this.tsmiTrayAutoCapture, "tsmiTrayAutoCapture"); this.tsmiTrayAutoCapture.Click += new System.EventHandler(this.tsmiAutoCapture_Click); // + // tsmiTrayWebpageCapture + // + this.tsmiTrayWebpageCapture.Image = global::ShareX.Properties.Resources.document_globe; + this.tsmiTrayWebpageCapture.Name = "tsmiTrayWebpageCapture"; + resources.ApplyResources(this.tsmiTrayWebpageCapture, "tsmiTrayWebpageCapture"); + this.tsmiTrayWebpageCapture.Click += new System.EventHandler(this.tsmiWebpageCapture_Click); + // // tsmiTrayUpload // this.tsmiTrayUpload.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -1751,13 +1758,6 @@ private void InitializeComponent() resources.ApplyResources(this.tsmiTrayExit, "tsmiTrayExit"); this.tsmiTrayExit.Click += new System.EventHandler(this.tsmiTrayExit_Click); // - // tsmiTrayWebpageCapture - // - this.tsmiTrayWebpageCapture.Image = global::ShareX.Properties.Resources.document_globe; - this.tsmiTrayWebpageCapture.Name = "tsmiTrayWebpageCapture"; - resources.ApplyResources(this.tsmiTrayWebpageCapture, "tsmiTrayWebpageCapture"); - this.tsmiTrayWebpageCapture.Click += new System.EventHandler(this.tsmiWebpageCapture_Click); - // // MainForm // this.AllowDrop = true; diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index 4e40d1199..05a45dc16 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -1576,6 +1576,15 @@ private void ExecuteJob(TaskSettings taskSettings, HotkeyType job) case HotkeyType.LastRegion: CaptureScreenshot(CaptureType.LastRegion, safeTaskSettings, false); break; + case HotkeyType.CaptureWebpage: + TaskHelpers.OpenWebpageCapture(safeTaskSettings); + break; + case HotkeyType.AutoCapture: + TaskHelpers.OpenAutoCapture(); + break; + case HotkeyType.StartAutoCapture: + TaskHelpers.StartAutoCapture(); + break; // Screen record case HotkeyType.ScreenRecorder: TaskHelpers.StartScreenRecording(ScreenRecordOutput.FFmpeg, ScreenRecordStartMethod.Region, safeTaskSettings); @@ -1596,12 +1605,6 @@ private void ExecuteJob(TaskSettings taskSettings, HotkeyType job) TaskHelpers.StartScreenRecording(ScreenRecordOutput.GIF, ScreenRecordStartMethod.LastRegion, safeTaskSettings); break; // Tools - case HotkeyType.AutoCapture: - TaskHelpers.OpenAutoCapture(); - break; - case HotkeyType.StartAutoCapture: - TaskHelpers.StartAutoCapture(); - break; case HotkeyType.ColorPicker: TaskHelpers.OpenColorPicker(); break; diff --git a/ShareX/Forms/MainForm.resx b/ShareX/Forms/MainForm.resx index 96c3b9e8e..cdcc5b0e3 100644 --- a/ShareX/Forms/MainForm.resx +++ b/ShareX/Forms/MainForm.resx @@ -180,6 +180,45 @@ 1 + + Filename + + + 150 + + + Status + + + Progress + + + 125 + + + Speed + + + 75 + + + Elapsed + + + 45 + + + Remaining + + + 45 + + + URL + + + 145 + Fill @@ -276,45 +315,6 @@ 2 - - Filename - - - 150 - - - Status - - - Progress - - - 125 - - - Speed - - - 75 - - - Elapsed - - - 45 - - - Remaining - - - 45 - - - URL - - - 145 - 17, 17 @@ -324,42 +324,6 @@ Left - - 0, 0 - - - 6, 6, 6, 6 - - - 160, 407 - - - 1 - - - tsMain - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 3 - - - MiddleLeft - - - Magenta - - - 147, 20 - - - Capture - 199, 22 @@ -462,29 +426,29 @@ Screen recording (GIF) - - 199, 22 - - - Auto capture... - 199, 22 Webpage capture... - + + 199, 22 + + + Auto capture... + + MiddleLeft - + Magenta - + 147, 20 - - Upload + + Capture 203, 22 @@ -516,6 +480,18 @@ Drag and drop upload... + + MiddleLeft + + + Magenta + + + 147, 20 + + + Upload + BottomLeft @@ -528,18 +504,6 @@ Workflows - - MiddleLeft - - - Magenta - - - 147, 20 - - - Tools - 183, 22 @@ -618,6 +582,18 @@ Monitor test... + + MiddleLeft + + + Magenta + + + 147, 20 + + + Tools + 147, 6 @@ -645,18 +621,6 @@ After upload tasks - - MiddleLeft - - - Magenta - - - 147, 20 - - - Destinations - 187, 22 @@ -696,6 +660,18 @@ Destination settings... + + MiddleLeft + + + Magenta + + + 147, 20 + + + Destinations + MiddleLeft @@ -771,18 +747,6 @@ Image history... - - MiddleLeft - - - Magenta - - - 147, 20 - - - Debug - 172, 22 @@ -819,6 +783,18 @@ Test URL sharing + + MiddleLeft + + + Magenta + + + 147, 20 + + + Debug + MiddleLeft @@ -843,18 +819,33 @@ About... + + 0, 0 + + + 6, 6, 6, 6 + + + 160, 407 + + + 1 + + + tsMain + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 + 286, 17 - - 173, 318 - - - cmsTaskInfo - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 172, 22 @@ -867,12 +858,6 @@ Stop upload - - 172, 22 - - - Open - 156, 22 @@ -918,11 +903,11 @@ Thumbnail file - + 172, 22 - - Copy + + Open 233, 22 @@ -1056,6 +1041,12 @@ False + + 172, 22 + + + Copy + 172, 22 @@ -1113,12 +1104,6 @@ Hide menu - - 172, 22 - - - Image preview - 130, 22 @@ -1137,6 +1122,21 @@ Automatic + + 172, 22 + + + Image preview + + + 173, 318 + + + cmsTaskInfo + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 105, 17 @@ -1245,24 +1245,54 @@ Screen recording (GIF) - - 199, 22 - - - Auto capture... - 199, 22 Webpage capture... + + 199, 22 + + + Auto capture... + 188, 22 Capture + + 203, 22 + + + Upload file... + + + 203, 22 + + + Upload folder... + + + 203, 22 + + + Upload from clipboard... + + + 203, 22 + + + Upload from URL... + + + 203, 22 + + + Drag and drop upload... + 188, 22 @@ -1275,6 +1305,84 @@ Workflows + + 183, 22 + + + Color picker... + + + 183, 22 + + + Screen color picker... + + + 183, 22 + + + Image editor... + + + 183, 22 + + + Image effects... + + + 183, 22 + + + Hash check... + + + 183, 22 + + + DNS changer... + + + 183, 22 + + + QR code... + + + 183, 22 + + + Ruler... + + + 183, 22 + + + Automate... + + + 183, 22 + + + Index folder... + + + 183, 22 + + + FTP client... + + + 183, 22 + + + Tweet message... + + + 183, 22 + + + Monitor test... + 188, 22 @@ -1296,6 +1404,45 @@ After upload + + 187, 22 + + + Image uploaders + + + 187, 22 + + + Text uploaders + + + 187, 22 + + + File uploaders + + + 187, 22 + + + URL shorteners + + + 187, 22 + + + URL sharing services + + + 184, 6 + + + 187, 22 + + + Destination settings... + 188, 22 @@ -1378,7 +1525,7 @@ Exit - 189, 440 + 189, 418 cmsTray @@ -1389,153 +1536,6 @@ ShareX - - 203, 22 - - - Upload file... - - - 203, 22 - - - Upload folder... - - - 203, 22 - - - Upload from clipboard... - - - 203, 22 - - - Upload from URL... - - - 203, 22 - - - Drag and drop upload... - - - 183, 22 - - - Color picker... - - - 183, 22 - - - Screen color picker... - - - 183, 22 - - - Image editor... - - - 183, 22 - - - Image effects... - - - 183, 22 - - - Hash check... - - - 183, 22 - - - DNS changer... - - - 183, 22 - - - QR code... - - - 183, 22 - - - Ruler... - - - 183, 22 - - - Automate... - - - 183, 22 - - - Index folder... - - - 183, 22 - - - FTP client... - - - 183, 22 - - - Tweet message... - - - 183, 22 - - - Monitor test... - - - 187, 22 - - - Image uploaders - - - 187, 22 - - - Text uploaders - - - 187, 22 - - - File uploaders - - - 187, 22 - - - URL shorteners - - - 187, 22 - - - URL sharing services - - - 184, 6 - - - 187, 22 - - - Destination settings... - True @@ -2427,6 +2427,12 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + tsmiTrayWebpageCapture + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + tsmiTrayUpload @@ -2697,12 +2703,6 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - tsmiTrayWebpageCapture - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - MainForm diff --git a/ShareX/Forms/WebpageCaptureForm.cs b/ShareX/Forms/WebpageCaptureForm.cs index ca5901e5c..46eceb1b6 100644 --- a/ShareX/Forms/WebpageCaptureForm.cs +++ b/ShareX/Forms/WebpageCaptureForm.cs @@ -56,15 +56,7 @@ public WebpageCaptureForm() private void LoadSettings() { - if (Clipboard.ContainsText()) - { - string text = Clipboard.GetText(); - - if (!string.IsNullOrEmpty(text) && URLHelpers.IsValidURLRegex(text)) - { - txtURL.Text = text; - } - } + CheckClipboardURL(); Size browserSize = Program.Settings.WebpageCaptureBrowserSize; if (browserSize.Width == 0) browserSize.Width = Screen.PrimaryScreen.Bounds.Width; @@ -75,11 +67,37 @@ private void LoadSettings() nudCaptureDelay.Value = (decimal)Program.Settings.WebpageCaptureDelay.Between((float)nudCaptureDelay.Minimum, (float)nudCaptureDelay.Maximum); } + private void CheckClipboardURL() + { + if (Clipboard.ContainsText()) + { + string text = Clipboard.GetText(); + + if (!string.IsNullOrEmpty(text) && URLHelpers.IsValidURLRegex(text)) + { + txtURL.Text = text; + } + } + } + + private void CleanPictureBox() + { + if (pbResult.Image != null) + { + pbResult.Image.Dispose(); + pbResult.Image = null; + } + } + private void webpageCapture_CaptureCompleted(Bitmap bmp) { - pbResult.Image = bmp; - IsBusy = false; - btnCapture.Enabled = txtURL.Enabled = btnUpload.Enabled = btnCopy.Enabled = !IsBusy; + if (!IsDisposed) + { + CleanPictureBox(); + pbResult.Image = bmp; + btnCapture.Enabled = txtURL.Enabled = btnUpload.Enabled = btnCopy.Enabled = true; + IsBusy = false; + } } private void txtURL_TextChanged(object sender, EventArgs e) @@ -105,12 +123,8 @@ private void nudCaptureDelay_ValueChanged(object sender, EventArgs e) private void btnCapture_Click(object sender, EventArgs e) { IsBusy = true; - btnCapture.Enabled = txtURL.Enabled = btnUpload.Enabled = btnCopy.Enabled = !IsBusy; - if (pbResult.Image != null) - { - pbResult.Image.Dispose(); - pbResult.Image = null; - } + btnCapture.Enabled = txtURL.Enabled = btnUpload.Enabled = btnCopy.Enabled = false; + CleanPictureBox(); webpageCapture.CaptureDelay = (int)nudCaptureDelay.Value * 1000; webpageCapture.CapturePage(txtURL.Text, new Size((int)nudWebpageWidth.Value, (int)nudWebpageWidth.Value));