2013-11-03 23:53:49 +13:00
|
|
|
|
#region License Information (GPL v3)
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
ShareX - A program that allows you to take screenshots and share any file type
|
2020-02-05 20:19:48 +13:00
|
|
|
|
Copyright (c) 2007-2020 ShareX Team
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
|
|
|
modify it under the terms of the GNU General Public License
|
|
|
|
|
as published by the Free Software Foundation; either version 2
|
|
|
|
|
of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
|
|
|
|
|
|
Optionally you can also view the license at <http://www.gnu.org/licenses/>.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#endregion License Information (GPL v3)
|
|
|
|
|
|
2014-12-11 09:25:20 +13:00
|
|
|
|
using ShareX.HelpersLib;
|
2020-09-17 08:47:04 +12:00
|
|
|
|
using ShareX.ImageEffectsLib;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
using ShareX.Properties;
|
2014-12-11 12:19:28 +13:00
|
|
|
|
using ShareX.ScreenCaptureLib;
|
|
|
|
|
using ShareX.UploadersLib;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
using System;
|
2014-07-05 01:32:47 +12:00
|
|
|
|
using System.Collections.Generic;
|
2013-11-21 02:36:02 +13:00
|
|
|
|
using System.Drawing;
|
2016-04-24 10:15:35 +12:00
|
|
|
|
using System.IO;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
using System.Linq;
|
2014-11-24 06:06:28 +13:00
|
|
|
|
using System.Text;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
using System.Threading;
|
2018-08-04 01:38:18 +12:00
|
|
|
|
using System.Threading.Tasks;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
|
|
|
|
namespace ShareX
|
|
|
|
|
{
|
|
|
|
|
public partial class MainForm : HotkeyForm
|
|
|
|
|
{
|
2014-09-13 23:52:12 +12:00
|
|
|
|
public bool IsReady { get; private set; }
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2016-09-29 13:33:12 +13:00
|
|
|
|
private bool forceClose, trayMenuSaveSettings = true;
|
2020-03-18 02:15:23 +13:00
|
|
|
|
private int trayClickCount = 0;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private UploadInfoManager uim;
|
2014-03-05 02:04:46 +13:00
|
|
|
|
private ToolStripDropDownItem tsmiImageFileUploaders, tsmiTrayImageFileUploaders, tsmiTextFileUploaders, tsmiTrayTextFileUploaders;
|
2020-05-12 23:55:44 +12:00
|
|
|
|
private ImageFilesCache actionsMenuIconCache = new ImageFilesCache();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
|
|
|
|
public MainForm()
|
|
|
|
|
{
|
2016-02-12 12:28:03 +13:00
|
|
|
|
InitializeControls();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void MainForm_HandleCreated(object sender, EventArgs e)
|
|
|
|
|
{
|
2016-06-20 18:44:21 +12:00
|
|
|
|
RunPuushTasks();
|
|
|
|
|
|
2020-03-31 20:26:18 +13:00
|
|
|
|
NativeMethods.UseImmersiveDarkMode(Handle, ShareXResources.IsDarkTheme);
|
2016-02-12 12:28:03 +13:00
|
|
|
|
UpdateControls();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
|
|
|
|
DebugHelper.WriteLine("Startup time: {0} ms", Program.StartTimer.ElapsedMilliseconds);
|
|
|
|
|
|
2020-07-16 00:38:29 +12:00
|
|
|
|
Program.CLI.UseCommandLineArgs();
|
2016-12-30 07:41:15 +13:00
|
|
|
|
|
2017-01-20 01:17:55 +13:00
|
|
|
|
if (Program.Settings.ActionsToolbarRunAtStartup)
|
2017-01-01 12:07:58 +13:00
|
|
|
|
{
|
2017-01-20 01:39:10 +13:00
|
|
|
|
TaskHelpers.OpenActionsToolbar();
|
2017-01-01 12:07:58 +13:00
|
|
|
|
}
|
2015-09-11 13:18:12 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-02-12 12:28:03 +13:00
|
|
|
|
private void InitializeControls()
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
2019-02-11 11:26:08 +13:00
|
|
|
|
ShareXResources.UseWhiteIcon = Program.Settings.UseWhiteShareXIcon;
|
2016-02-26 09:55:54 +13:00
|
|
|
|
Icon = ShareXResources.Icon;
|
2016-02-11 11:15:05 +13:00
|
|
|
|
niTray.Icon = ShareXResources.Icon;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
Text = Program.Title;
|
|
|
|
|
|
2019-05-16 11:51:40 +12:00
|
|
|
|
UpdateTheme();
|
2016-05-26 17:47:38 +12:00
|
|
|
|
cmsTray.IgnoreSeparatorClick();
|
|
|
|
|
cmsTaskInfo.IgnoreSeparatorClick();
|
2016-05-23 04:52:19 +12:00
|
|
|
|
|
2015-09-24 06:23:25 +12:00
|
|
|
|
tsddbWorkflows.HideImageMargin();
|
|
|
|
|
tsmiTrayWorkflows.HideImageMargin();
|
|
|
|
|
tsmiMonitor.HideImageMargin();
|
|
|
|
|
tsmiTrayMonitor.HideImageMargin();
|
|
|
|
|
tsmiOpen.HideImageMargin();
|
|
|
|
|
tsmiCopy.HideImageMargin();
|
|
|
|
|
tsmiShortenSelectedURL.HideImageMargin();
|
|
|
|
|
tsmiShareSelectedURL.HideImageMargin();
|
|
|
|
|
tsmiTrayRecentItems.HideImageMargin();
|
2014-05-23 12:07:49 +12:00
|
|
|
|
|
2014-05-11 23:47:37 +12:00
|
|
|
|
AddMultiEnumItems<AfterCaptureTasks>(x => Program.DefaultTaskSettings.AfterCaptureJob = Program.DefaultTaskSettings.AfterCaptureJob.Swap(x),
|
2013-11-03 23:53:49 +13:00
|
|
|
|
tsddbAfterCaptureTasks, tsmiTrayAfterCaptureTasks);
|
2020-09-17 08:47:04 +12:00
|
|
|
|
tsddbAfterCaptureTasks.DropDownOpening += TsddbAfterCaptureTasks_DropDownOpening;
|
|
|
|
|
tsmiTrayAfterCaptureTasks.DropDownOpening += TsmiTrayAfterCaptureTasks_DropDownOpening;
|
2014-05-11 23:47:37 +12:00
|
|
|
|
AddMultiEnumItems<AfterUploadTasks>(x => Program.DefaultTaskSettings.AfterUploadJob = Program.DefaultTaskSettings.AfterUploadJob.Swap(x),
|
2013-11-03 23:53:49 +13:00
|
|
|
|
tsddbAfterUploadTasks, tsmiTrayAfterUploadTasks);
|
2014-09-14 02:30:29 +12:00
|
|
|
|
AddEnumItems<ImageDestination>(x =>
|
|
|
|
|
{
|
|
|
|
|
Program.DefaultTaskSettings.ImageDestination = x;
|
2016-02-12 12:28:03 +13:00
|
|
|
|
|
2014-09-14 02:30:29 +12:00
|
|
|
|
if (x == ImageDestination.FileUploader)
|
|
|
|
|
{
|
2014-10-25 13:04:41 +13:00
|
|
|
|
SetEnumChecked(Program.DefaultTaskSettings.ImageFileDestination, tsmiImageFileUploaders, tsmiTrayImageFileUploaders);
|
2014-09-14 02:30:29 +12:00
|
|
|
|
}
|
2016-02-12 12:28:03 +13:00
|
|
|
|
else
|
2014-09-14 02:30:29 +12:00
|
|
|
|
{
|
2014-09-14 19:08:05 +12:00
|
|
|
|
Uncheck(tsmiImageFileUploaders, tsmiTrayImageFileUploaders);
|
2014-09-14 02:30:29 +12:00
|
|
|
|
}
|
|
|
|
|
}, tsmiImageUploaders, tsmiTrayImageUploaders);
|
2014-03-05 02:04:46 +13:00
|
|
|
|
tsmiImageFileUploaders = (ToolStripDropDownItem)tsmiImageUploaders.DropDownItems[tsmiImageUploaders.DropDownItems.Count - 1];
|
|
|
|
|
tsmiTrayImageFileUploaders = (ToolStripDropDownItem)tsmiTrayImageUploaders.DropDownItems[tsmiTrayImageUploaders.DropDownItems.Count - 1];
|
2014-05-23 12:07:49 +12:00
|
|
|
|
AddEnumItems<FileDestination>(x =>
|
|
|
|
|
{
|
|
|
|
|
Program.DefaultTaskSettings.ImageFileDestination = x;
|
|
|
|
|
tsmiImageFileUploaders.PerformClick();
|
|
|
|
|
tsmiTrayImageFileUploaders.PerformClick();
|
|
|
|
|
}, tsmiImageFileUploaders, tsmiTrayImageFileUploaders);
|
2014-09-14 02:35:53 +12:00
|
|
|
|
AddEnumItems<TextDestination>(x =>
|
|
|
|
|
{
|
|
|
|
|
Program.DefaultTaskSettings.TextDestination = x;
|
2016-02-12 12:28:03 +13:00
|
|
|
|
|
2014-09-14 02:35:53 +12:00
|
|
|
|
if (x == TextDestination.FileUploader)
|
|
|
|
|
{
|
2014-10-25 13:04:41 +13:00
|
|
|
|
SetEnumChecked(Program.DefaultTaskSettings.TextFileDestination, tsmiTextFileUploaders, tsmiTrayTextFileUploaders);
|
2014-09-14 02:35:53 +12:00
|
|
|
|
}
|
2016-02-12 12:28:03 +13:00
|
|
|
|
else
|
2014-09-14 02:35:53 +12:00
|
|
|
|
{
|
2014-09-14 19:25:25 +12:00
|
|
|
|
Uncheck(tsmiTextFileUploaders, tsmiTrayTextFileUploaders);
|
2014-09-14 02:35:53 +12:00
|
|
|
|
}
|
|
|
|
|
}, tsmiTextUploaders, tsmiTrayTextUploaders);
|
2014-03-05 02:04:46 +13:00
|
|
|
|
tsmiTextFileUploaders = (ToolStripDropDownItem)tsmiTextUploaders.DropDownItems[tsmiTextUploaders.DropDownItems.Count - 1];
|
|
|
|
|
tsmiTrayTextFileUploaders = (ToolStripDropDownItem)tsmiTrayTextUploaders.DropDownItems[tsmiTrayTextUploaders.DropDownItems.Count - 1];
|
2014-05-23 12:07:49 +12:00
|
|
|
|
AddEnumItems<FileDestination>(x =>
|
|
|
|
|
{
|
|
|
|
|
Program.DefaultTaskSettings.TextFileDestination = x;
|
|
|
|
|
tsmiTextFileUploaders.PerformClick();
|
|
|
|
|
tsmiTrayTextFileUploaders.PerformClick();
|
|
|
|
|
}, tsmiTextFileUploaders, tsmiTrayTextFileUploaders);
|
2014-05-11 23:47:37 +12:00
|
|
|
|
AddEnumItems<FileDestination>(x => Program.DefaultTaskSettings.FileDestination = x, tsmiFileUploaders, tsmiTrayFileUploaders);
|
|
|
|
|
AddEnumItems<UrlShortenerType>(x => Program.DefaultTaskSettings.URLShortenerDestination = x, tsmiURLShorteners, tsmiTrayURLShorteners);
|
2014-07-14 08:59:17 +12:00
|
|
|
|
AddEnumItems<URLSharingServices>(x => Program.DefaultTaskSettings.URLSharingServiceDestination = x, tsmiURLSharingServices, tsmiTrayURLSharingServices);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-07-08 04:46:55 +12:00
|
|
|
|
foreach (UrlShortenerType urlShortener in Helpers.GetEnums<UrlShortenerType>())
|
|
|
|
|
{
|
2014-10-25 13:04:41 +13:00
|
|
|
|
ToolStripMenuItem tsmi = new ToolStripMenuItem(urlShortener.GetLocalizedDescription());
|
2014-07-08 04:46:55 +12:00
|
|
|
|
tsmi.Click += (sender, e) => uim.ShortenURL(urlShortener);
|
|
|
|
|
tsmiShortenSelectedURL.DropDownItems.Add(tsmi);
|
|
|
|
|
}
|
|
|
|
|
|
2014-07-14 08:59:17 +12:00
|
|
|
|
foreach (URLSharingServices urlSharingService in Helpers.GetEnums<URLSharingServices>())
|
2014-07-08 04:46:55 +12:00
|
|
|
|
{
|
2014-10-25 13:04:41 +13:00
|
|
|
|
ToolStripMenuItem tsmi = new ToolStripMenuItem(urlSharingService.GetLocalizedDescription());
|
2014-07-14 08:59:17 +12:00
|
|
|
|
tsmi.Click += (sender, e) => uim.ShareURL(urlSharingService);
|
2014-07-08 04:46:55 +12:00
|
|
|
|
tsmiShareSelectedURL.DropDownItems.Add(tsmi);
|
|
|
|
|
}
|
|
|
|
|
|
2020-02-09 04:07:17 +13:00
|
|
|
|
lvUploads.SupportCustomTheme();
|
2019-06-29 10:35:34 +12:00
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
ImageList il = new ImageList();
|
|
|
|
|
il.ColorDepth = ColorDepth.Depth32Bit;
|
|
|
|
|
il.Images.Add(Resources.navigation_090_button);
|
|
|
|
|
il.Images.Add(Resources.cross_button);
|
|
|
|
|
il.Images.Add(Resources.tick_button);
|
|
|
|
|
il.Images.Add(Resources.navigation_000_button);
|
2016-02-23 07:00:22 +13:00
|
|
|
|
il.Images.Add(Resources.clock);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
lvUploads.SmallImageList = il;
|
|
|
|
|
|
2019-06-14 04:12:20 +12:00
|
|
|
|
TaskManager.TaskListView = new TaskListView(lvUploads);
|
2019-05-26 23:09:56 +12:00
|
|
|
|
TaskManager.TaskThumbnailView = ucTaskThumbnailView;
|
2019-10-02 18:53:56 +13:00
|
|
|
|
uim = new UploadInfoManager();
|
2019-05-11 01:22:39 +12:00
|
|
|
|
|
2016-04-25 06:54:51 +12:00
|
|
|
|
// Required for BackColor Transparent to work
|
2019-05-16 17:40:54 +12:00
|
|
|
|
lblListViewTip.Parent = lvUploads;
|
2016-04-29 12:24:48 +12:00
|
|
|
|
|
2016-02-11 11:15:05 +13:00
|
|
|
|
foreach (ToolStripDropDownItem dropDownItem in new ToolStripDropDownItem[]
|
|
|
|
|
{
|
|
|
|
|
tsddbAfterCaptureTasks, tsddbAfterUploadTasks, tsmiImageUploaders, tsmiImageFileUploaders, tsmiTextUploaders, tsmiTextFileUploaders, tsmiFileUploaders,
|
|
|
|
|
tsmiURLShorteners, tsmiURLSharingServices, tsmiTrayAfterCaptureTasks, tsmiTrayAfterUploadTasks, tsmiTrayImageUploaders, tsmiTrayImageFileUploaders,
|
2018-12-18 02:52:59 +13:00
|
|
|
|
tsmiTrayTextUploaders, tsmiTrayTextFileUploaders, tsmiTrayFileUploaders, tsmiTrayURLShorteners, tsmiTrayURLSharingServices, tsmiScreenshotDelay,
|
|
|
|
|
tsmiTrayScreenshotDelay
|
2016-02-11 11:15:05 +13:00
|
|
|
|
})
|
|
|
|
|
{
|
2018-12-18 02:39:55 +13:00
|
|
|
|
dropDownItem.DisableMenuCloseOnClick();
|
2016-02-11 11:15:05 +13:00
|
|
|
|
}
|
|
|
|
|
|
2014-06-07 06:51:09 +12:00
|
|
|
|
ExportImportControl.UploadRequested += json => UploadManager.UploadText(json);
|
2016-02-12 12:28:03 +13:00
|
|
|
|
|
2017-06-17 18:24:34 +12:00
|
|
|
|
#if !DEBUG
|
2017-06-15 00:21:37 +12:00
|
|
|
|
ucNews.NewsLoaded += (sender, e) =>
|
|
|
|
|
{
|
2017-07-30 21:49:08 +12:00
|
|
|
|
if (ucNews.NewsManager.IsUnread) tsbNews.Counter = ucNews.NewsManager.UnreadCount;
|
2017-06-15 00:21:37 +12:00
|
|
|
|
};
|
|
|
|
|
ucNews.Start();
|
2017-06-17 18:24:34 +12:00
|
|
|
|
#endif
|
2017-05-03 22:20:06 +12:00
|
|
|
|
|
|
|
|
|
#if WindowsStore
|
|
|
|
|
tsmiDNSChanger.Visible = false;
|
|
|
|
|
tsmiTrayDNSChanger.Visible = false;
|
|
|
|
|
#endif
|
2017-06-17 18:24:34 +12:00
|
|
|
|
|
|
|
|
|
HandleCreated += MainForm_HandleCreated;
|
2016-02-12 12:28:03 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-02-12 14:31:11 +13:00
|
|
|
|
public void UpdateControls()
|
2016-02-12 12:28:03 +13:00
|
|
|
|
{
|
2016-02-12 14:31:11 +13:00
|
|
|
|
IsReady = false;
|
|
|
|
|
|
2016-02-12 12:28:03 +13:00
|
|
|
|
niTray.Visible = Program.Settings.ShowTray;
|
|
|
|
|
|
2017-10-10 21:53:33 +13:00
|
|
|
|
TaskManager.UpdateMainFormTip();
|
2016-02-27 19:57:40 +13:00
|
|
|
|
TaskManager.RecentManager.InitItems();
|
2016-02-12 12:28:03 +13:00
|
|
|
|
|
|
|
|
|
bool isPositionChanged = false;
|
|
|
|
|
|
|
|
|
|
if (Program.Settings.RememberMainFormPosition && !Program.Settings.MainFormPosition.IsEmpty &&
|
|
|
|
|
CaptureHelpers.GetScreenBounds().IntersectsWith(new Rectangle(Program.Settings.MainFormPosition, Program.Settings.MainFormSize)))
|
|
|
|
|
{
|
|
|
|
|
StartPosition = FormStartPosition.Manual;
|
|
|
|
|
Location = Program.Settings.MainFormPosition;
|
|
|
|
|
isPositionChanged = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tsMain.Width = tsMain.PreferredSize.Width;
|
|
|
|
|
int height = Size.Height + tsMain.PreferredSize.Height - tsMain.Height;
|
|
|
|
|
MinimumSize = new Size(MinimumSize.Width, height);
|
|
|
|
|
|
|
|
|
|
if (Program.Settings.RememberMainFormSize && !Program.Settings.MainFormSize.IsEmpty)
|
|
|
|
|
{
|
|
|
|
|
Size = Program.Settings.MainFormSize;
|
|
|
|
|
|
|
|
|
|
if (!isPositionChanged)
|
|
|
|
|
{
|
|
|
|
|
StartPosition = FormStartPosition.Manual;
|
|
|
|
|
Rectangle activeScreen = CaptureHelpers.GetActiveScreenBounds();
|
2018-05-17 01:27:11 +12:00
|
|
|
|
Location = new Point((activeScreen.Width / 2) - (Size.Width / 2), (activeScreen.Height / 2) - (Size.Height / 2));
|
2016-02-12 12:28:03 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Size = new Size(Size.Width, height);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch (Program.Settings.ImagePreview)
|
|
|
|
|
{
|
|
|
|
|
case ImagePreviewVisibility.Show:
|
|
|
|
|
tsmiImagePreviewShow.Check();
|
|
|
|
|
break;
|
|
|
|
|
case ImagePreviewVisibility.Hide:
|
|
|
|
|
tsmiImagePreviewHide.Check();
|
|
|
|
|
break;
|
|
|
|
|
case ImagePreviewVisibility.Automatic:
|
|
|
|
|
tsmiImagePreviewAutomatic.Check();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
2017-10-29 05:41:14 +13:00
|
|
|
|
switch (Program.Settings.ImagePreviewLocation)
|
|
|
|
|
{
|
|
|
|
|
case ImagePreviewLocation.Side:
|
|
|
|
|
tsmiImagePreviewSide.Check();
|
|
|
|
|
break;
|
|
|
|
|
case ImagePreviewLocation.Bottom:
|
|
|
|
|
tsmiImagePreviewBottom.Check();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
2019-09-03 22:15:13 +12:00
|
|
|
|
if (Program.Settings.ShowThumbnailTitle)
|
|
|
|
|
{
|
|
|
|
|
tsmiThumbnailTitleShow.Check();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
tsmiThumbnailTitleHide.Check();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch (Program.Settings.ThumbnailTitleLocation)
|
|
|
|
|
{
|
|
|
|
|
case ThumbnailTitleLocation.Top:
|
|
|
|
|
tsmiThumbnailTitleTop.Check();
|
|
|
|
|
break;
|
|
|
|
|
case ThumbnailTitleLocation.Bottom:
|
|
|
|
|
tsmiThumbnailTitleBottom.Check();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
2016-02-12 12:28:03 +13:00
|
|
|
|
if (Program.Settings.PreviewSplitterDistance > 0)
|
|
|
|
|
{
|
|
|
|
|
scMain.SplitterDistance = Program.Settings.PreviewSplitterDistance;
|
|
|
|
|
}
|
|
|
|
|
|
2018-10-02 10:29:55 +13:00
|
|
|
|
if (Program.Settings.TaskListViewColumnWidths != null)
|
|
|
|
|
{
|
|
|
|
|
int len = Math.Min(lvUploads.Columns.Count - 1, Program.Settings.TaskListViewColumnWidths.Count);
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < len; i++)
|
|
|
|
|
{
|
|
|
|
|
lvUploads.Columns[i].Width = Program.Settings.TaskListViewColumnWidths[i];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-02-12 12:28:03 +13:00
|
|
|
|
TaskbarManager.Enabled = Program.Settings.TaskbarProgressEnabled;
|
|
|
|
|
|
|
|
|
|
UpdateCheckStates();
|
|
|
|
|
UpdateMainWindowLayout();
|
|
|
|
|
UpdateUploaderMenuNames();
|
2016-07-04 10:50:26 +12:00
|
|
|
|
UpdateDestinationStates();
|
2019-10-03 22:46:39 +13:00
|
|
|
|
UpdateInfoManager();
|
2016-02-12 12:28:03 +13:00
|
|
|
|
UpdateToggleHotkeyButton();
|
2018-01-13 04:47:34 +13:00
|
|
|
|
AfterTaskSettingsJobs();
|
|
|
|
|
AfterApplicationSettingsJobs();
|
2019-05-14 11:46:53 +12:00
|
|
|
|
UpdateTaskViewMode();
|
2016-02-12 13:15:23 +13:00
|
|
|
|
|
2016-02-12 14:31:11 +13:00
|
|
|
|
InitHotkeys();
|
2016-02-12 13:15:23 +13:00
|
|
|
|
|
2016-02-12 14:31:11 +13:00
|
|
|
|
IsReady = true;
|
2016-02-12 13:15:23 +13:00
|
|
|
|
}
|
|
|
|
|
|
2018-10-14 05:18:10 +13:00
|
|
|
|
protected override void WndProc(ref Message m)
|
|
|
|
|
{
|
|
|
|
|
if (m.Msg == (int)WindowsMessages.QUERYENDSESSION)
|
|
|
|
|
{
|
2018-11-20 08:35:33 +13:00
|
|
|
|
// Calling ToInt64 because the int conversion operator (called when directly casting the IntPtr to the enum)
|
2018-11-20 08:32:16 +13:00
|
|
|
|
// enforces checked semantics thus crashes any 64 bits build. ToInt64() and long -> enum conversion doesn't.
|
|
|
|
|
EndSessionReasons reason = (EndSessionReasons)m.LParam.ToInt64();
|
2018-10-14 05:18:10 +13:00
|
|
|
|
if (reason.HasFlag(EndSessionReasons.ENDSESSION_CLOSEAPP))
|
|
|
|
|
{
|
|
|
|
|
// Register for restart. This allows our application to automatically restart when it is installing an update from the Store.
|
|
|
|
|
// Also allows it to restart if it gets terminated for other reasons (see description of ENDSESSION_CLOSEAPP).
|
|
|
|
|
// Add the silent switch to avoid ShareX popping up in front of the user when the application restarts.
|
|
|
|
|
NativeMethods.RegisterApplicationRestart("-silent", 0);
|
|
|
|
|
}
|
|
|
|
|
m.Result = new IntPtr(1); // "Applications should respect the user's intentions and return TRUE."
|
|
|
|
|
}
|
|
|
|
|
else if (m.Msg == (int)WindowsMessages.ENDSESSION)
|
|
|
|
|
{
|
|
|
|
|
if (m.WParam != IntPtr.Zero)
|
|
|
|
|
{
|
|
|
|
|
// If wParam is not equal to false (0), the application can be terminated at any moment after processing this message
|
|
|
|
|
// thus should save its data while processing the message.
|
2018-10-17 09:34:55 +13:00
|
|
|
|
Program.CloseSequence();
|
2018-10-14 05:18:10 +13:00
|
|
|
|
}
|
|
|
|
|
m.Result = IntPtr.Zero; // "If an application processes this message, it should return zero."
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
base.WndProc(ref m);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-02-12 12:28:03 +13:00
|
|
|
|
private void AfterShownJobs()
|
|
|
|
|
{
|
2016-02-25 22:51:57 +13:00
|
|
|
|
if (!Program.Settings.ShowMostRecentTaskFirst && lvUploads.Items.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
lvUploads.Items[lvUploads.Items.Count - 1].EnsureVisible();
|
|
|
|
|
}
|
|
|
|
|
|
2016-06-25 04:49:06 +12:00
|
|
|
|
if (Program.SteamFirstTimeConfig)
|
2016-02-12 12:28:03 +13:00
|
|
|
|
{
|
|
|
|
|
using (FirstTimeConfigForm firstTimeConfigForm = new FirstTimeConfigForm())
|
|
|
|
|
{
|
|
|
|
|
firstTimeConfigForm.ShowDialog();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2016-03-10 05:37:54 +13:00
|
|
|
|
this.ForceActivate();
|
2016-02-12 12:28:03 +13:00
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void InitHotkeys()
|
|
|
|
|
{
|
2018-08-04 01:38:18 +12:00
|
|
|
|
Task.Run(() =>
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2017-03-27 04:19:52 +13:00
|
|
|
|
SettingManager.WaitHotkeysConfig();
|
2018-08-04 01:54:48 +12:00
|
|
|
|
}).ContinueInCurrentContext(() =>
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
|
|
|
|
if (Program.HotkeyManager == null)
|
|
|
|
|
{
|
|
|
|
|
Program.HotkeyManager = new HotkeyManager(this);
|
|
|
|
|
Program.HotkeyManager.HotkeyTrigger += HandleHotkeys;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Program.HotkeyManager.UpdateHotkeys(Program.HotkeysConfig.Hotkeys, !Program.IgnoreHotkeyWarning);
|
|
|
|
|
|
2017-03-29 08:59:17 +13:00
|
|
|
|
DebugHelper.WriteLine("HotkeyManager started.");
|
2016-11-02 02:16:44 +13:00
|
|
|
|
|
|
|
|
|
if (Program.WatchFolderManager == null)
|
|
|
|
|
{
|
|
|
|
|
Program.WatchFolderManager = new WatchFolderManager();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Program.WatchFolderManager.UpdateWatchFolders();
|
|
|
|
|
|
2017-03-29 08:59:17 +13:00
|
|
|
|
DebugHelper.WriteLine("WatchFolderManager started.");
|
2016-11-02 02:16:44 +13:00
|
|
|
|
|
|
|
|
|
UpdateWorkflowsMenu();
|
2018-08-04 01:54:48 +12:00
|
|
|
|
});
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void HandleHotkeys(HotkeySettings hotkeySetting)
|
|
|
|
|
{
|
|
|
|
|
DebugHelper.WriteLine("Hotkey triggered. " + hotkeySetting);
|
|
|
|
|
|
|
|
|
|
TaskHelpers.ExecuteJob(hotkeySetting.TaskSettings);
|
|
|
|
|
}
|
|
|
|
|
|
2014-05-18 14:21:00 +12:00
|
|
|
|
private void UpdateWorkflowsMenu()
|
|
|
|
|
{
|
|
|
|
|
tsddbWorkflows.DropDownItems.Clear();
|
2014-05-18 22:12:12 +12:00
|
|
|
|
tsmiTrayWorkflows.DropDownItems.Clear();
|
2014-05-18 18:21:55 +12:00
|
|
|
|
|
2014-06-07 13:08:34 +12:00
|
|
|
|
foreach (HotkeySettings hotkeySetting in Program.HotkeysConfig.Hotkeys)
|
2014-05-18 14:21:00 +12:00
|
|
|
|
{
|
2014-05-19 06:12:39 +12:00
|
|
|
|
if (hotkeySetting.TaskSettings.Job != HotkeyType.None && (!Program.Settings.WorkflowsOnlyShowEdited || !hotkeySetting.TaskSettings.IsUsingDefaultSettings))
|
2014-05-18 17:08:15 +12:00
|
|
|
|
{
|
2014-05-19 06:12:39 +12:00
|
|
|
|
tsddbWorkflows.DropDownItems.Add(WorkflowMenuItem(hotkeySetting));
|
|
|
|
|
tsmiTrayWorkflows.DropDownItems.Add(WorkflowMenuItem(hotkeySetting));
|
2014-05-18 17:08:15 +12:00
|
|
|
|
}
|
2014-05-19 06:12:39 +12:00
|
|
|
|
}
|
2014-05-18 18:21:55 +12:00
|
|
|
|
|
2014-06-07 13:08:34 +12:00
|
|
|
|
if (tsddbWorkflows.DropDownItems.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
ToolStripSeparator tss = new ToolStripSeparator();
|
|
|
|
|
tsddbWorkflows.DropDownItems.Add(tss);
|
|
|
|
|
}
|
|
|
|
|
|
2014-10-17 22:58:15 +13:00
|
|
|
|
ToolStripMenuItem tsmi = new ToolStripMenuItem(Resources.MainForm_UpdateWorkflowsMenu_You_can_add_workflows_from_hotkey_settings___);
|
2014-06-07 13:08:34 +12:00
|
|
|
|
tsmi.Click += tsbHotkeySettings_Click;
|
|
|
|
|
tsddbWorkflows.DropDownItems.Add(tsmi);
|
|
|
|
|
|
|
|
|
|
tsmiTrayWorkflows.Visible = tsmiTrayWorkflows.DropDownItems.Count > 0;
|
2014-11-24 06:06:28 +13:00
|
|
|
|
|
|
|
|
|
UpdateMainFormTip();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void UpdateMainFormTip()
|
|
|
|
|
{
|
2014-11-24 08:04:14 +13:00
|
|
|
|
TaskManager.UpdateMainFormTip();
|
|
|
|
|
|
2015-04-22 07:31:03 +12:00
|
|
|
|
List<HotkeySettings> hotkeys = Program.HotkeysConfig.Hotkeys.Where(x => x.HotkeyInfo.IsValidHotkey).ToList();
|
|
|
|
|
|
|
|
|
|
if (hotkeys.Count > 0)
|
2014-11-24 06:06:28 +13:00
|
|
|
|
{
|
2016-04-25 03:17:59 +12:00
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
|
2020-09-21 01:23:20 +12:00
|
|
|
|
//sb.AppendLine(Resources.MainForm_UpdateMainFormTip_Currently_configured_hotkeys_);
|
|
|
|
|
//sb.AppendLine();
|
2014-11-24 06:06:28 +13:00
|
|
|
|
|
2020-09-21 01:23:20 +12:00
|
|
|
|
int maxHotkeyLength = hotkeys.Max(x => x.HotkeyInfo.ToString().Length);
|
|
|
|
|
int maxDescriptionLength = hotkeys.Max(x => x.TaskSettings.ToString().Length);
|
|
|
|
|
|
2020-10-22 18:04:05 +13:00
|
|
|
|
sb.AppendFormat("┌{0}┬{1}┐\r\n", Resources.Hotkey.PadCenter(maxHotkeyLength + 2, '─'), Resources.Description.PadCenter(maxDescriptionLength + 2, '─'));
|
2020-09-21 01:23:20 +12:00
|
|
|
|
|
|
|
|
|
for (int i = 0; i < hotkeys.Count; i++)
|
2014-11-24 06:06:28 +13:00
|
|
|
|
{
|
2020-09-21 01:23:20 +12:00
|
|
|
|
sb.AppendFormat("│ {0} │ {1} │\r\n", hotkeys[i].HotkeyInfo.ToString().PadRight(maxHotkeyLength),
|
|
|
|
|
hotkeys[i].TaskSettings.ToString().PadRight(maxDescriptionLength));
|
|
|
|
|
|
|
|
|
|
if (i + 1 < hotkeys.Count)
|
|
|
|
|
{
|
|
|
|
|
sb.AppendFormat("├{0}┼{1}┤\r\n", new string('─', maxHotkeyLength + 2), new string('─', maxDescriptionLength + 2));
|
|
|
|
|
}
|
2014-11-24 06:06:28 +13:00
|
|
|
|
}
|
|
|
|
|
|
2020-09-21 01:23:20 +12:00
|
|
|
|
sb.AppendFormat("└{0}┴{1}┘", new string('─', maxHotkeyLength + 2), new string('─', maxDescriptionLength + 2));
|
|
|
|
|
|
|
|
|
|
lblListViewTip.Text = lblThumbnailViewTip.Text = sb.ToString();
|
2016-04-25 03:17:59 +12:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2019-05-16 17:40:54 +12:00
|
|
|
|
lblListViewTip.Text = lblThumbnailViewTip.Text = "";
|
2016-04-25 03:17:59 +12:00
|
|
|
|
}
|
2014-05-18 14:21:00 +12:00
|
|
|
|
}
|
|
|
|
|
|
2014-05-19 06:12:39 +12:00
|
|
|
|
private ToolStripMenuItem WorkflowMenuItem(HotkeySettings hotkeySetting)
|
|
|
|
|
{
|
2015-01-17 12:29:52 +13:00
|
|
|
|
ToolStripMenuItem tsmi = new ToolStripMenuItem(hotkeySetting.TaskSettings.ToString().Replace("&", "&&"));
|
2014-06-07 13:08:34 +12:00
|
|
|
|
if (hotkeySetting.HotkeyInfo.IsValidHotkey)
|
|
|
|
|
{
|
2014-10-19 10:48:47 +13:00
|
|
|
|
tsmi.ShortcutKeyDisplayString = " " + hotkeySetting.HotkeyInfo;
|
2014-06-07 13:08:34 +12:00
|
|
|
|
}
|
|
|
|
|
if (!hotkeySetting.TaskSettings.IsUsingDefaultSettings)
|
|
|
|
|
{
|
|
|
|
|
tsmi.Font = new Font(tsmi.Font, FontStyle.Bold);
|
|
|
|
|
}
|
2016-11-01 09:55:12 +13:00
|
|
|
|
tsmi.Click += (sender, e) => TaskHelpers.ExecuteJob(hotkeySetting.TaskSettings);
|
2014-05-19 06:12:39 +12:00
|
|
|
|
return tsmi;
|
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void UpdateDestinationStates()
|
|
|
|
|
{
|
|
|
|
|
if (Program.UploadersConfig != null)
|
|
|
|
|
{
|
|
|
|
|
EnableDisableToolStripMenuItems<ImageDestination>(tsmiImageUploaders, tsmiTrayImageUploaders);
|
2014-03-05 02:04:46 +13:00
|
|
|
|
EnableDisableToolStripMenuItems<FileDestination>(tsmiImageFileUploaders, tsmiTrayImageFileUploaders);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
EnableDisableToolStripMenuItems<TextDestination>(tsmiTextUploaders, tsmiTrayTextUploaders);
|
2014-03-05 02:04:46 +13:00
|
|
|
|
EnableDisableToolStripMenuItems<FileDestination>(tsmiTextFileUploaders, tsmiTrayTextFileUploaders);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
EnableDisableToolStripMenuItems<FileDestination>(tsmiFileUploaders, tsmiTrayFileUploaders);
|
|
|
|
|
EnableDisableToolStripMenuItems<UrlShortenerType>(tsmiURLShorteners, tsmiTrayURLShorteners);
|
2014-07-11 13:52:53 +12:00
|
|
|
|
EnableDisableToolStripMenuItems<URLSharingServices>(tsmiURLSharingServices, tsmiTrayURLSharingServices);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-17 08:47:04 +12:00
|
|
|
|
private void AddEnumItems<T>(Action<T> selectedEnum, params ToolStripDropDownItem[] parents) where T : Enum
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2020-09-17 08:47:04 +12:00
|
|
|
|
T[] enums = Helpers.GetEnums<T>();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
|
|
|
|
foreach (ToolStripDropDownItem parent in parents)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < enums.Length; i++)
|
|
|
|
|
{
|
2020-09-17 08:47:04 +12:00
|
|
|
|
T currentEnum = enums[i];
|
|
|
|
|
ToolStripMenuItem tsmi = new ToolStripMenuItem(currentEnum.GetLocalizedDescription());
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
|
|
|
|
int index = i;
|
|
|
|
|
|
|
|
|
|
tsmi.Click += (sender, e) =>
|
|
|
|
|
{
|
|
|
|
|
foreach (ToolStripDropDownItem parent2 in parents)
|
|
|
|
|
{
|
|
|
|
|
for (int i2 = 0; i2 < enums.Length; i2++)
|
|
|
|
|
{
|
|
|
|
|
ToolStripMenuItem tsmi2 = (ToolStripMenuItem)parent2.DropDownItems[i2];
|
|
|
|
|
tsmi2.Checked = index == i2;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-17 08:47:04 +12:00
|
|
|
|
selectedEnum(currentEnum);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
|
|
|
|
UpdateUploaderMenuNames();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
parent.DropDownItems.Add(tsmi);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-10-25 13:04:41 +13:00
|
|
|
|
public static void Uncheck(params ToolStripDropDownItem[] lists)
|
|
|
|
|
{
|
|
|
|
|
foreach (ToolStripDropDownItem parent in lists)
|
|
|
|
|
{
|
2016-09-17 19:07:02 +12:00
|
|
|
|
foreach (ToolStripItem dropDownItem in parent.DropDownItems)
|
2014-10-25 13:04:41 +13:00
|
|
|
|
{
|
|
|
|
|
((ToolStripMenuItem)dropDownItem).Checked = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-14 20:57:24 +12:00
|
|
|
|
private static void SetEnumChecked(Enum value, params ToolStripDropDownItem[] parents)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2014-09-14 02:30:29 +12:00
|
|
|
|
if (value == null)
|
2014-10-25 13:04:41 +13:00
|
|
|
|
{
|
2014-09-14 02:30:29 +12:00
|
|
|
|
return;
|
2014-10-25 13:04:41 +13:00
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
int index = value.GetIndex();
|
|
|
|
|
|
|
|
|
|
foreach (ToolStripDropDownItem parent in parents)
|
|
|
|
|
{
|
2017-01-16 05:42:31 +13:00
|
|
|
|
((ToolStripMenuItem)parent.DropDownItems[index]).RadioCheck();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-06 07:07:42 +12:00
|
|
|
|
private void AddMultiEnumItems<T>(Action<T> selectedEnum, params ToolStripDropDownItem[] parents) where T : Enum
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2020-09-17 08:47:04 +12:00
|
|
|
|
T[] enums = Helpers.GetEnums<T>().Skip(1).ToArray();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
|
|
|
|
foreach (ToolStripDropDownItem parent in parents)
|
|
|
|
|
{
|
2014-10-19 09:29:23 +13:00
|
|
|
|
for (int i = 0; i < enums.Length; i++)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2020-09-17 08:47:04 +12:00
|
|
|
|
T currentEnum = enums[i];
|
|
|
|
|
ToolStripMenuItem tsmi = new ToolStripMenuItem(currentEnum.GetLocalizedDescription());
|
|
|
|
|
tsmi.Image = TaskHelpers.FindMenuIcon(currentEnum);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
|
|
|
|
int index = i;
|
|
|
|
|
|
|
|
|
|
tsmi.Click += (sender, e) =>
|
|
|
|
|
{
|
|
|
|
|
foreach (ToolStripDropDownItem parent2 in parents)
|
|
|
|
|
{
|
|
|
|
|
ToolStripMenuItem tsmi2 = (ToolStripMenuItem)parent2.DropDownItems[index];
|
|
|
|
|
tsmi2.Checked = !tsmi2.Checked;
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-17 08:47:04 +12:00
|
|
|
|
selectedEnum(currentEnum);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
|
|
|
|
UpdateUploaderMenuNames();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
parent.DropDownItems.Add(tsmi);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-17 08:47:04 +12:00
|
|
|
|
private void UpdateImageEffectsMenu(ToolStripDropDownItem parent)
|
|
|
|
|
{
|
2020-09-17 09:18:17 +12:00
|
|
|
|
int indexAddImageEffects = AfterCaptureTasks.AddImageEffects.GetIndex() - 1;
|
2020-09-17 08:47:04 +12:00
|
|
|
|
ToolStripMenuItem tsmiAddImageEffects = (ToolStripMenuItem)parent.DropDownItems[indexAddImageEffects];
|
2020-09-17 09:32:41 +12:00
|
|
|
|
tsmiAddImageEffects.DisableMenuCloseOnClick();
|
2020-09-17 08:47:04 +12:00
|
|
|
|
tsmiAddImageEffects.DropDownItems.Clear();
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < Program.DefaultTaskSettings.ImageSettings.ImageEffectPresets.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
ImageEffectPreset effectPreset = Program.DefaultTaskSettings.ImageSettings.ImageEffectPresets[i];
|
|
|
|
|
ToolStripMenuItem tsmi = new ToolStripMenuItem(effectPreset.ToString());
|
|
|
|
|
tsmi.Checked = i == Program.DefaultTaskSettings.ImageSettings.SelectedImageEffectPreset;
|
|
|
|
|
int indexSelected = i;
|
|
|
|
|
tsmi.Click += (sender, e) =>
|
|
|
|
|
{
|
|
|
|
|
Program.DefaultTaskSettings.ImageSettings.SelectedImageEffectPreset = indexSelected;
|
|
|
|
|
((ToolStripMenuItem)tsmiAddImageEffects.DropDownItems[indexSelected]).RadioCheck();
|
|
|
|
|
};
|
|
|
|
|
tsmiAddImageEffects.DropDownItems.Add(tsmi);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void SetMultiEnumChecked(Enum value, params ToolStripDropDownItem[] parents)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < parents[0].DropDownItems.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
foreach (ToolStripDropDownItem parent in parents)
|
|
|
|
|
{
|
|
|
|
|
ToolStripMenuItem tsmi = (ToolStripMenuItem)parent.DropDownItems[i];
|
|
|
|
|
tsmi.Checked = value.HasFlag(1 << i);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void EnableDisableToolStripMenuItems<T>(params ToolStripDropDownItem[] parents)
|
|
|
|
|
{
|
|
|
|
|
foreach (ToolStripDropDownItem parent in parents)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < parent.DropDownItems.Count; i++)
|
|
|
|
|
{
|
2018-01-23 13:46:02 +13:00
|
|
|
|
parent.DropDownItems[i].ForeColor = UploadersConfigValidator.Validate<T>(i, Program.UploadersConfig) ?
|
|
|
|
|
SystemColors.ControlText : Color.FromArgb(200, 0, 0);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-10-03 22:46:39 +13:00
|
|
|
|
private void UpdateInfoManager()
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2014-07-17 18:58:17 +12:00
|
|
|
|
cmsTaskInfo.SuspendLayout();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2017-03-16 13:20:59 +13:00
|
|
|
|
tsmiStopUpload.Visible = tsmiOpen.Visible = tsmiCopy.Visible = tsmiShowErrors.Visible = tsmiShowResponse.Visible = tsmiSearchImage.Visible =
|
|
|
|
|
tsmiShowQRCode.Visible = tsmiOCRImage.Visible = tsmiCombineImages.Visible = tsmiUploadSelectedFile.Visible = tsmiDownloadSelectedURL.Visible =
|
2020-08-03 00:41:53 +12:00
|
|
|
|
tsmiEditSelectedFile.Visible = tsmiAddImageEffects.Visible = tsmiRunAction.Visible = tsmiDeleteSelectedItem.Visible = tsmiDeleteSelectedFile.Visible =
|
|
|
|
|
tsmiShortenSelectedURL.Visible = tsmiShareSelectedURL.Visible = false;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2019-05-13 10:21:37 +12:00
|
|
|
|
if (Program.Settings.TaskViewMode == TaskViewMode.ListView)
|
2014-06-19 07:17:22 +12:00
|
|
|
|
{
|
2019-05-12 08:36:00 +12:00
|
|
|
|
pbPreview.Reset();
|
2019-10-02 18:53:56 +13:00
|
|
|
|
uim.UpdateSelectedItems(lvUploads.SelectedItems.Cast<ListViewItem>().Select(x => x.Tag as WorkerTask));
|
2014-06-19 07:17:22 +12:00
|
|
|
|
|
2019-05-12 08:36:00 +12:00
|
|
|
|
switch (Program.Settings.ImagePreview)
|
|
|
|
|
{
|
|
|
|
|
case ImagePreviewVisibility.Show:
|
|
|
|
|
scMain.Panel2Collapsed = false;
|
|
|
|
|
break;
|
|
|
|
|
case ImagePreviewVisibility.Hide:
|
|
|
|
|
scMain.Panel2Collapsed = true;
|
|
|
|
|
break;
|
|
|
|
|
case ImagePreviewVisibility.Automatic:
|
|
|
|
|
scMain.Panel2Collapsed = !uim.IsItemSelected || (!uim.SelectedItem.IsImageFile && !uim.SelectedItem.IsImageURL);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch (Program.Settings.ImagePreviewLocation)
|
|
|
|
|
{
|
|
|
|
|
case ImagePreviewLocation.Side:
|
|
|
|
|
scMain.Orientation = Orientation.Vertical;
|
|
|
|
|
break;
|
|
|
|
|
case ImagePreviewLocation.Bottom:
|
|
|
|
|
scMain.Orientation = Orientation.Horizontal;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-10-02 18:53:56 +13:00
|
|
|
|
else if (Program.Settings.TaskViewMode == TaskViewMode.ThumbnailView)
|
2017-10-29 05:41:14 +13:00
|
|
|
|
{
|
2019-10-02 18:53:56 +13:00
|
|
|
|
uim.UpdateSelectedItems(ucTaskThumbnailView.SelectedPanels.Select(x => x.Task));
|
2017-10-29 05:41:14 +13:00
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
if (uim.IsItemSelected)
|
|
|
|
|
{
|
2015-09-17 12:39:57 +12:00
|
|
|
|
// Open
|
|
|
|
|
tsmiOpen.Visible = true;
|
|
|
|
|
|
|
|
|
|
tsmiOpenURL.Enabled = uim.SelectedItem.IsURLExist;
|
|
|
|
|
tsmiOpenShortenedURL.Enabled = uim.SelectedItem.IsShortenedURLExist;
|
|
|
|
|
tsmiOpenThumbnailURL.Enabled = uim.SelectedItem.IsThumbnailURLExist;
|
|
|
|
|
tsmiOpenDeletionURL.Enabled = uim.SelectedItem.IsDeletionURLExist;
|
|
|
|
|
|
|
|
|
|
tsmiOpenFile.Enabled = uim.SelectedItem.IsFileExist;
|
|
|
|
|
tsmiOpenFolder.Enabled = uim.SelectedItem.IsFileExist;
|
|
|
|
|
tsmiOpenThumbnailFile.Enabled = uim.SelectedItem.IsThumbnailFileExist;
|
|
|
|
|
|
2019-05-14 12:56:01 +12:00
|
|
|
|
if (uim.SelectedItems != null && uim.SelectedItems.Any(x => x.Task.IsWorking))
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
|
|
|
|
tsmiStopUpload.Visible = true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2014-05-25 17:53:47 +12:00
|
|
|
|
tsmiShowErrors.Visible = uim.SelectedItem.Info.Result.IsError;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-04-05 10:56:30 +13:00
|
|
|
|
// Copy
|
|
|
|
|
tsmiCopy.Visible = true;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-04-05 10:56:30 +13:00
|
|
|
|
tsmiCopyURL.Enabled = uim.SelectedItems.Any(x => x.IsURLExist);
|
|
|
|
|
tsmiCopyShortenedURL.Enabled = uim.SelectedItems.Any(x => x.IsShortenedURLExist);
|
|
|
|
|
tsmiCopyThumbnailURL.Enabled = uim.SelectedItems.Any(x => x.IsThumbnailURLExist);
|
|
|
|
|
tsmiCopyDeletionURL.Enabled = uim.SelectedItems.Any(x => x.IsDeletionURLExist);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-04-05 10:56:30 +13:00
|
|
|
|
tsmiCopyFile.Enabled = uim.SelectedItem.IsFileExist;
|
|
|
|
|
tsmiCopyImage.Enabled = uim.SelectedItem.IsImageFile;
|
2018-12-15 13:25:57 +13:00
|
|
|
|
tsmiCopyImageDimensions.Enabled = uim.SelectedItem.IsImageFile;
|
2014-04-05 10:56:30 +13:00
|
|
|
|
tsmiCopyText.Enabled = uim.SelectedItem.IsTextFile;
|
2014-04-23 09:00:41 +12:00
|
|
|
|
tsmiCopyThumbnailFile.Enabled = uim.SelectedItem.IsThumbnailFileExist;
|
|
|
|
|
tsmiCopyThumbnailImage.Enabled = uim.SelectedItem.IsThumbnailFileExist;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-04-05 10:56:30 +13:00
|
|
|
|
tsmiCopyHTMLLink.Enabled = uim.SelectedItems.Any(x => x.IsURLExist);
|
|
|
|
|
tsmiCopyHTMLImage.Enabled = uim.SelectedItems.Any(x => x.IsImageURL);
|
|
|
|
|
tsmiCopyHTMLLinkedImage.Enabled = uim.SelectedItems.Any(x => x.IsImageURL && x.IsThumbnailURLExist);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-04-05 10:56:30 +13:00
|
|
|
|
tsmiCopyForumLink.Enabled = uim.SelectedItems.Any(x => x.IsURLExist);
|
|
|
|
|
tsmiCopyForumImage.Enabled = uim.SelectedItems.Any(x => x.IsImageURL && x.IsURLExist);
|
|
|
|
|
tsmiCopyForumLinkedImage.Enabled = uim.SelectedItems.Any(x => x.IsImageURL && x.IsThumbnailURLExist);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2017-09-28 03:15:49 +13:00
|
|
|
|
tsmiCopyMarkdownLink.Enabled = uim.SelectedItems.Any(x => x.IsURLExist);
|
|
|
|
|
tsmiCopyMarkdownImage.Enabled = uim.SelectedItems.Any(x => x.IsImageURL);
|
|
|
|
|
tsmiCopyMarkdownLinkedImage.Enabled = uim.SelectedItems.Any(x => x.IsImageURL && x.IsThumbnailURLExist);
|
|
|
|
|
|
2014-04-05 10:56:30 +13:00
|
|
|
|
tsmiCopyFilePath.Enabled = uim.SelectedItems.Any(x => x.IsFilePathValid);
|
|
|
|
|
tsmiCopyFileName.Enabled = uim.SelectedItems.Any(x => x.IsFilePathValid);
|
|
|
|
|
tsmiCopyFileNameWithExtension.Enabled = uim.SelectedItems.Any(x => x.IsFilePathValid);
|
|
|
|
|
tsmiCopyFolder.Enabled = uim.SelectedItems.Any(x => x.IsFilePathValid);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-04-05 10:56:30 +13:00
|
|
|
|
CleanCustomClipboardFormats();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-04-05 10:56:30 +13:00
|
|
|
|
if (Program.Settings.ClipboardContentFormats != null && Program.Settings.ClipboardContentFormats.Count > 0)
|
|
|
|
|
{
|
2017-09-28 03:15:49 +13:00
|
|
|
|
tssCopy6.Visible = true;
|
2014-04-05 10:56:30 +13:00
|
|
|
|
|
|
|
|
|
foreach (ClipboardFormat cf in Program.Settings.ClipboardContentFormats)
|
|
|
|
|
{
|
|
|
|
|
ToolStripMenuItem tsmiClipboardFormat = new ToolStripMenuItem(cf.Description);
|
|
|
|
|
tsmiClipboardFormat.Tag = cf;
|
|
|
|
|
tsmiClipboardFormat.Click += tsmiClipboardFormat_Click;
|
|
|
|
|
tsmiCopy.DropDownItems.Add(tsmiClipboardFormat);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tsmiUploadSelectedFile.Visible = uim.SelectedItem.IsFileExist;
|
2016-07-20 20:23:46 +12:00
|
|
|
|
tsmiDownloadSelectedURL.Visible = uim.SelectedItem.IsFileURL;
|
2014-07-17 18:58:17 +12:00
|
|
|
|
tsmiEditSelectedFile.Visible = uim.SelectedItem.IsImageFile;
|
2020-08-03 00:41:53 +12:00
|
|
|
|
tsmiAddImageEffects.Visible = uim.SelectedItem.IsImageFile;
|
2019-09-20 22:58:47 +12:00
|
|
|
|
UpdateActionsMenu(uim.SelectedItem.Info.FilePath);
|
2017-02-14 07:00:47 +13:00
|
|
|
|
tsmiDeleteSelectedItem.Visible = true;
|
2014-07-28 10:08:37 +12:00
|
|
|
|
tsmiDeleteSelectedFile.Visible = uim.SelectedItem.IsFileExist;
|
2014-07-08 04:46:55 +12:00
|
|
|
|
tsmiShortenSelectedURL.Visible = uim.SelectedItem.IsURLExist;
|
|
|
|
|
tsmiShareSelectedURL.Visible = uim.SelectedItem.IsURLExist;
|
2017-03-16 13:20:59 +13:00
|
|
|
|
tsmiSearchImage.Visible = uim.SelectedItem.IsURLExist;
|
2014-07-08 04:46:55 +12:00
|
|
|
|
tsmiShowQRCode.Visible = uim.SelectedItem.IsURLExist;
|
2016-12-12 21:45:16 +13:00
|
|
|
|
tsmiOCRImage.Visible = uim.SelectedItem.IsImageFile;
|
2018-04-29 10:30:39 +12:00
|
|
|
|
tsmiCombineImages.Visible = uim.SelectedItems.Count(x => x.IsImageFile) > 1;
|
2014-07-08 04:46:55 +12:00
|
|
|
|
tsmiShowResponse.Visible = !string.IsNullOrEmpty(uim.SelectedItem.Info.Result.Response);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2019-05-13 10:21:37 +12:00
|
|
|
|
if (Program.Settings.TaskViewMode == TaskViewMode.ListView)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2019-05-12 08:36:00 +12:00
|
|
|
|
if (!scMain.Panel2Collapsed)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2019-05-12 08:36:00 +12:00
|
|
|
|
if (uim.SelectedItem.IsImageFile)
|
|
|
|
|
{
|
|
|
|
|
pbPreview.LoadImageFromFileAsync(uim.SelectedItem.Info.FilePath);
|
|
|
|
|
}
|
|
|
|
|
else if (uim.SelectedItem.IsImageURL)
|
|
|
|
|
{
|
|
|
|
|
pbPreview.LoadImageFromURLAsync(uim.SelectedItem.Info.Result.URL);
|
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tsmiClearList.Visible = tssUploadInfo1.Visible = lvUploads.Items.Count > 0;
|
2019-05-13 11:19:09 +12:00
|
|
|
|
|
2014-07-17 18:58:17 +12:00
|
|
|
|
cmsTaskInfo.ResumeLayout();
|
2019-05-26 01:11:52 +12:00
|
|
|
|
|
2014-06-19 07:17:22 +12:00
|
|
|
|
Refresh();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2019-05-14 11:46:53 +12:00
|
|
|
|
private void UpdateTaskViewMode()
|
|
|
|
|
{
|
|
|
|
|
if (Program.Settings.TaskViewMode == TaskViewMode.ListView)
|
|
|
|
|
{
|
2019-08-24 15:50:52 +12:00
|
|
|
|
tsmiSwitchTaskViewMode.Text = Resources.SwitchToThumbnailView;
|
2019-05-14 11:46:53 +12:00
|
|
|
|
tsmiSwitchTaskViewMode.Image = Resources.application_icon_large;
|
|
|
|
|
scMain.Visible = true;
|
|
|
|
|
pThumbnailView.Visible = false;
|
|
|
|
|
scMain.Focus();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2019-08-24 15:50:52 +12:00
|
|
|
|
tsmiSwitchTaskViewMode.Text = Resources.SwitchToListView;
|
2019-05-14 11:46:53 +12:00
|
|
|
|
tsmiSwitchTaskViewMode.Image = Resources.application_list;
|
|
|
|
|
pThumbnailView.Visible = true;
|
|
|
|
|
scMain.Visible = false;
|
|
|
|
|
pThumbnailView.Focus();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-09-07 03:11:08 +12:00
|
|
|
|
public void UpdateTheme()
|
2019-05-16 11:51:40 +12:00
|
|
|
|
{
|
2019-09-07 22:41:38 +12:00
|
|
|
|
if (Program.Settings.Themes == null || Program.Settings.Themes.Count == 0)
|
|
|
|
|
{
|
2020-12-09 18:32:46 +13:00
|
|
|
|
Program.Settings.Themes = ShareXTheme.GetDefaultThemes();
|
2019-09-07 22:41:38 +12:00
|
|
|
|
Program.Settings.SelectedTheme = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!Program.Settings.Themes.IsValidIndex(Program.Settings.SelectedTheme))
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.SelectedTheme = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ShareXResources.Theme = Program.Settings.Themes[Program.Settings.SelectedTheme];
|
2020-02-05 21:13:55 +13:00
|
|
|
|
ShareXResources.UseCustomTheme = Program.Settings.UseCustomTheme;
|
2019-09-07 22:41:38 +12:00
|
|
|
|
|
2019-05-23 09:06:45 +12:00
|
|
|
|
if (IsHandleCreated)
|
|
|
|
|
{
|
2020-03-31 20:26:18 +13:00
|
|
|
|
NativeMethods.UseImmersiveDarkMode(Handle, ShareXResources.IsDarkTheme);
|
2019-05-23 09:06:45 +12:00
|
|
|
|
}
|
|
|
|
|
|
2020-02-05 21:13:55 +13:00
|
|
|
|
if (ShareXResources.UseCustomTheme)
|
2019-05-16 11:51:40 +12:00
|
|
|
|
{
|
|
|
|
|
tsMain.Renderer = new ToolStripDarkRenderer();
|
|
|
|
|
tsMain.DrawCustomBorder = false;
|
2019-09-25 01:21:51 +12:00
|
|
|
|
tsSocialButtons.Renderer = new ToolStripDarkRenderer();
|
|
|
|
|
tsSocialButtons.DrawCustomBorder = false;
|
2020-02-09 04:07:17 +13:00
|
|
|
|
ShareXResources.ApplyCustomThemeToContextMenuStrip(cmsTray);
|
|
|
|
|
ShareXResources.ApplyCustomThemeToContextMenuStrip(cmsTaskInfo);
|
2019-09-06 20:18:30 +12:00
|
|
|
|
ttMain.BackColor = ShareXResources.Theme.BackgroundColor;
|
|
|
|
|
ttMain.ForeColor = ShareXResources.Theme.TextColor;
|
|
|
|
|
lvUploads.BackColor = ShareXResources.Theme.BackgroundColor;
|
|
|
|
|
lvUploads.ForeColor = ShareXResources.Theme.TextColor;
|
|
|
|
|
lblListViewTip.ForeColor = ShareXResources.Theme.TextColor;
|
|
|
|
|
scMain.SplitterColor = ShareXResources.Theme.BackgroundColor;
|
|
|
|
|
scMain.SplitterLineColor = ShareXResources.Theme.BorderColor;
|
|
|
|
|
pThumbnailView.BackColor = ShareXResources.Theme.BackgroundColor;
|
|
|
|
|
lblThumbnailViewTip.ForeColor = ShareXResources.Theme.TextColor;
|
|
|
|
|
btnCloseNews.FlatAppearance.BorderColor = ShareXResources.Theme.BorderColor;
|
|
|
|
|
btnCloseNews.ForeColor = ShareXResources.Theme.TextColor;
|
2019-09-12 04:25:11 +12:00
|
|
|
|
btnCloseNews.BackColor = ShareXResources.Theme.LightBackgroundColor;
|
2019-05-16 11:51:40 +12:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
tsMain.Renderer = new ToolStripCustomRenderer();
|
|
|
|
|
tsMain.DrawCustomBorder = true;
|
2019-09-25 01:21:51 +12:00
|
|
|
|
tsSocialButtons.Renderer = new ToolStripCustomRenderer();
|
|
|
|
|
tsSocialButtons.DrawCustomBorder = true;
|
2019-05-16 11:51:40 +12:00
|
|
|
|
cmsTray.Renderer = new ToolStripCustomRenderer();
|
2019-11-26 08:40:21 +13:00
|
|
|
|
cmsTray.Opacity = 1;
|
2019-05-16 11:51:40 +12:00
|
|
|
|
cmsTaskInfo.Renderer = new ToolStripCustomRenderer();
|
2020-07-09 00:12:49 +12:00
|
|
|
|
cmsTaskInfo.Opacity = 1;
|
2019-08-16 22:07:25 +12:00
|
|
|
|
ttMain.BackColor = SystemColors.Window;
|
|
|
|
|
ttMain.ForeColor = SystemColors.ControlText;
|
2019-05-16 17:40:54 +12:00
|
|
|
|
lvUploads.BackColor = SystemColors.Window;
|
2019-07-25 00:49:53 +12:00
|
|
|
|
lvUploads.ForeColor = SystemColors.ControlText;
|
2019-05-16 17:40:54 +12:00
|
|
|
|
lblListViewTip.ForeColor = Color.Silver;
|
2019-05-16 18:04:47 +12:00
|
|
|
|
scMain.SplitterColor = Color.White;
|
|
|
|
|
scMain.SplitterLineColor = ProfessionalColors.SeparatorDark;
|
2019-05-24 01:55:49 +12:00
|
|
|
|
pThumbnailView.BackColor = SystemColors.Window;
|
|
|
|
|
lblThumbnailViewTip.ForeColor = Color.Silver;
|
2019-08-16 22:33:21 +12:00
|
|
|
|
btnCloseNews.FlatAppearance.BorderColor = SystemColors.ControlText;
|
|
|
|
|
btnCloseNews.ForeColor = SystemColors.ControlText;
|
|
|
|
|
btnCloseNews.BackColor = SystemColors.Window;
|
2020-03-31 23:50:24 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ShareXResources.IsDarkTheme)
|
|
|
|
|
{
|
|
|
|
|
tsbGitHub.Image = Resources.GitHub_White_32x32;
|
|
|
|
|
tsmiQRCode.Image = Resources.barcode_2d_white;
|
|
|
|
|
tsmiTrayQRCode.Image = Resources.barcode_2d_white;
|
|
|
|
|
tsmiShowQRCode.Image = Resources.barcode_2d_white;
|
|
|
|
|
tsmiTextCapture.Image = Resources.edit_drop_cap_white;
|
|
|
|
|
tsmiTrayTextCapture.Image = Resources.edit_drop_cap_white;
|
|
|
|
|
tsmiOCRImage.Image = Resources.edit_drop_cap_white;
|
|
|
|
|
tsmiShortenURL.Image = Resources.edit_scale_white;
|
|
|
|
|
tsmiTrayShortenURL.Image = Resources.edit_scale_white;
|
|
|
|
|
tsmiURLShorteners.Image = Resources.edit_scale_white;
|
|
|
|
|
tsmiTrayURLShorteners.Image = Resources.edit_scale_white;
|
|
|
|
|
tsmiTestURLShortener.Image = Resources.edit_scale_white;
|
|
|
|
|
tsmiTrayTestURLShortener.Image = Resources.edit_scale_white;
|
|
|
|
|
tsmiShortenSelectedURL.Image = Resources.edit_scale_white;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2019-09-26 02:48:21 +12:00
|
|
|
|
tsbGitHub.Image = Resources.GitHub_Black_32x32;
|
2020-03-31 23:50:24 +13:00
|
|
|
|
tsmiQRCode.Image = Resources.barcode_2d;
|
|
|
|
|
tsmiTrayQRCode.Image = Resources.barcode_2d;
|
|
|
|
|
tsmiShowQRCode.Image = Resources.barcode_2d;
|
|
|
|
|
tsmiTextCapture.Image = Resources.edit_drop_cap;
|
|
|
|
|
tsmiTrayTextCapture.Image = Resources.edit_drop_cap;
|
|
|
|
|
tsmiOCRImage.Image = Resources.edit_drop_cap;
|
|
|
|
|
tsmiShortenURL.Image = Resources.edit_scale;
|
|
|
|
|
tsmiTrayShortenURL.Image = Resources.edit_scale;
|
|
|
|
|
tsmiURLShorteners.Image = Resources.edit_scale;
|
|
|
|
|
tsmiTrayURLShorteners.Image = Resources.edit_scale;
|
|
|
|
|
tsmiTestURLShortener.Image = Resources.edit_scale;
|
|
|
|
|
tsmiTrayTestURLShortener.Image = Resources.edit_scale;
|
|
|
|
|
tsmiShortenSelectedURL.Image = Resources.edit_scale;
|
2019-05-16 11:51:40 +12:00
|
|
|
|
}
|
2019-05-24 01:55:49 +12:00
|
|
|
|
|
2019-07-06 13:42:41 +12:00
|
|
|
|
pbPreview.UpdateTheme();
|
2019-07-08 12:10:53 +12:00
|
|
|
|
pbPreview.UpdateCheckers(true);
|
2019-05-26 23:09:56 +12:00
|
|
|
|
ucTaskThumbnailView.UpdateTheme();
|
2019-05-25 01:46:44 +12:00
|
|
|
|
ucNews.UpdateTheme();
|
2019-05-16 11:51:40 +12:00
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void CleanCustomClipboardFormats()
|
|
|
|
|
{
|
2017-09-28 03:15:49 +13:00
|
|
|
|
tssCopy6.Visible = false;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2017-09-28 03:15:49 +13:00
|
|
|
|
int tssCopy6Index = tsmiCopy.DropDownItems.IndexOf(tssCopy6);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2017-09-28 03:15:49 +13:00
|
|
|
|
while (tssCopy6Index < tsmiCopy.DropDownItems.Count - 1)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
|
|
|
|
using (ToolStripItem tsi = tsmiCopy.DropDownItems[tsmiCopy.DropDownItems.Count - 1])
|
|
|
|
|
{
|
|
|
|
|
tsmiCopy.DropDownItems.Remove(tsi);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-09-20 22:58:47 +12:00
|
|
|
|
private void UpdateActionsMenu(string filePath)
|
|
|
|
|
{
|
|
|
|
|
tsmiRunAction.DropDownItems.Clear();
|
|
|
|
|
|
2019-09-21 19:51:11 +12:00
|
|
|
|
if (!string.IsNullOrEmpty(filePath) && File.Exists(filePath))
|
2019-09-20 22:58:47 +12:00
|
|
|
|
{
|
2019-09-21 19:51:11 +12:00
|
|
|
|
IEnumerable<ExternalProgram> actions = Program.DefaultTaskSettings.ExternalPrograms.
|
|
|
|
|
Where(x => !string.IsNullOrEmpty(x.Name) && x.CheckExtension(filePath));
|
|
|
|
|
|
|
|
|
|
if (actions.Count() > 0)
|
2019-09-20 22:58:47 +12:00
|
|
|
|
{
|
2019-09-21 19:51:11 +12:00
|
|
|
|
tsmiRunAction.Visible = true;
|
|
|
|
|
|
|
|
|
|
foreach (ExternalProgram action in actions)
|
2019-09-20 22:58:47 +12:00
|
|
|
|
{
|
|
|
|
|
string name = action.Name.Truncate(50, "...");
|
|
|
|
|
ToolStripMenuItem tsmi = new ToolStripMenuItem(name);
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
2020-05-12 23:55:44 +12:00
|
|
|
|
string actionFilePath = action.GetFullPath();
|
2020-05-13 00:45:32 +12:00
|
|
|
|
tsmi.Image = actionsMenuIconCache.GetFileIconAsImage(actionFilePath);
|
2019-09-20 22:58:47 +12:00
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
DebugHelper.WriteException(e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tsmi.Click += async (sender, e) => await action.RunAsync(filePath);
|
|
|
|
|
tsmiRunAction.DropDownItems.Add(tsmi);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2018-01-13 04:47:34 +13:00
|
|
|
|
private void AfterApplicationSettingsJobs()
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2018-05-29 22:08:33 +12:00
|
|
|
|
HotkeyRepeatLimit = Program.Settings.HotkeyRepeatLimit;
|
2019-06-18 10:06:55 +12:00
|
|
|
|
|
2015-01-12 22:14:59 +13:00
|
|
|
|
HelpersOptions.CurrentProxy = Program.Settings.ProxySettings;
|
2016-03-14 14:10:19 +13:00
|
|
|
|
HelpersOptions.AcceptInvalidSSLCertificates = Program.Settings.AcceptInvalidSSLCertificates;
|
2019-11-03 18:30:07 +13:00
|
|
|
|
HelpersOptions.URLEncodeIgnoreEmoji = Program.Settings.URLEncodeIgnoreEmoji;
|
2015-11-11 22:14:39 +13:00
|
|
|
|
HelpersOptions.DefaultCopyImageFillBackground = Program.Settings.DefaultClipboardCopyImageFillBackground;
|
2020-08-17 02:54:43 +12:00
|
|
|
|
HelpersOptions.UseAlternativeClipboardCopyImage = Program.Settings.UseAlternativeClipboardCopyImage;
|
2021-04-06 06:45:52 +12:00
|
|
|
|
HelpersOptions.UseAlternativeClipboardGetImage = Program.Settings.UseAlternativeClipboardGetImage;
|
2017-12-22 23:59:52 +13:00
|
|
|
|
HelpersOptions.RotateImageByExifOrientationData = Program.Settings.RotateImageByExifOrientationData;
|
2015-01-12 22:14:59 +13:00
|
|
|
|
HelpersOptions.BrowserPath = Program.Settings.BrowserPath;
|
2018-04-24 22:46:12 +12:00
|
|
|
|
HelpersOptions.RecentColors = Program.Settings.RecentColors;
|
2020-10-19 11:23:08 +13:00
|
|
|
|
HelpersOptions.DevMode = Program.Settings.DevMode;
|
2020-07-06 11:23:59 +12:00
|
|
|
|
Program.UpdateHelpersSpecialFolders();
|
2019-06-18 10:06:55 +12:00
|
|
|
|
|
2016-02-24 07:05:44 +13:00
|
|
|
|
TaskManager.RecentManager.MaxCount = Program.Settings.RecentTasksMaxCount;
|
2016-02-11 11:15:05 +13:00
|
|
|
|
|
2019-09-06 23:48:57 +12:00
|
|
|
|
UpdateTheme();
|
|
|
|
|
Refresh();
|
|
|
|
|
|
2019-02-11 10:47:51 +13:00
|
|
|
|
if (ShareXResources.UseWhiteIcon != Program.Settings.UseWhiteShareXIcon)
|
|
|
|
|
{
|
|
|
|
|
ShareXResources.UseWhiteIcon = Program.Settings.UseWhiteShareXIcon;
|
|
|
|
|
|
|
|
|
|
Icon = ShareXResources.Icon;
|
|
|
|
|
niTray.Icon = ShareXResources.Icon;
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-20 13:53:05 +13:00
|
|
|
|
if (HelpersOptions.DevMode)
|
|
|
|
|
{
|
|
|
|
|
niTray.Text = Program.TitleLong;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
niTray.Text = "ShareX";
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-19 11:23:08 +13:00
|
|
|
|
tsmiRestartAsAdmin.Visible = HelpersOptions.DevMode && !Helpers.IsAdministrator();
|
|
|
|
|
|
2016-09-29 13:33:12 +13:00
|
|
|
|
#if RELEASE
|
2018-10-17 23:31:39 +13:00
|
|
|
|
ConfigureAutoUpdate();
|
|
|
|
|
#else
|
|
|
|
|
if (UpdateChecker.ForceUpdate)
|
|
|
|
|
{
|
|
|
|
|
ConfigureAutoUpdate();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ConfigureAutoUpdate()
|
|
|
|
|
{
|
2016-11-24 13:18:42 +13:00
|
|
|
|
Program.UpdateManager.AutoUpdateEnabled = Program.Settings.AutoCheckUpdate && !Program.PortableApps;
|
|
|
|
|
Program.UpdateManager.CheckPreReleaseUpdates = Program.Settings.CheckPreReleaseUpdates;
|
|
|
|
|
Program.UpdateManager.ConfigureAutoUpdate();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2018-01-13 04:47:34 +13:00
|
|
|
|
private void AfterTaskSettingsJobs()
|
|
|
|
|
{
|
|
|
|
|
tsmiShowCursor.Checked = tsmiTrayShowCursor.Checked = Program.DefaultTaskSettings.CaptureSettings.ShowCursor;
|
2018-12-18 03:16:38 +13:00
|
|
|
|
SetScreenshotDelay(Program.DefaultTaskSettings.CaptureSettings.ScreenshotDelay);
|
2018-01-13 04:47:34 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-02-12 12:28:03 +13:00
|
|
|
|
public void UpdateCheckStates()
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2014-05-11 23:47:37 +12:00
|
|
|
|
SetMultiEnumChecked(Program.DefaultTaskSettings.AfterCaptureJob, tsddbAfterCaptureTasks, tsmiTrayAfterCaptureTasks);
|
|
|
|
|
SetMultiEnumChecked(Program.DefaultTaskSettings.AfterUploadJob, tsddbAfterUploadTasks, tsmiTrayAfterUploadTasks);
|
|
|
|
|
SetEnumChecked(Program.DefaultTaskSettings.ImageDestination, tsmiImageUploaders, tsmiTrayImageUploaders);
|
2016-02-12 12:28:03 +13:00
|
|
|
|
SetImageFileDestinationChecked(Program.DefaultTaskSettings.ImageDestination, Program.DefaultTaskSettings.ImageFileDestination, tsmiImageFileUploaders, tsmiTrayImageFileUploaders);
|
2014-05-11 23:47:37 +12:00
|
|
|
|
SetEnumChecked(Program.DefaultTaskSettings.TextDestination, tsmiTextUploaders, tsmiTrayTextUploaders);
|
2016-02-12 12:28:03 +13:00
|
|
|
|
SetTextFileDestinationChecked(Program.DefaultTaskSettings.TextDestination, Program.DefaultTaskSettings.TextFileDestination, tsmiTextFileUploaders, tsmiTrayTextFileUploaders);
|
2014-05-11 23:47:37 +12:00
|
|
|
|
SetEnumChecked(Program.DefaultTaskSettings.FileDestination, tsmiFileUploaders, tsmiTrayFileUploaders);
|
|
|
|
|
SetEnumChecked(Program.DefaultTaskSettings.URLShortenerDestination, tsmiURLShorteners, tsmiTrayURLShorteners);
|
2014-07-14 08:59:17 +12:00
|
|
|
|
SetEnumChecked(Program.DefaultTaskSettings.URLSharingServiceDestination, tsmiURLSharingServices, tsmiTrayURLSharingServices);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-02-12 12:28:03 +13:00
|
|
|
|
public static void SetTextFileDestinationChecked(TextDestination textDestination, FileDestination textFileDestination, params ToolStripDropDownItem[] lists)
|
2014-09-14 19:25:25 +12:00
|
|
|
|
{
|
2014-09-14 20:57:24 +12:00
|
|
|
|
if (textDestination == TextDestination.FileUploader)
|
2014-09-14 19:25:25 +12:00
|
|
|
|
{
|
2014-09-14 20:57:24 +12:00
|
|
|
|
SetEnumChecked(textFileDestination, lists);
|
2014-09-14 19:25:25 +12:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2014-09-14 20:57:24 +12:00
|
|
|
|
Uncheck(lists);
|
2014-09-14 19:25:25 +12:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-02-12 12:28:03 +13:00
|
|
|
|
public static void SetImageFileDestinationChecked(ImageDestination imageDestination, FileDestination imageFileDestination, params ToolStripDropDownItem[] lists)
|
2014-09-14 19:25:25 +12:00
|
|
|
|
{
|
2014-09-14 20:57:24 +12:00
|
|
|
|
if (imageDestination == ImageDestination.FileUploader)
|
2014-09-14 19:25:25 +12:00
|
|
|
|
{
|
2014-09-14 20:57:24 +12:00
|
|
|
|
SetEnumChecked(imageFileDestination, lists);
|
2014-09-14 19:25:25 +12:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2014-09-14 20:57:24 +12:00
|
|
|
|
Uncheck(lists);
|
2014-09-14 19:25:25 +12:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2017-01-16 05:42:31 +13:00
|
|
|
|
public void UpdateUploaderMenuNames()
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2014-05-11 23:47:37 +12:00
|
|
|
|
string imageUploader = Program.DefaultTaskSettings.ImageDestination == ImageDestination.FileUploader ?
|
2014-10-25 13:04:41 +13:00
|
|
|
|
Program.DefaultTaskSettings.ImageFileDestination.GetLocalizedDescription() : Program.DefaultTaskSettings.ImageDestination.GetLocalizedDescription();
|
2014-10-17 22:58:15 +13:00
|
|
|
|
tsmiImageUploaders.Text = tsmiTrayImageUploaders.Text = string.Format(Resources.TaskSettingsForm_UpdateUploaderMenuNames_Image_uploader___0_, imageUploader);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-05-11 23:47:37 +12:00
|
|
|
|
string textUploader = Program.DefaultTaskSettings.TextDestination == TextDestination.FileUploader ?
|
2014-10-25 13:04:41 +13:00
|
|
|
|
Program.DefaultTaskSettings.TextFileDestination.GetLocalizedDescription() : Program.DefaultTaskSettings.TextDestination.GetLocalizedDescription();
|
2014-10-17 22:58:15 +13:00
|
|
|
|
tsmiTextUploaders.Text = tsmiTrayTextUploaders.Text = string.Format(Resources.TaskSettingsForm_UpdateUploaderMenuNames_Text_uploader___0_, textUploader);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-10-17 22:58:15 +13:00
|
|
|
|
tsmiFileUploaders.Text = tsmiTrayFileUploaders.Text = string.Format(Resources.TaskSettingsForm_UpdateUploaderMenuNames_File_uploader___0_,
|
2014-10-25 13:04:41 +13:00
|
|
|
|
Program.DefaultTaskSettings.FileDestination.GetLocalizedDescription());
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-10-17 22:58:15 +13:00
|
|
|
|
tsmiURLShorteners.Text = tsmiTrayURLShorteners.Text = string.Format(Resources.TaskSettingsForm_UpdateUploaderMenuNames_URL_shortener___0_,
|
2014-10-25 13:04:41 +13:00
|
|
|
|
Program.DefaultTaskSettings.URLShortenerDestination.GetLocalizedDescription());
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2014-10-17 22:58:15 +13:00
|
|
|
|
tsmiURLSharingServices.Text = tsmiTrayURLSharingServices.Text = string.Format(Resources.TaskSettingsForm_UpdateUploaderMenuNames_URL_sharing_service___0_,
|
2014-10-25 13:04:41 +13:00
|
|
|
|
Program.DefaultTaskSettings.URLSharingServiceDestination.GetLocalizedDescription());
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2019-05-14 12:56:01 +12:00
|
|
|
|
private WorkerTask[] GetSelectedTasks()
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
|
|
|
|
if (lvUploads.SelectedItems.Count > 0)
|
|
|
|
|
{
|
2015-08-31 18:03:03 +12:00
|
|
|
|
return lvUploads.SelectedItems.Cast<ListViewItem>().Select(x => x.Tag as WorkerTask).Where(x => x != null).ToArray();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2019-10-03 22:46:39 +13:00
|
|
|
|
private void RemoveTasks(WorkerTask[] tasks)
|
2019-05-13 11:38:01 +12:00
|
|
|
|
{
|
2019-10-02 18:53:56 +13:00
|
|
|
|
if (tasks != null)
|
|
|
|
|
{
|
2019-10-03 22:46:39 +13:00
|
|
|
|
foreach (WorkerTask task in tasks.Where(x => x != null && !x.IsWorking))
|
|
|
|
|
{
|
|
|
|
|
TaskManager.Remove(task);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UpdateInfoManager();
|
2019-10-02 18:53:56 +13:00
|
|
|
|
}
|
2019-05-13 11:38:01 +12:00
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void RemoveSelectedItems()
|
|
|
|
|
{
|
2019-10-02 18:53:56 +13:00
|
|
|
|
IEnumerable<WorkerTask> tasks = null;
|
|
|
|
|
|
2019-05-13 11:38:01 +12:00
|
|
|
|
if (Program.Settings.TaskViewMode == TaskViewMode.ListView)
|
|
|
|
|
{
|
2019-10-02 18:53:56 +13:00
|
|
|
|
tasks = lvUploads.SelectedItems.Cast<ListViewItem>().Select(x => x.Tag as WorkerTask);
|
2019-05-13 11:38:01 +12:00
|
|
|
|
}
|
2019-10-02 18:53:56 +13:00
|
|
|
|
else if (Program.Settings.TaskViewMode == TaskViewMode.ThumbnailView)
|
2019-05-13 11:38:01 +12:00
|
|
|
|
{
|
2019-10-02 18:53:56 +13:00
|
|
|
|
tasks = ucTaskThumbnailView.SelectedPanels.Select(x => x.Task);
|
2019-05-13 11:38:01 +12:00
|
|
|
|
}
|
2019-10-02 18:53:56 +13:00
|
|
|
|
|
2019-10-03 22:46:39 +13:00
|
|
|
|
RemoveTasks(tasks.ToArray());
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void RemoveAllItems()
|
|
|
|
|
{
|
2019-10-03 22:46:39 +13:00
|
|
|
|
RemoveTasks(lvUploads.Items.Cast<ListViewItem>().Select(x => x.Tag as WorkerTask).ToArray());
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-02-12 12:28:03 +13:00
|
|
|
|
private void UpdateMainWindowLayout()
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
|
|
|
|
if (Program.Settings.ShowMenu)
|
|
|
|
|
{
|
2014-10-17 22:58:15 +13:00
|
|
|
|
tsmiHideMenu.Text = Resources.MainForm_UpdateMenu_Hide_menu;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2014-10-17 22:58:15 +13:00
|
|
|
|
tsmiHideMenu.Text = Resources.MainForm_UpdateMenu_Show_menu;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2017-06-04 02:02:36 +12:00
|
|
|
|
tsMain.Visible = Program.Settings.ShowMenu;
|
2016-01-30 00:54:35 +13:00
|
|
|
|
|
2019-06-11 07:11:23 +12:00
|
|
|
|
tsmiHideColumns.Visible = tsmiImagePreview.Visible = Program.Settings.TaskViewMode == TaskViewMode.ListView;
|
|
|
|
|
|
2016-01-30 00:54:35 +13:00
|
|
|
|
if (Program.Settings.ShowColumns)
|
|
|
|
|
{
|
2016-03-24 10:51:38 +13:00
|
|
|
|
tsmiHideColumns.Text = Resources.MainForm_UpdateMainWindowLayout_Hide_columns;
|
2016-01-30 00:54:35 +13:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2016-03-24 10:51:38 +13:00
|
|
|
|
tsmiHideColumns.Text = Resources.MainForm_UpdateMainWindowLayout_Show_columns;
|
2016-01-30 00:54:35 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lvUploads.HeaderStyle = Program.Settings.ShowColumns ? ColumnHeaderStyle.Nonclickable : ColumnHeaderStyle.None;
|
|
|
|
|
|
2019-06-11 07:11:23 +12:00
|
|
|
|
ucTaskThumbnailView.TitleVisible = Program.Settings.ShowThumbnailTitle;
|
2019-09-03 19:54:29 +12:00
|
|
|
|
ucTaskThumbnailView.TitleLocation = Program.Settings.ThumbnailTitleLocation;
|
2020-11-14 06:11:23 +13:00
|
|
|
|
ucTaskThumbnailView.ThumbnailSize = Program.Settings.ThumbnailSize;
|
2019-06-11 07:11:23 +12:00
|
|
|
|
|
2020-11-14 06:11:23 +13:00
|
|
|
|
tsmiThumbnailTitle.Visible = tsmiThumbnailSize.Visible = Program.Settings.TaskViewMode == TaskViewMode.ThumbnailView;
|
2019-06-11 07:11:23 +12:00
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
Refresh();
|
|
|
|
|
}
|
|
|
|
|
|
2015-07-19 06:49:34 +12:00
|
|
|
|
public void UpdateToggleHotkeyButton()
|
|
|
|
|
{
|
|
|
|
|
if (Program.Settings.DisableHotkeys)
|
|
|
|
|
{
|
2015-08-12 05:33:30 +12:00
|
|
|
|
tsmiTrayToggleHotkeys.Text = Resources.MainForm_UpdateToggleHotkeyButton_Enable_hotkeys;
|
2015-07-19 06:49:34 +12:00
|
|
|
|
tsmiTrayToggleHotkeys.Image = Resources.keyboard__plus;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2015-08-12 05:33:30 +12:00
|
|
|
|
tsmiTrayToggleHotkeys.Text = Resources.MainForm_UpdateToggleHotkeyButton_Disable_hotkeys;
|
2015-07-19 06:49:34 +12:00
|
|
|
|
tsmiTrayToggleHotkeys.Image = Resources.keyboard__minus;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-06-20 18:44:21 +12:00
|
|
|
|
private void RunPuushTasks()
|
|
|
|
|
{
|
2016-06-25 04:49:06 +12:00
|
|
|
|
if (Program.PuushMode && Program.Settings.IsFirstTimeRun)
|
2016-06-20 18:44:21 +12:00
|
|
|
|
{
|
|
|
|
|
using (PuushLoginForm puushLoginForm = new PuushLoginForm())
|
|
|
|
|
{
|
|
|
|
|
if (puushLoginForm.ShowDialog() == DialogResult.OK)
|
|
|
|
|
{
|
|
|
|
|
Program.DefaultTaskSettings.ImageDestination = ImageDestination.FileUploader;
|
|
|
|
|
Program.DefaultTaskSettings.ImageFileDestination = FileDestination.Puush;
|
|
|
|
|
Program.DefaultTaskSettings.TextDestination = TextDestination.FileUploader;
|
|
|
|
|
Program.DefaultTaskSettings.TextFileDestination = FileDestination.Puush;
|
|
|
|
|
Program.DefaultTaskSettings.FileDestination = FileDestination.Puush;
|
|
|
|
|
|
2017-03-27 04:19:52 +13:00
|
|
|
|
SettingManager.WaitUploadersConfig();
|
2016-06-20 18:44:21 +12:00
|
|
|
|
|
|
|
|
|
if (Program.UploadersConfig != null)
|
|
|
|
|
{
|
|
|
|
|
Program.UploadersConfig.PuushAPIKey = puushLoginForm.APIKey;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2017-06-12 11:49:17 +12:00
|
|
|
|
private void HideNews()
|
|
|
|
|
{
|
|
|
|
|
pNews.Visible = false;
|
|
|
|
|
ucNews.MarkRead();
|
|
|
|
|
}
|
|
|
|
|
|
2018-12-18 02:39:55 +13:00
|
|
|
|
private void SetScreenshotDelay(decimal delay)
|
|
|
|
|
{
|
2018-12-18 03:16:38 +13:00
|
|
|
|
Program.DefaultTaskSettings.CaptureSettings.ScreenshotDelay = delay;
|
2018-12-18 02:39:55 +13:00
|
|
|
|
|
|
|
|
|
switch (delay)
|
|
|
|
|
{
|
|
|
|
|
default:
|
|
|
|
|
tsmiScreenshotDelay.UpdateCheckedAll(false);
|
2018-12-18 02:52:59 +13:00
|
|
|
|
tsmiTrayScreenshotDelay.UpdateCheckedAll(false);
|
2018-12-18 02:39:55 +13:00
|
|
|
|
break;
|
|
|
|
|
case 0:
|
|
|
|
|
tsmiScreenshotDelay0.RadioCheck();
|
2018-12-18 02:52:59 +13:00
|
|
|
|
tsmiTrayScreenshotDelay0.RadioCheck();
|
2018-12-18 02:39:55 +13:00
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
tsmiScreenshotDelay1.RadioCheck();
|
2018-12-18 02:52:59 +13:00
|
|
|
|
tsmiTrayScreenshotDelay1.RadioCheck();
|
2018-12-18 02:39:55 +13:00
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
tsmiScreenshotDelay2.RadioCheck();
|
2018-12-18 02:52:59 +13:00
|
|
|
|
tsmiTrayScreenshotDelay2.RadioCheck();
|
2018-12-18 02:39:55 +13:00
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
tsmiScreenshotDelay3.RadioCheck();
|
2018-12-18 02:52:59 +13:00
|
|
|
|
tsmiTrayScreenshotDelay3.RadioCheck();
|
2018-12-18 02:39:55 +13:00
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
tsmiScreenshotDelay4.RadioCheck();
|
2018-12-18 02:52:59 +13:00
|
|
|
|
tsmiTrayScreenshotDelay4.RadioCheck();
|
2018-12-18 02:39:55 +13:00
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
tsmiScreenshotDelay5.RadioCheck();
|
2018-12-18 02:52:59 +13:00
|
|
|
|
tsmiTrayScreenshotDelay5.RadioCheck();
|
2018-12-18 02:39:55 +13:00
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
2019-04-05 08:22:16 +13:00
|
|
|
|
tsmiScreenshotDelay.Text = tsmiTrayScreenshotDelay.Text = string.Format(Resources.ScreenshotDelay0S, delay.ToString("0.#"));
|
2018-12-18 02:52:59 +13:00
|
|
|
|
tsmiScreenshotDelay.Checked = tsmiTrayScreenshotDelay.Checked = delay > 0;
|
2018-12-18 02:39:55 +13:00
|
|
|
|
}
|
|
|
|
|
|
2018-08-04 01:38:18 +12:00
|
|
|
|
private async Task PrepareCaptureMenuAsync(ToolStripMenuItem tsmiWindow, EventHandler handlerWindow, ToolStripMenuItem tsmiMonitor, EventHandler handlerMonitor)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
|
|
|
|
tsmiWindow.DropDownItems.Clear();
|
|
|
|
|
|
|
|
|
|
WindowsList windowsList = new WindowsList();
|
|
|
|
|
List<WindowInfo> windows = null;
|
|
|
|
|
|
2018-08-04 01:38:18 +12:00
|
|
|
|
await Task.Run(() =>
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
|
|
|
|
windows = windowsList.GetVisibleWindowsList();
|
2018-08-04 01:38:18 +12:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (windows != null)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2018-08-04 01:38:18 +12:00
|
|
|
|
foreach (WindowInfo window in windows)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2018-08-04 01:38:18 +12:00
|
|
|
|
try
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2018-08-04 01:38:18 +12:00
|
|
|
|
string title = window.Text.Truncate(50, "...");
|
2019-09-20 22:58:47 +12:00
|
|
|
|
ToolStripMenuItem tsmi = new ToolStripMenuItem(title);
|
|
|
|
|
tsmi.Tag = window;
|
|
|
|
|
tsmi.Click += handlerWindow;
|
2016-11-02 02:16:44 +13:00
|
|
|
|
|
2018-08-04 01:38:18 +12:00
|
|
|
|
using (Icon icon = window.Icon)
|
|
|
|
|
{
|
|
|
|
|
if (icon != null && icon.Width > 0 && icon.Height > 0)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2019-09-20 22:58:47 +12:00
|
|
|
|
tsmi.Image = icon.ToBitmap();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
2019-09-20 22:58:47 +12:00
|
|
|
|
|
|
|
|
|
tsmiWindow.DropDownItems.Add(tsmi);
|
2018-08-04 01:38:18 +12:00
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
DebugHelper.WriteException(e);
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
2018-08-04 01:38:18 +12:00
|
|
|
|
}
|
2016-11-02 02:16:44 +13:00
|
|
|
|
|
2018-08-04 01:38:18 +12:00
|
|
|
|
tsmiMonitor.DropDownItems.Clear();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
|
2018-08-04 01:38:18 +12:00
|
|
|
|
Screen[] screens = Screen.AllScreens;
|
2016-11-02 02:16:44 +13:00
|
|
|
|
|
2018-08-04 01:38:18 +12:00
|
|
|
|
for (int i = 0; i < screens.Length; i++)
|
|
|
|
|
{
|
|
|
|
|
Screen screen = screens[i];
|
|
|
|
|
string text = string.Format("{0}. {1}x{2}", i + 1, screen.Bounds.Width, screen.Bounds.Height);
|
|
|
|
|
ToolStripItem tsi = tsmiMonitor.DropDownItems.Add(text);
|
|
|
|
|
tsi.Tag = screen.Bounds;
|
|
|
|
|
tsi.Click += handlerMonitor;
|
|
|
|
|
}
|
2016-11-02 02:16:44 +13:00
|
|
|
|
|
2018-08-04 01:38:18 +12:00
|
|
|
|
tsmiWindow.Invalidate();
|
|
|
|
|
tsmiMonitor.Invalidate();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
|
2017-01-23 01:41:20 +13:00
|
|
|
|
public void ForceClose()
|
|
|
|
|
{
|
|
|
|
|
forceClose = true;
|
|
|
|
|
Close();
|
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
#region Form events
|
|
|
|
|
|
|
|
|
|
protected override void SetVisibleCore(bool value)
|
|
|
|
|
{
|
2016-06-25 04:49:06 +12:00
|
|
|
|
if (value && !IsHandleCreated && (Program.SilentRun || Program.Settings.SilentRun) && Program.Settings.ShowTray)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
|
|
|
|
CreateHandle();
|
|
|
|
|
value = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
base.SetVisibleCore(value);
|
|
|
|
|
}
|
|
|
|
|
|
2015-12-06 12:56:01 +13:00
|
|
|
|
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
|
|
|
|
{
|
|
|
|
|
if (keyData == Keys.Escape)
|
|
|
|
|
{
|
|
|
|
|
Close();
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return base.ProcessCmdKey(ref msg, keyData);
|
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void MainForm_Shown(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
AfterShownJobs();
|
|
|
|
|
}
|
|
|
|
|
|
2015-02-18 21:20:52 +13:00
|
|
|
|
private void MainForm_VisibleChanged(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-06-17 17:41:52 +12:00
|
|
|
|
#if !DEBUG
|
2015-02-18 21:20:52 +13:00
|
|
|
|
if (Visible)
|
|
|
|
|
{
|
2017-06-07 02:05:15 +12:00
|
|
|
|
tsbDonate.StartAnimation();
|
2015-02-18 21:20:52 +13:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2017-06-07 02:05:15 +12:00
|
|
|
|
tsbDonate.StopAnimation();
|
2015-02-18 21:20:52 +13:00
|
|
|
|
}
|
2017-03-06 20:49:55 +13:00
|
|
|
|
#endif
|
2015-02-18 21:20:52 +13:00
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void MainForm_Resize(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Refresh();
|
2014-07-28 11:57:28 +12:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void MainForm_LocationChanged(object sender, EventArgs e)
|
|
|
|
|
{
|
2014-09-13 23:52:12 +12:00
|
|
|
|
if (IsReady && WindowState == FormWindowState.Normal)
|
2014-07-28 11:57:28 +12:00
|
|
|
|
{
|
|
|
|
|
Program.Settings.MainFormPosition = Location;
|
|
|
|
|
}
|
|
|
|
|
}
|
2014-06-15 11:38:38 +12:00
|
|
|
|
|
2014-07-28 11:57:28 +12:00
|
|
|
|
private void MainForm_SizeChanged(object sender, EventArgs e)
|
|
|
|
|
{
|
2014-09-13 23:52:12 +12:00
|
|
|
|
if (IsReady && WindowState == FormWindowState.Normal)
|
2014-06-15 11:38:38 +12:00
|
|
|
|
{
|
|
|
|
|
Program.Settings.MainFormSize = Size;
|
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (e.CloseReason == CloseReason.UserClosing && Program.Settings.ShowTray && !forceClose)
|
|
|
|
|
{
|
|
|
|
|
e.Cancel = true;
|
|
|
|
|
Hide();
|
2017-03-27 04:19:52 +13:00
|
|
|
|
SettingManager.SaveAllSettingsAsync();
|
2020-10-09 22:04:15 +13:00
|
|
|
|
|
|
|
|
|
if (Program.Settings.FirstTimeMinimizeToTray)
|
|
|
|
|
{
|
2020-10-22 18:04:05 +13:00
|
|
|
|
TaskHelpers.ShowNotificationTip(Resources.ShareXIsMinimizedToTheSystemTray, "ShareX", 8000);
|
2020-10-09 22:04:15 +13:00
|
|
|
|
Program.Settings.FirstTimeMinimizeToTray = false;
|
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskManager.StopAllTasks();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void MainForm_DragEnter(object sender, DragEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (e.Data.GetDataPresent(DataFormats.FileDrop, false) ||
|
|
|
|
|
e.Data.GetDataPresent(DataFormats.Bitmap, false) ||
|
|
|
|
|
e.Data.GetDataPresent(DataFormats.Text, false))
|
|
|
|
|
{
|
|
|
|
|
e.Effect = DragDropEffects.Copy;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
e.Effect = DragDropEffects.None;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void MainForm_DragDrop(object sender, DragEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UploadManager.DragDropUpload(e.Data);
|
|
|
|
|
}
|
|
|
|
|
|
2019-08-16 22:07:25 +12:00
|
|
|
|
private void TtMain_Draw(object sender, DrawToolTipEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
e.DrawBackground();
|
|
|
|
|
e.DrawBorder();
|
|
|
|
|
e.DrawText();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void lblListViewTip_MouseUp(object sender, MouseEventArgs e)
|
2014-07-05 02:23:53 +12:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
|
{
|
|
|
|
|
lvUploads.Focus();
|
|
|
|
|
}
|
|
|
|
|
else if (e.Button == MouseButtons.Right)
|
|
|
|
|
{
|
2019-10-03 22:46:39 +13:00
|
|
|
|
UpdateInfoManager();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
cmsTaskInfo.Show((Control)sender, e.X + 1, e.Y + 1);
|
|
|
|
|
}
|
2014-07-05 02:23:53 +12:00
|
|
|
|
}
|
|
|
|
|
|
2018-08-21 01:27:00 +12:00
|
|
|
|
private async void lvUploads_SelectedIndexChanged(object sender, EventArgs e)
|
2014-08-14 00:33:14 +12:00
|
|
|
|
{
|
2018-08-21 01:27:00 +12:00
|
|
|
|
lvUploads.SelectedIndexChanged -= lvUploads_SelectedIndexChanged;
|
|
|
|
|
await Task.Delay(1);
|
|
|
|
|
lvUploads.SelectedIndexChanged += lvUploads_SelectedIndexChanged;
|
2019-10-03 22:46:39 +13:00
|
|
|
|
UpdateInfoManager();
|
2014-08-14 00:33:14 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void lvUploads_MouseUp(object sender, MouseEventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
if (e.Button == MouseButtons.Right)
|
|
|
|
|
{
|
2019-10-03 22:46:39 +13:00
|
|
|
|
UpdateInfoManager();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
cmsTaskInfo.Show(lvUploads, e.X + 1, e.Y + 1);
|
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void lvUploads_MouseDoubleClick(object sender, MouseEventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
|
{
|
|
|
|
|
uim.TryOpen();
|
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void scMain_SplitterMoved(object sender, SplitterEventArgs e)
|
2014-04-06 14:10:34 +12:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
Program.Settings.PreviewSplitterDistance = scMain.SplitterDistance;
|
2014-04-06 14:10:34 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void lvUploads_KeyDown(object sender, KeyEventArgs e)
|
2014-07-20 08:08:45 +12:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
switch (e.KeyData)
|
|
|
|
|
{
|
|
|
|
|
default:
|
|
|
|
|
return;
|
|
|
|
|
case Keys.Enter:
|
|
|
|
|
uim.TryOpen();
|
|
|
|
|
break;
|
|
|
|
|
case Keys.Control | Keys.Enter:
|
|
|
|
|
uim.OpenFile();
|
|
|
|
|
break;
|
2017-02-13 13:31:53 +13:00
|
|
|
|
case Keys.Shift | Keys.Enter:
|
|
|
|
|
uim.OpenFolder();
|
|
|
|
|
break;
|
2016-11-02 02:16:44 +13:00
|
|
|
|
case Keys.Control | Keys.C:
|
|
|
|
|
uim.TryCopy();
|
|
|
|
|
break;
|
|
|
|
|
case Keys.Shift | Keys.C:
|
|
|
|
|
uim.CopyFile();
|
|
|
|
|
break;
|
2017-02-13 13:31:53 +13:00
|
|
|
|
case Keys.Alt | Keys.C:
|
|
|
|
|
uim.CopyImage();
|
|
|
|
|
break;
|
2016-11-02 02:16:44 +13:00
|
|
|
|
case Keys.Control | Keys.Shift | Keys.C:
|
|
|
|
|
uim.CopyFilePath();
|
|
|
|
|
break;
|
|
|
|
|
case Keys.Control | Keys.X:
|
|
|
|
|
uim.TryCopy();
|
|
|
|
|
RemoveSelectedItems();
|
|
|
|
|
break;
|
|
|
|
|
case Keys.Control | Keys.V:
|
|
|
|
|
UploadManager.ClipboardUploadMainWindow();
|
|
|
|
|
break;
|
2017-02-13 13:31:53 +13:00
|
|
|
|
case Keys.Control | Keys.U:
|
|
|
|
|
uim.Upload();
|
|
|
|
|
break;
|
|
|
|
|
case Keys.Control | Keys.D:
|
|
|
|
|
uim.Download();
|
|
|
|
|
break;
|
|
|
|
|
case Keys.Control | Keys.E:
|
|
|
|
|
uim.EditImage();
|
|
|
|
|
break;
|
2016-11-02 02:16:44 +13:00
|
|
|
|
case Keys.Delete:
|
|
|
|
|
RemoveSelectedItems();
|
|
|
|
|
break;
|
|
|
|
|
case Keys.Shift | Keys.Delete:
|
|
|
|
|
uim.DeleteFiles();
|
|
|
|
|
RemoveSelectedItems();
|
|
|
|
|
break;
|
|
|
|
|
case Keys.Apps:
|
|
|
|
|
if (lvUploads.SelectedItems.Count > 0)
|
|
|
|
|
{
|
2019-10-03 22:46:39 +13:00
|
|
|
|
UpdateInfoManager();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
Rectangle rect = lvUploads.GetItemRect(lvUploads.SelectedIndex);
|
|
|
|
|
cmsTaskInfo.Show(lvUploads, new Point(rect.X, rect.Bottom));
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
e.Handled = e.SuppressKeyPress = true;
|
2014-07-20 08:08:45 +12:00
|
|
|
|
}
|
|
|
|
|
|
2019-10-03 22:46:39 +13:00
|
|
|
|
private void ucTaskThumbnailView_SelectedPanelChanged(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UpdateInfoManager();
|
|
|
|
|
}
|
|
|
|
|
|
2019-10-02 18:53:56 +13:00
|
|
|
|
private void UcTaskView_ContextMenuRequested(object sender, MouseEventArgs e)
|
2019-05-12 08:36:00 +12:00
|
|
|
|
{
|
|
|
|
|
cmsTaskInfo.Show(sender as Control, e.X + 1, e.Y + 1);
|
|
|
|
|
}
|
|
|
|
|
|
2019-05-14 12:02:24 +12:00
|
|
|
|
private void LblThumbnailViewTip_MouseUp(object sender, MouseEventArgs e)
|
|
|
|
|
{
|
2019-05-14 12:20:47 +12:00
|
|
|
|
if (e.Button == MouseButtons.Right)
|
|
|
|
|
{
|
2019-10-02 18:53:56 +13:00
|
|
|
|
UcTaskView_ContextMenuRequested(lblThumbnailViewTip, e);
|
2019-05-14 12:20:47 +12:00
|
|
|
|
}
|
2019-05-14 12:02:24 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void cmsTaskInfo_Closing(object sender, ToolStripDropDownClosingEventArgs e)
|
2015-01-25 19:51:24 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
if (e.CloseReason == ToolStripDropDownCloseReason.Keyboard)
|
|
|
|
|
{
|
|
|
|
|
e.Cancel = !(NativeMethods.GetKeyState((int)Keys.Apps) < 0 || NativeMethods.GetKeyState((int)Keys.F10) < 0 || NativeMethods.GetKeyState((int)Keys.Escape) < 0);
|
|
|
|
|
}
|
2014-07-20 08:08:45 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void cmsTaskInfo_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
2014-07-20 08:08:45 +12:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
if (e.KeyData == Keys.Apps)
|
|
|
|
|
{
|
|
|
|
|
cmsTaskInfo.Close();
|
|
|
|
|
}
|
2015-08-25 04:38:35 +12:00
|
|
|
|
}
|
|
|
|
|
|
2018-10-17 09:23:16 +13:00
|
|
|
|
private void lvUploads_ColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e)
|
|
|
|
|
{
|
2018-10-17 09:56:25 +13:00
|
|
|
|
if (IsReady)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.TaskListViewColumnWidths = new List<int>();
|
|
|
|
|
|
2018-11-04 00:02:34 +13:00
|
|
|
|
for (int i = 0; i < lvUploads.Columns.Count; i++)
|
2018-10-17 09:56:25 +13:00
|
|
|
|
{
|
|
|
|
|
Program.Settings.TaskListViewColumnWidths.Add(lvUploads.Columns[i].Width);
|
|
|
|
|
}
|
|
|
|
|
}
|
2018-10-17 09:23:16 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void lvUploads_ItemDrag(object sender, ItemDragEventArgs e)
|
2015-08-25 04:38:35 +12:00
|
|
|
|
{
|
2019-05-14 12:56:01 +12:00
|
|
|
|
TaskInfo[] taskInfos = GetSelectedTasks().Select(x => x.Info).Where(x => x != null).ToArray();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
|
|
|
|
|
if (taskInfos.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
IDataObject dataObject = null;
|
|
|
|
|
|
|
|
|
|
if (ModifierKeys.HasFlag(Keys.Control))
|
|
|
|
|
{
|
|
|
|
|
string[] urls = taskInfos.Select(x => x.ToString()).Where(x => !string.IsNullOrEmpty(x)).ToArray();
|
|
|
|
|
|
|
|
|
|
if (urls.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
dataObject = new DataObject(DataFormats.Text, string.Join(Environment.NewLine, urls));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
string[] files = taskInfos.Select(x => x.FilePath).Where(x => !string.IsNullOrEmpty(x) && File.Exists(x)).ToArray();
|
|
|
|
|
|
|
|
|
|
if (files.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
dataObject = new DataObject(DataFormats.FileDrop, files);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (dataObject != null)
|
|
|
|
|
{
|
|
|
|
|
AllowDrop = false;
|
2017-06-28 18:05:53 +12:00
|
|
|
|
lvUploads.DoDragDrop(dataObject, DragDropEffects.Copy | DragDropEffects.Move);
|
2019-05-21 00:58:40 +12:00
|
|
|
|
AllowDrop = true;
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
2014-07-20 08:08:45 +12:00
|
|
|
|
}
|
|
|
|
|
|
2017-06-10 10:38:13 +12:00
|
|
|
|
private void btnCloseNews_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-06-12 11:49:17 +12:00
|
|
|
|
HideNews();
|
2017-06-10 10:38:13 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
#region Menu events
|
2014-07-20 08:08:45 +12:00
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiFullscreen_Click(object sender, EventArgs e)
|
2014-07-20 08:08:45 +12:00
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureFullscreen().Capture(true);
|
2014-07-20 08:08:45 +12:00
|
|
|
|
}
|
|
|
|
|
|
2018-08-04 01:38:18 +12:00
|
|
|
|
private async void tsddbCapture_DropDownOpening(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2018-08-04 01:38:18 +12:00
|
|
|
|
await PrepareCaptureMenuAsync(tsmiWindow, tsmiWindowItems_Click, tsmiMonitor, tsmiMonitorItems_Click);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiWindowItems_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
ToolStripItem tsi = (ToolStripItem)sender;
|
2021-06-10 10:14:01 +12:00
|
|
|
|
if (tsi.Tag is WindowInfo wi)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureWindow(wi.Handle).Capture(true);
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiMonitorItems_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
ToolStripItem tsi = (ToolStripItem)sender;
|
2017-02-27 10:49:35 +13:00
|
|
|
|
Rectangle rect = (Rectangle)tsi.Tag;
|
|
|
|
|
if (!rect.IsEmpty)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureMonitor(rect).Capture(true);
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiRectangle_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureRegion().Capture(true);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiRectangleLight_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureRegion(RegionCaptureType.Light).Capture(true);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiRectangleTransparent_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureRegion(RegionCaptureType.Transparent).Capture(true);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiLastRegion_Click(object sender, EventArgs e)
|
2014-07-20 08:08:45 +12:00
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureLastRegion().Capture(true);
|
2014-07-20 08:08:45 +12:00
|
|
|
|
}
|
|
|
|
|
|
2014-08-08 14:10:49 +12:00
|
|
|
|
private void tsmiScreenRecordingFFmpeg_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2015-06-22 18:56:18 +12:00
|
|
|
|
TaskHelpers.StartScreenRecording(ScreenRecordOutput.FFmpeg, ScreenRecordStartMethod.Region);
|
2014-08-08 14:10:49 +12:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiScreenRecordingGIF_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2015-06-22 18:56:18 +12:00
|
|
|
|
TaskHelpers.StartScreenRecording(ScreenRecordOutput.GIF, ScreenRecordStartMethod.Region);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2015-09-25 20:12:03 +12:00
|
|
|
|
private void tsmiScrollingCapture_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenScrollingCapture();
|
|
|
|
|
}
|
|
|
|
|
|
2016-05-13 17:56:33 +12:00
|
|
|
|
private void tsmiTextCapture_Click(object sender, EventArgs e)
|
2015-06-26 20:10:27 +12:00
|
|
|
|
{
|
2016-05-13 17:56:33 +12:00
|
|
|
|
Hide();
|
|
|
|
|
Thread.Sleep(250);
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
2018-11-30 20:43:56 +13:00
|
|
|
|
_ = TaskHelpers.OCRImage();
|
2016-05-13 17:56:33 +12:00
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
DebugHelper.WriteException(ex);
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
this.ForceActivate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiAutoCapture_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenAutoCapture();
|
2015-06-26 20:10:27 +12:00
|
|
|
|
}
|
|
|
|
|
|
2018-01-13 04:47:34 +13:00
|
|
|
|
private void tsmiShowCursor_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Program.DefaultTaskSettings.CaptureSettings.ShowCursor = ((ToolStripMenuItem)sender).Checked;
|
2018-12-19 22:30:15 +13:00
|
|
|
|
tsmiShowCursor.Checked = tsmiTrayShowCursor.Checked = Program.DefaultTaskSettings.CaptureSettings.ShowCursor;
|
2018-01-13 04:47:34 +13:00
|
|
|
|
}
|
|
|
|
|
|
2018-12-18 02:39:55 +13:00
|
|
|
|
private void tsmiScreenshotDelay0_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
SetScreenshotDelay(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiScreenshotDelay1_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
SetScreenshotDelay(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiScreenshotDelay2_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
SetScreenshotDelay(2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiScreenshotDelay3_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
SetScreenshotDelay(3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiScreenshotDelay4_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
SetScreenshotDelay(4);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiScreenshotDelay5_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
SetScreenshotDelay(5);
|
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsbFileUpload_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
UploadManager.UploadFile();
|
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiUploadFolder_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UploadManager.UploadFolder();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsbClipboardUpload_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
UploadManager.ClipboardUploadMainWindow();
|
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2017-08-27 20:24:46 +12:00
|
|
|
|
private void tsmiUploadText_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-08-27 20:42:21 +12:00
|
|
|
|
UploadManager.ShowTextUploadDialog();
|
2017-08-27 20:24:46 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiUploadURL_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UploadManager.UploadURL();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsbDragDropUpload_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
TaskHelpers.OpenDropWindow();
|
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
|
2017-08-27 20:24:46 +12:00
|
|
|
|
private void tsmiShortenURL_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-08-27 20:42:21 +12:00
|
|
|
|
UploadManager.ShowShortenURLDialog();
|
2017-08-27 20:24:46 +12:00
|
|
|
|
}
|
|
|
|
|
|
2021-06-08 08:12:59 +12:00
|
|
|
|
private void tsmiTweetMessage_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.TweetMessage();
|
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiColorPicker_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2018-04-19 04:29:02 +12:00
|
|
|
|
TaskHelpers.ShowScreenColorPickerDialog();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiScreenColorPicker_Click(object sender, EventArgs e)
|
2015-07-19 06:49:34 +12:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
TaskHelpers.OpenScreenColorPicker();
|
2015-07-19 06:49:34 +12:00
|
|
|
|
}
|
|
|
|
|
|
2021-06-08 08:12:59 +12:00
|
|
|
|
private void tsmiRuler_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenRuler();
|
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiImageEditor_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2017-12-27 00:46:29 +13:00
|
|
|
|
TaskHelpers.OpenImageEditor();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
2014-06-17 22:30:49 +12:00
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiImageEffects_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
TaskHelpers.OpenImageEffects();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiImageCombiner_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
TaskHelpers.OpenImageCombiner();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2019-09-29 04:55:26 +13:00
|
|
|
|
private void TsmiImageSplitter_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenImageSplitter();
|
|
|
|
|
}
|
|
|
|
|
|
2017-07-10 11:04:19 +12:00
|
|
|
|
private void tsmiImageThumbnailer_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenImageThumbnailer();
|
|
|
|
|
}
|
|
|
|
|
|
2019-11-17 08:34:32 +13:00
|
|
|
|
private void tsmiVideoConverter_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenVideoConverter();
|
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiVideoThumbnailer_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
TaskHelpers.OpenVideoThumbnailer();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2021-06-08 08:12:59 +12:00
|
|
|
|
private void tsmiQRCode_Click(object sender, EventArgs e)
|
2021-01-14 08:16:43 +13:00
|
|
|
|
{
|
2021-06-08 08:12:59 +12:00
|
|
|
|
TaskHelpers.OpenQRCode();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiHashCheck_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenHashCheck();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiIndexFolder_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenDirectoryIndexer();
|
2021-01-14 08:16:43 +13:00
|
|
|
|
}
|
|
|
|
|
|
2020-09-14 06:00:49 +12:00
|
|
|
|
private void tsmiClipboardViewer_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenClipboardViewer();
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-08 08:12:59 +12:00
|
|
|
|
private void tsmiInspectWindow_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2021-06-08 08:12:59 +12:00
|
|
|
|
TaskHelpers.OpenInspectWindow();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiMonitorTest_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenMonitorTest();
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-08 08:12:59 +12:00
|
|
|
|
private void tsmiDNSChanger_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenDNSChanger();
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-17 08:47:04 +12:00
|
|
|
|
private void TsddbAfterCaptureTasks_DropDownOpening(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UpdateImageEffectsMenu(tsddbAfterCaptureTasks);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void TsmiTrayAfterCaptureTasks_DropDownOpening(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UpdateImageEffectsMenu(tsmiTrayAfterCaptureTasks);
|
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsddbDestinations_DropDownOpened(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UpdateDestinationStates();
|
|
|
|
|
}
|
|
|
|
|
|
2019-01-23 23:13:48 +13:00
|
|
|
|
private void tsmiDestinationSettings_Click(object sender, EventArgs e)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenUploadersConfigWindow();
|
|
|
|
|
}
|
|
|
|
|
|
2019-01-23 23:13:48 +13:00
|
|
|
|
private void tsmiCustomUploaderSettings_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenCustomUploaderSettingsWindow();
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-08 08:29:31 +12:00
|
|
|
|
private void tsbApplicationSettings_Click(object sender, EventArgs e)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2021-06-08 08:29:31 +12:00
|
|
|
|
using (ApplicationSettingsForm settingsForm = new ApplicationSettingsForm())
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2021-06-08 08:29:31 +12:00
|
|
|
|
settingsForm.ShowDialog();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2019-01-25 03:47:37 +13:00
|
|
|
|
if (!IsDisposed)
|
|
|
|
|
{
|
2021-06-08 08:29:31 +12:00
|
|
|
|
AfterApplicationSettingsJobs();
|
|
|
|
|
UpdateWorkflowsMenu();
|
2019-01-25 03:47:37 +13:00
|
|
|
|
SettingManager.SaveApplicationConfigAsync();
|
|
|
|
|
}
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2021-06-08 08:29:31 +12:00
|
|
|
|
private void tsbTaskSettings_Click(object sender, EventArgs e)
|
2016-05-19 03:39:59 +12:00
|
|
|
|
{
|
2021-06-08 08:29:31 +12:00
|
|
|
|
using (TaskSettingsForm taskSettingsForm = new TaskSettingsForm(Program.DefaultTaskSettings, true))
|
2016-05-19 03:39:59 +12:00
|
|
|
|
{
|
2021-06-08 08:29:31 +12:00
|
|
|
|
taskSettingsForm.ShowDialog();
|
2016-05-19 03:39:59 +12:00
|
|
|
|
}
|
2016-11-02 02:16:44 +13:00
|
|
|
|
|
2019-01-25 03:47:37 +13:00
|
|
|
|
if (!IsDisposed)
|
|
|
|
|
{
|
2021-06-08 08:29:31 +12:00
|
|
|
|
AfterTaskSettingsJobs();
|
2019-01-25 03:47:37 +13:00
|
|
|
|
SettingManager.SaveApplicationConfigAsync();
|
|
|
|
|
}
|
2016-05-19 03:39:59 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsbHotkeySettings_Click(object sender, EventArgs e)
|
2016-05-19 03:39:59 +12:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
if (Program.HotkeyManager != null)
|
2016-05-19 03:39:59 +12:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
using (HotkeySettingsForm hotkeySettingsForm = new HotkeySettingsForm(Program.HotkeyManager))
|
|
|
|
|
{
|
|
|
|
|
hotkeySettingsForm.ShowDialog();
|
|
|
|
|
}
|
|
|
|
|
|
2019-01-25 03:47:37 +13:00
|
|
|
|
if (!IsDisposed)
|
|
|
|
|
{
|
|
|
|
|
UpdateWorkflowsMenu();
|
|
|
|
|
SettingManager.SaveHotkeysConfigAsync();
|
|
|
|
|
}
|
2016-05-19 03:39:59 +12:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsbScreenshotsFolder_Click(object sender, EventArgs e)
|
2016-04-24 10:15:35 +12:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
TaskHelpers.OpenScreenshotsFolder();
|
|
|
|
|
}
|
2016-04-24 10:15:35 +12:00
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsbHistory_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenHistory();
|
|
|
|
|
}
|
2016-04-24 11:16:08 +12:00
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsbImageHistory_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.OpenImageHistory();
|
|
|
|
|
}
|
2016-04-25 02:43:57 +12:00
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiShowDebugLog_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2019-04-03 23:56:15 +13:00
|
|
|
|
TaskHelpers.OpenDebugLog();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
2016-04-25 02:43:57 +12:00
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiTestImageUpload_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UploadManager.UploadImage(ShareXResources.Logo);
|
|
|
|
|
}
|
2016-04-25 02:43:57 +12:00
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiTestTextUpload_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UploadManager.UploadText(Resources.MainForm_tsmiTestTextUpload_Click_Text_upload_test);
|
|
|
|
|
}
|
2016-04-25 02:43:57 +12:00
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiTestFileUpload_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UploadManager.UploadImage(ShareXResources.Logo, ImageDestination.FileUploader, Program.DefaultTaskSettings.FileDestination);
|
2016-04-24 10:15:35 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiTestURLShortener_Click(object sender, EventArgs e)
|
2016-04-24 10:15:35 +12:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
UploadManager.ShortenURL(Links.URL_WEBSITE);
|
2016-04-24 10:15:35 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiTestURLSharing_Click(object sender, EventArgs e)
|
2016-04-25 06:54:51 +12:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
UploadManager.ShareURL(Links.URL_WEBSITE);
|
2016-04-25 06:54:51 +12:00
|
|
|
|
}
|
|
|
|
|
|
2017-06-07 02:05:15 +12:00
|
|
|
|
private void tsbNews_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-06-12 11:49:17 +12:00
|
|
|
|
if (!pNews.Visible)
|
|
|
|
|
{
|
|
|
|
|
pNews.Visible = true;
|
2017-07-30 21:49:08 +12:00
|
|
|
|
tsbNews.Counter = 0;
|
2017-06-12 11:49:17 +12:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
HideNews();
|
|
|
|
|
}
|
2017-06-07 02:05:15 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsbDonate_Click(object sender, EventArgs e)
|
2016-04-25 06:54:51 +12:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
URLHelpers.OpenURL(Links.URL_DONATE);
|
2016-04-25 06:54:51 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsbAbout_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
using (AboutForm aboutForm = new AboutForm())
|
|
|
|
|
{
|
|
|
|
|
aboutForm.ShowDialog();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-09-25 02:43:25 +12:00
|
|
|
|
private void TsbTwitter_Click(object sender, EventArgs e)
|
2019-09-25 01:44:41 +12:00
|
|
|
|
{
|
2019-09-25 02:43:25 +12:00
|
|
|
|
URLHelpers.OpenURL(Links.URL_TWITTER);
|
2019-09-25 01:44:41 +12:00
|
|
|
|
}
|
|
|
|
|
|
2019-09-25 02:43:25 +12:00
|
|
|
|
private void TsbDiscord_Click(object sender, EventArgs e)
|
2019-09-25 01:44:41 +12:00
|
|
|
|
{
|
2019-09-25 02:43:25 +12:00
|
|
|
|
URLHelpers.OpenURL(Links.URL_DISCORD);
|
2019-09-25 01:44:41 +12:00
|
|
|
|
}
|
|
|
|
|
|
2019-09-25 02:43:25 +12:00
|
|
|
|
private void TsbPatreon_Click(object sender, EventArgs e)
|
2019-09-25 01:44:41 +12:00
|
|
|
|
{
|
2019-09-25 02:43:25 +12:00
|
|
|
|
URLHelpers.OpenURL(Links.URL_DONATE);
|
2019-09-25 01:44:41 +12:00
|
|
|
|
}
|
|
|
|
|
|
2019-09-25 02:43:25 +12:00
|
|
|
|
private void TsbBitcoin_Click(object sender, EventArgs e)
|
2019-09-25 01:44:41 +12:00
|
|
|
|
{
|
2019-09-25 02:43:25 +12:00
|
|
|
|
URLHelpers.OpenURL(Links.URL_DONATE);
|
2019-09-25 01:44:41 +12:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void TsbGitHub_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
URLHelpers.OpenURL(Links.URL_GITHUB);
|
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
#endregion Menu events
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
#region Tray events
|
|
|
|
|
|
2020-03-18 02:15:23 +13:00
|
|
|
|
private void niTray_MouseUp(object sender, MouseEventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2020-03-18 02:15:23 +13:00
|
|
|
|
if (e.Button == MouseButtons.Left)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2020-03-18 02:15:23 +13:00
|
|
|
|
if (Program.Settings.TrayLeftDoubleClickAction == HotkeyType.None)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.ExecuteJob(Program.Settings.TrayLeftClickAction);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
trayClickCount++;
|
|
|
|
|
|
|
|
|
|
if (trayClickCount == 1)
|
2016-04-07 04:46:55 +12:00
|
|
|
|
{
|
2020-03-18 02:15:23 +13:00
|
|
|
|
timerTraySingleClick.Interval = SystemInformation.DoubleClickTime;
|
|
|
|
|
timerTraySingleClick.Start();
|
2016-04-07 04:46:55 +12:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2020-03-18 02:15:23 +13:00
|
|
|
|
trayClickCount = 0;
|
|
|
|
|
timerTraySingleClick.Stop();
|
|
|
|
|
|
|
|
|
|
TaskHelpers.ExecuteJob(Program.Settings.TrayLeftDoubleClickAction);
|
2016-04-07 04:46:55 +12:00
|
|
|
|
}
|
2020-03-18 02:15:23 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (e.Button == MouseButtons.Middle)
|
|
|
|
|
{
|
|
|
|
|
TaskHelpers.ExecuteJob(Program.Settings.TrayMiddleClickAction);
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-03-18 02:15:23 +13:00
|
|
|
|
private void timerTraySingleClick_Tick(object sender, EventArgs e)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2020-03-18 02:15:23 +13:00
|
|
|
|
if (trayClickCount == 1)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2020-03-18 02:15:23 +13:00
|
|
|
|
trayClickCount = 0;
|
2016-11-02 02:16:44 +13:00
|
|
|
|
timerTraySingleClick.Stop();
|
2020-03-18 02:15:23 +13:00
|
|
|
|
|
|
|
|
|
TaskHelpers.ExecuteJob(Program.Settings.TrayLeftClickAction);
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void niTray_BalloonTipClicked(object sender, EventArgs e)
|
|
|
|
|
{
|
2021-06-10 10:14:01 +12:00
|
|
|
|
if (niTray.Tag is BalloonTipAction action)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2019-04-03 23:56:15 +13:00
|
|
|
|
switch (action.ClickAction)
|
|
|
|
|
{
|
|
|
|
|
case BalloonTipClickAction.OpenURL:
|
|
|
|
|
URLHelpers.OpenURL(action.Text);
|
|
|
|
|
break;
|
|
|
|
|
case BalloonTipClickAction.OpenDebugLog:
|
|
|
|
|
TaskHelpers.OpenDebugLog();
|
|
|
|
|
break;
|
|
|
|
|
}
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void cmsTray_Opened(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (Program.Settings.TrayAutoExpandCaptureMenu)
|
|
|
|
|
{
|
|
|
|
|
tsmiTrayCapture.Select();
|
|
|
|
|
tsmiTrayCapture.ShowDropDown();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiTrayFullscreen_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureFullscreen().Capture();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
|
2018-08-04 01:38:18 +12:00
|
|
|
|
private async void tsmiCapture_DropDownOpening(object sender, EventArgs e)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2018-08-04 01:38:18 +12:00
|
|
|
|
await PrepareCaptureMenuAsync(tsmiTrayWindow, tsmiTrayWindowItems_Click, tsmiTrayMonitor, tsmiTrayMonitorItems_Click);
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiTrayWindowItems_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
ToolStripItem tsi = (ToolStripItem)sender;
|
2021-06-10 10:14:01 +12:00
|
|
|
|
if (tsi.Tag is WindowInfo wi)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureWindow(wi.Handle).Capture();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiTrayMonitorItems_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
ToolStripItem tsi = (ToolStripItem)sender;
|
2017-02-27 10:49:35 +13:00
|
|
|
|
Rectangle rect = (Rectangle)tsi.Tag;
|
|
|
|
|
if (!rect.IsEmpty)
|
2016-11-02 02:16:44 +13:00
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureMonitor(rect).Capture();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiTrayRectangle_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureRegion().Capture();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiTrayRectangleLight_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureRegion(RegionCaptureType.Light).Capture();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiTrayRectangleTransparent_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureRegion(RegionCaptureType.Transparent).Capture();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiTrayLastRegion_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-02-28 21:34:08 +13:00
|
|
|
|
new CaptureLastRegion().Capture();
|
2016-11-02 02:16:44 +13:00
|
|
|
|
}
|
|
|
|
|
|
2018-11-30 20:43:56 +13:00
|
|
|
|
private async void tsmiTrayTextCapture_Click(object sender, EventArgs e)
|
2015-08-10 09:06:46 +12:00
|
|
|
|
{
|
2018-11-30 20:43:56 +13:00
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await TaskHelpers.OCRImage();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
DebugHelper.WriteException(ex);
|
|
|
|
|
}
|
2015-08-10 09:06:46 +12:00
|
|
|
|
}
|
|
|
|
|
|
2016-11-02 02:16:44 +13:00
|
|
|
|
private void tsmiTrayToggleHotkeys_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-11-02 02:16:44 +13:00
|
|
|
|
TaskHelpers.ToggleHotkeys();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2017-01-20 01:39:10 +13:00
|
|
|
|
private void tsmiOpenActionsToolbar_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-01-21 00:56:44 +13:00
|
|
|
|
TaskHelpers.ToggleActionsToolbar();
|
2017-01-20 01:39:10 +13:00
|
|
|
|
}
|
|
|
|
|
|
2014-02-18 11:53:53 +13:00
|
|
|
|
private void tsmiTrayShow_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2016-03-10 05:37:54 +13:00
|
|
|
|
this.ForceActivate();
|
2014-02-18 11:53:53 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-03-06 03:40:40 +13:00
|
|
|
|
private void tsmiTrayExit_MouseDown(object sender, MouseEventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2016-03-17 22:25:43 +13:00
|
|
|
|
trayMenuSaveSettings = false;
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-03-06 03:40:40 +13:00
|
|
|
|
private void cmsTray_Closed(object sender, ToolStripDropDownClosedEventArgs e)
|
|
|
|
|
{
|
2016-03-17 22:25:43 +13:00
|
|
|
|
if (trayMenuSaveSettings)
|
2016-03-06 03:40:40 +13:00
|
|
|
|
{
|
2017-03-27 04:19:52 +13:00
|
|
|
|
SettingManager.SaveAllSettingsAsync();
|
2016-03-06 03:40:40 +13:00
|
|
|
|
}
|
2016-03-17 22:25:43 +13:00
|
|
|
|
|
|
|
|
|
trayMenuSaveSettings = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiTrayExit_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-01-23 01:41:20 +13:00
|
|
|
|
ForceClose();
|
2016-03-06 03:40:40 +13:00
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
#endregion Tray events
|
|
|
|
|
|
|
|
|
|
#region UploadInfoMenu events
|
|
|
|
|
|
2014-07-17 18:58:17 +12:00
|
|
|
|
private void tsmiShowErrors_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.ShowErrors();
|
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void tsmiStopUpload_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2019-05-14 12:56:01 +12:00
|
|
|
|
uim.StopUpload();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiOpenURL_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.OpenURL();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiOpenShortenedURL_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.OpenShortenedURL();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiOpenThumbnailURL_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.OpenThumbnailURL();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiOpenDeletionURL_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.OpenDeletionURL();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiOpenFile_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.OpenFile();
|
|
|
|
|
}
|
|
|
|
|
|
2014-04-23 09:00:41 +12:00
|
|
|
|
private void tsmiOpenThumbnailFile_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.OpenThumbnailFile();
|
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void tsmiOpenFolder_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.OpenFolder();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyURL_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyURL();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyShortenedURL_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyShortenedURL();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyThumbnailURL_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyThumbnailURL();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyDeletionURL_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyDeletionURL();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyFile_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyFile();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyImage_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyImage();
|
|
|
|
|
}
|
|
|
|
|
|
2018-12-15 13:25:57 +13:00
|
|
|
|
private void tsmiCopyImageDimensions_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyImageDimensions();
|
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void tsmiCopyText_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyText();
|
|
|
|
|
}
|
|
|
|
|
|
2014-04-23 09:00:41 +12:00
|
|
|
|
private void tsmiCopyThumbnailFile_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyThumbnailFile();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyThumbnailImage_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyThumbnailImage();
|
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void tsmiCopyHTMLLink_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyHTMLLink();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyHTMLImage_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyHTMLImage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyHTMLLinkedImage_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyHTMLLinkedImage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyForumLink_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyForumLink();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyForumImage_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyForumImage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyForumLinkedImage_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyForumLinkedImage();
|
|
|
|
|
}
|
|
|
|
|
|
2017-09-28 03:15:49 +13:00
|
|
|
|
private void tsmiCopyMarkdownLink_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyMarkdownLink();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyMarkdownImage_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyMarkdownImage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyMarkdownLinkedImage_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyMarkdownLinkedImage();
|
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void tsmiCopyFilePath_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyFilePath();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyFileName_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyFileName();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyFileNameWithExtension_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyFileNameWithExtension();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiCopyFolder_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CopyFolder();
|
|
|
|
|
}
|
|
|
|
|
|
2015-01-22 07:42:36 +13:00
|
|
|
|
private void tsmiClipboardFormat_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
ToolStripMenuItem tsmiClipboardFormat = sender as ToolStripMenuItem;
|
|
|
|
|
ClipboardFormat cf = tsmiClipboardFormat.Tag as ClipboardFormat;
|
|
|
|
|
uim.CopyCustomFormat(cf.Format);
|
|
|
|
|
}
|
|
|
|
|
|
2014-07-17 18:58:17 +12:00
|
|
|
|
private void tsmiUploadSelectedFile_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2014-07-17 18:58:17 +12:00
|
|
|
|
uim.Upload();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-07-20 12:54:17 +12:00
|
|
|
|
private void tsmiDownloadSelectedURL_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.Download();
|
|
|
|
|
}
|
|
|
|
|
|
2017-02-14 07:00:47 +13:00
|
|
|
|
private void tsmiDeleteSelectedItem_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
RemoveSelectedItems();
|
|
|
|
|
}
|
|
|
|
|
|
2014-07-27 23:02:08 +12:00
|
|
|
|
private void tsmiDeleteSelectedFile_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2014-10-17 22:58:15 +13:00
|
|
|
|
if (MessageBox.Show(Resources.MainForm_tsmiDeleteSelectedFile_Click_Do_you_really_want_to_delete_this_file_,
|
|
|
|
|
"ShareX - " + Resources.MainForm_tsmiDeleteSelectedFile_Click_File_delete_confirmation, MessageBoxButtons.YesNo) == DialogResult.Yes)
|
2014-07-28 09:34:17 +12:00
|
|
|
|
{
|
2015-05-14 10:16:17 +12:00
|
|
|
|
uim.DeleteFiles();
|
2014-07-28 09:34:17 +12:00
|
|
|
|
RemoveSelectedItems();
|
|
|
|
|
}
|
2014-07-27 23:02:08 +12:00
|
|
|
|
}
|
|
|
|
|
|
2014-07-17 18:58:17 +12:00
|
|
|
|
private void tsmiEditSelectedFile_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2014-07-17 18:58:17 +12:00
|
|
|
|
uim.EditImage();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2020-08-03 00:41:53 +12:00
|
|
|
|
private void tsmiAddImageEffects_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.AddImageEffects();
|
|
|
|
|
}
|
|
|
|
|
|
2017-03-16 13:20:59 +13:00
|
|
|
|
private void tsmiSearchImage_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.SearchImage();
|
|
|
|
|
}
|
|
|
|
|
|
2014-05-21 09:25:06 +12:00
|
|
|
|
private void tsmiShowQRCode_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.ShowQRCode();
|
|
|
|
|
}
|
|
|
|
|
|
2018-11-30 20:43:56 +13:00
|
|
|
|
private async void tsmiOCRImage_Click(object sender, EventArgs e)
|
2016-12-12 21:45:16 +13:00
|
|
|
|
{
|
2018-11-30 20:43:56 +13:00
|
|
|
|
await uim.OCRImage();
|
2016-12-12 21:45:16 +13:00
|
|
|
|
}
|
|
|
|
|
|
2017-01-07 21:48:36 +13:00
|
|
|
|
private void tsmiCombineImages_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
uim.CombineImages();
|
|
|
|
|
}
|
|
|
|
|
|
2014-07-17 18:58:17 +12:00
|
|
|
|
private void tsmiShowResponse_Click(object sender, EventArgs e)
|
2014-07-17 08:43:20 +12:00
|
|
|
|
{
|
2014-07-17 18:58:17 +12:00
|
|
|
|
uim.ShowResponse();
|
2014-07-17 08:43:20 +12:00
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
private void tsmiClearList_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
RemoveAllItems();
|
2016-06-03 11:01:55 +12:00
|
|
|
|
TaskManager.RecentManager.Clear();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiHideMenu_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.ShowMenu = !Program.Settings.ShowMenu;
|
2016-02-12 12:28:03 +13:00
|
|
|
|
UpdateMainWindowLayout();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2016-01-30 00:54:35 +13:00
|
|
|
|
private void tsmiHideColumns_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.ShowColumns = !Program.Settings.ShowColumns;
|
2016-02-12 12:28:03 +13:00
|
|
|
|
UpdateMainWindowLayout();
|
2016-01-30 00:54:35 +13:00
|
|
|
|
}
|
|
|
|
|
|
2014-06-19 07:17:22 +12:00
|
|
|
|
private void tsmiImagePreviewShow_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.ImagePreview = ImagePreviewVisibility.Show;
|
|
|
|
|
tsmiImagePreviewShow.Check();
|
2019-10-03 22:46:39 +13:00
|
|
|
|
UpdateInfoManager();
|
2014-06-19 07:17:22 +12:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiImagePreviewHide_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.ImagePreview = ImagePreviewVisibility.Hide;
|
|
|
|
|
tsmiImagePreviewHide.Check();
|
2019-10-03 22:46:39 +13:00
|
|
|
|
UpdateInfoManager();
|
2014-06-19 07:17:22 +12:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiImagePreviewAutomatic_Click(object sender, EventArgs e)
|
2013-11-03 23:53:49 +13:00
|
|
|
|
{
|
2014-06-19 07:17:22 +12:00
|
|
|
|
Program.Settings.ImagePreview = ImagePreviewVisibility.Automatic;
|
|
|
|
|
tsmiImagePreviewAutomatic.Check();
|
2019-10-03 22:46:39 +13:00
|
|
|
|
UpdateInfoManager();
|
2013-11-03 23:53:49 +13:00
|
|
|
|
}
|
|
|
|
|
|
2017-10-29 05:41:14 +13:00
|
|
|
|
private void tsmiImagePreviewSide_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.ImagePreviewLocation = ImagePreviewLocation.Side;
|
|
|
|
|
tsmiImagePreviewSide.Check();
|
2019-10-03 22:46:39 +13:00
|
|
|
|
UpdateInfoManager();
|
2017-10-29 05:41:14 +13:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void tsmiImagePreviewBottom_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.ImagePreviewLocation = ImagePreviewLocation.Bottom;
|
|
|
|
|
tsmiImagePreviewBottom.Check();
|
2019-10-03 22:46:39 +13:00
|
|
|
|
UpdateInfoManager();
|
2017-10-29 05:41:14 +13:00
|
|
|
|
}
|
|
|
|
|
|
2019-09-03 19:54:29 +12:00
|
|
|
|
private void TsmiThumbnailTitleShow_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.ShowThumbnailTitle = true;
|
|
|
|
|
tsmiThumbnailTitleShow.Check();
|
|
|
|
|
UpdateMainWindowLayout();
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-05 13:39:15 +13:00
|
|
|
|
private void tsmiRestartAsAdmin_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2020-10-15 04:00:53 +13:00
|
|
|
|
Program.Restart(true);
|
2020-10-05 13:39:15 +13:00
|
|
|
|
}
|
|
|
|
|
|
2019-09-03 19:54:29 +12:00
|
|
|
|
private void TsmiThumbnailTitleHide_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.ShowThumbnailTitle = false;
|
|
|
|
|
tsmiThumbnailTitleHide.Check();
|
|
|
|
|
UpdateMainWindowLayout();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void TsmiThumbnailTitleTop_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.ThumbnailTitleLocation = ThumbnailTitleLocation.Top;
|
|
|
|
|
tsmiThumbnailTitleTop.Check();
|
|
|
|
|
UpdateMainWindowLayout();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void TsmiThumbnailTitleBottom_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.ThumbnailTitleLocation = ThumbnailTitleLocation.Bottom;
|
|
|
|
|
tsmiThumbnailTitleBottom.Check();
|
|
|
|
|
UpdateMainWindowLayout();
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-14 06:11:23 +13:00
|
|
|
|
private void tsmiThumbnailSize_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
using (ThumbnailSizeForm form = new ThumbnailSizeForm(Program.Settings.ThumbnailSize))
|
|
|
|
|
{
|
|
|
|
|
if (form.ShowDialog() == DialogResult.OK)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.ThumbnailSize = form.ThumbnailSize;
|
|
|
|
|
UpdateMainWindowLayout();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-09-03 19:54:29 +12:00
|
|
|
|
private void TsmiSwitchTaskViewMode_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
tsMain.SendToBack();
|
|
|
|
|
|
|
|
|
|
if (Program.Settings.TaskViewMode == TaskViewMode.ListView)
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.TaskViewMode = TaskViewMode.ThumbnailView;
|
|
|
|
|
ucTaskThumbnailView.UpdateAllThumbnails();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Program.Settings.TaskViewMode = TaskViewMode.ListView;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UpdateTaskViewMode();
|
|
|
|
|
UpdateMainWindowLayout();
|
2019-10-03 22:46:39 +13:00
|
|
|
|
UpdateInfoManager();
|
2019-09-03 19:54:29 +12:00
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 23:53:49 +13:00
|
|
|
|
#endregion UploadInfoMenu events
|
|
|
|
|
|
|
|
|
|
#endregion Form events
|
|
|
|
|
}
|
2015-08-16 20:34:46 +12:00
|
|
|
|
}
|