mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 17:56:51 +13:00
Support handling key inputs in thumbnail view mode
This commit is contained in:
parent
4362f832da
commit
a74d7228c1
4 changed files with 66 additions and 42 deletions
|
@ -119,6 +119,8 @@ public Size ThumbnailSize
|
|||
public delegate void TaskViewMouseEventHandler(object sender, MouseEventArgs e);
|
||||
public event TaskViewMouseEventHandler ContextMenuRequested;
|
||||
|
||||
public event EventHandler SelectedPanelChanged;
|
||||
|
||||
public TaskThumbnailView()
|
||||
{
|
||||
Panels = new List<TaskThumbnailPanel>();
|
||||
|
@ -177,6 +179,7 @@ public void RemovePanel(WorkerTask task)
|
|||
if (panel != null)
|
||||
{
|
||||
Panels.Remove(panel);
|
||||
SelectedPanels.Remove(panel);
|
||||
flpMain.Controls.Remove(panel);
|
||||
panel.Dispose();
|
||||
}
|
||||
|
@ -202,6 +205,8 @@ public void UnselectAllPanels()
|
|||
{
|
||||
SelectedPanels.Clear();
|
||||
|
||||
OnSelectedPanelChanged();
|
||||
|
||||
foreach (TaskThumbnailPanel panel in Panels)
|
||||
{
|
||||
panel.Selected = false;
|
||||
|
@ -210,10 +215,12 @@ public void UnselectAllPanels()
|
|||
|
||||
protected void OnContextMenuRequested(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (ContextMenuRequested != null)
|
||||
{
|
||||
ContextMenuRequested(sender, e);
|
||||
ContextMenuRequested?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
protected void OnSelectedPanelChanged()
|
||||
{
|
||||
SelectedPanelChanged?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
private void FlpMain_MouseEnter(object sender, EventArgs e)
|
||||
|
@ -268,10 +275,19 @@ private void Panel_MouseUp(object sender, MouseEventArgs e, TaskThumbnailPanel p
|
|||
}
|
||||
}
|
||||
|
||||
OnSelectedPanelChanged();
|
||||
|
||||
if (ModifierKeys != Keys.Control && e.Button == MouseButtons.Right)
|
||||
{
|
||||
OnContextMenuRequested(sender, e);
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
OnKeyDown(new KeyEventArgs(keyData));
|
||||
|
||||
return base.ProcessCmdKey(ref msg, keyData);
|
||||
}
|
||||
}
|
||||
}
|
38
ShareX/Forms/MainForm.Designer.cs
generated
38
ShareX/Forms/MainForm.Designer.cs
generated
|
@ -278,8 +278,10 @@ private void InitializeComponent()
|
|||
this.timerTraySingleClick = new System.Windows.Forms.Timer(this.components);
|
||||
this.pNews = new System.Windows.Forms.Panel();
|
||||
this.btnCloseNews = new System.Windows.Forms.Button();
|
||||
this.ucNews = new ShareX.NewsListControl();
|
||||
this.pThumbnailView = new System.Windows.Forms.Panel();
|
||||
this.lblThumbnailViewTip = new System.Windows.Forms.Label();
|
||||
this.ucTaskThumbnailView = new ShareX.TaskThumbnailView();
|
||||
this.ttMain = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.pToolbars = new System.Windows.Forms.Panel();
|
||||
this.tsSocialButtons = new ShareX.HelpersLib.ToolStripBorderRight();
|
||||
|
@ -288,8 +290,6 @@ private void InitializeComponent()
|
|||
this.tsbPatreon = new System.Windows.Forms.ToolStripButton();
|
||||
this.tsbBitcoin = new System.Windows.Forms.ToolStripButton();
|
||||
this.tsbGitHub = new System.Windows.Forms.ToolStripButton();
|
||||
this.ucNews = new ShareX.NewsListControl();
|
||||
this.ucTaskThumbnailView = new ShareX.TaskThumbnailView();
|
||||
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
|
||||
this.scMain.Panel1.SuspendLayout();
|
||||
this.scMain.Panel2.SuspendLayout();
|
||||
|
@ -2202,6 +2202,12 @@ private void InitializeComponent()
|
|||
this.btnCloseNews.UseVisualStyleBackColor = true;
|
||||
this.btnCloseNews.Click += new System.EventHandler(this.btnCloseNews_Click);
|
||||
//
|
||||
// ucNews
|
||||
//
|
||||
this.ucNews.BackColor = System.Drawing.SystemColors.Window;
|
||||
resources.ApplyResources(this.ucNews, "ucNews");
|
||||
this.ucNews.Name = "ucNews";
|
||||
//
|
||||
// pThumbnailView
|
||||
//
|
||||
this.pThumbnailView.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(47)))), ((int)(((byte)(56)))));
|
||||
|
@ -2219,6 +2225,18 @@ private void InitializeComponent()
|
|||
this.lblThumbnailViewTip.UseMnemonic = false;
|
||||
this.lblThumbnailViewTip.MouseUp += new System.Windows.Forms.MouseEventHandler(this.LblThumbnailViewTip_MouseUp);
|
||||
//
|
||||
// ucTaskThumbnailView
|
||||
//
|
||||
resources.ApplyResources(this.ucTaskThumbnailView, "ucTaskThumbnailView");
|
||||
this.ucTaskThumbnailView.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(47)))), ((int)(((byte)(56)))));
|
||||
this.ucTaskThumbnailView.Name = "ucTaskThumbnailView";
|
||||
this.ucTaskThumbnailView.ThumbnailSize = new System.Drawing.Size(200, 150);
|
||||
this.ucTaskThumbnailView.TitleLocation = ShareX.ThumbnailTitleLocation.Top;
|
||||
this.ucTaskThumbnailView.TitleVisible = true;
|
||||
this.ucTaskThumbnailView.ContextMenuRequested += new ShareX.TaskThumbnailView.TaskViewMouseEventHandler(this.UcTaskView_ContextMenuRequested);
|
||||
this.ucTaskThumbnailView.SelectedPanelChanged += new System.EventHandler(this.ucTaskThumbnailView_SelectedPanelChanged);
|
||||
this.ucTaskThumbnailView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lvUploads_KeyDown);
|
||||
//
|
||||
// ttMain
|
||||
//
|
||||
this.ttMain.AutoPopDelay = 5000;
|
||||
|
@ -2295,22 +2313,6 @@ private void InitializeComponent()
|
|||
this.tsbGitHub.Padding = new System.Windows.Forms.Padding(1);
|
||||
this.tsbGitHub.Click += new System.EventHandler(this.TsbGitHub_Click);
|
||||
//
|
||||
// ucNews
|
||||
//
|
||||
this.ucNews.BackColor = System.Drawing.SystemColors.Window;
|
||||
resources.ApplyResources(this.ucNews, "ucNews");
|
||||
this.ucNews.Name = "ucNews";
|
||||
//
|
||||
// ucTaskThumbnailView
|
||||
//
|
||||
resources.ApplyResources(this.ucTaskThumbnailView, "ucTaskThumbnailView");
|
||||
this.ucTaskThumbnailView.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(47)))), ((int)(((byte)(56)))));
|
||||
this.ucTaskThumbnailView.Name = "ucTaskThumbnailView";
|
||||
this.ucTaskThumbnailView.ThumbnailSize = new System.Drawing.Size(200, 150);
|
||||
this.ucTaskThumbnailView.TitleLocation = ShareX.ThumbnailTitleLocation.Top;
|
||||
this.ucTaskThumbnailView.TitleVisible = true;
|
||||
this.ucTaskThumbnailView.ContextMenuRequested += new ShareX.TaskThumbnailView.TaskViewMouseEventHandler(this.UcTaskView_ContextMenuRequested);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AllowDrop = true;
|
||||
|
|
|
@ -305,7 +305,7 @@ public void UpdateControls()
|
|||
UpdateMainWindowLayout();
|
||||
UpdateUploaderMenuNames();
|
||||
UpdateDestinationStates();
|
||||
UpdateContextMenu();
|
||||
UpdateInfoManager();
|
||||
UpdateToggleHotkeyButton();
|
||||
AfterTaskSettingsJobs();
|
||||
AfterApplicationSettingsJobs();
|
||||
|
@ -610,7 +610,7 @@ private void EnableDisableToolStripMenuItems<T>(params ToolStripDropDownItem[] p
|
|||
}
|
||||
}
|
||||
|
||||
private void UpdateContextMenu()
|
||||
private void UpdateInfoManager()
|
||||
{
|
||||
cmsTaskInfo.SuspendLayout();
|
||||
|
||||
|
@ -1124,11 +1124,16 @@ private WorkerTask[] GetSelectedTasks()
|
|||
return null;
|
||||
}
|
||||
|
||||
private void RemoveTasks(IEnumerable<WorkerTask> tasks)
|
||||
private void RemoveTasks(WorkerTask[] tasks)
|
||||
{
|
||||
if (tasks != null)
|
||||
{
|
||||
tasks.Where(x => x != null && !x.IsWorking).ForEach(TaskManager.Remove);
|
||||
foreach (WorkerTask task in tasks.Where(x => x != null && !x.IsWorking))
|
||||
{
|
||||
TaskManager.Remove(task);
|
||||
}
|
||||
|
||||
UpdateInfoManager();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1145,12 +1150,12 @@ private void RemoveSelectedItems()
|
|||
tasks = ucTaskThumbnailView.SelectedPanels.Select(x => x.Task);
|
||||
}
|
||||
|
||||
RemoveTasks(tasks);
|
||||
RemoveTasks(tasks.ToArray());
|
||||
}
|
||||
|
||||
private void RemoveAllItems()
|
||||
{
|
||||
RemoveTasks(lvUploads.Items.Cast<ListViewItem>().Select(x => x.Tag as WorkerTask));
|
||||
RemoveTasks(lvUploads.Items.Cast<ListViewItem>().Select(x => x.Tag as WorkerTask).ToArray());
|
||||
}
|
||||
|
||||
private void UpdateMainWindowLayout()
|
||||
|
@ -1448,7 +1453,7 @@ private void lblListViewTip_MouseUp(object sender, MouseEventArgs e)
|
|||
}
|
||||
else if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
UpdateContextMenu();
|
||||
UpdateInfoManager();
|
||||
cmsTaskInfo.Show((Control)sender, e.X + 1, e.Y + 1);
|
||||
}
|
||||
}
|
||||
|
@ -1458,14 +1463,14 @@ private async void lvUploads_SelectedIndexChanged(object sender, EventArgs e)
|
|||
lvUploads.SelectedIndexChanged -= lvUploads_SelectedIndexChanged;
|
||||
await Task.Delay(1);
|
||||
lvUploads.SelectedIndexChanged += lvUploads_SelectedIndexChanged;
|
||||
UpdateContextMenu();
|
||||
UpdateInfoManager();
|
||||
}
|
||||
|
||||
private void lvUploads_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
UpdateContextMenu();
|
||||
UpdateInfoManager();
|
||||
cmsTaskInfo.Show(lvUploads, e.X + 1, e.Y + 1);
|
||||
}
|
||||
}
|
||||
|
@ -1536,7 +1541,7 @@ private void lvUploads_KeyDown(object sender, KeyEventArgs e)
|
|||
case Keys.Apps:
|
||||
if (lvUploads.SelectedItems.Count > 0)
|
||||
{
|
||||
UpdateContextMenu();
|
||||
UpdateInfoManager();
|
||||
Rectangle rect = lvUploads.GetItemRect(lvUploads.SelectedIndex);
|
||||
cmsTaskInfo.Show(lvUploads, new Point(rect.X, rect.Bottom));
|
||||
}
|
||||
|
@ -1546,9 +1551,13 @@ private void lvUploads_KeyDown(object sender, KeyEventArgs e)
|
|||
e.Handled = e.SuppressKeyPress = true;
|
||||
}
|
||||
|
||||
private void ucTaskThumbnailView_SelectedPanelChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateInfoManager();
|
||||
}
|
||||
|
||||
private void UcTaskView_ContextMenuRequested(object sender, MouseEventArgs e)
|
||||
{
|
||||
UpdateContextMenu();
|
||||
cmsTaskInfo.Show(sender as Control, e.X + 1, e.Y + 1);
|
||||
}
|
||||
|
||||
|
@ -2436,35 +2445,35 @@ private void tsmiImagePreviewShow_Click(object sender, EventArgs e)
|
|||
{
|
||||
Program.Settings.ImagePreview = ImagePreviewVisibility.Show;
|
||||
tsmiImagePreviewShow.Check();
|
||||
UpdateContextMenu();
|
||||
UpdateInfoManager();
|
||||
}
|
||||
|
||||
private void tsmiImagePreviewHide_Click(object sender, EventArgs e)
|
||||
{
|
||||
Program.Settings.ImagePreview = ImagePreviewVisibility.Hide;
|
||||
tsmiImagePreviewHide.Check();
|
||||
UpdateContextMenu();
|
||||
UpdateInfoManager();
|
||||
}
|
||||
|
||||
private void tsmiImagePreviewAutomatic_Click(object sender, EventArgs e)
|
||||
{
|
||||
Program.Settings.ImagePreview = ImagePreviewVisibility.Automatic;
|
||||
tsmiImagePreviewAutomatic.Check();
|
||||
UpdateContextMenu();
|
||||
UpdateInfoManager();
|
||||
}
|
||||
|
||||
private void tsmiImagePreviewSide_Click(object sender, EventArgs e)
|
||||
{
|
||||
Program.Settings.ImagePreviewLocation = ImagePreviewLocation.Side;
|
||||
tsmiImagePreviewSide.Check();
|
||||
UpdateContextMenu();
|
||||
UpdateInfoManager();
|
||||
}
|
||||
|
||||
private void tsmiImagePreviewBottom_Click(object sender, EventArgs e)
|
||||
{
|
||||
Program.Settings.ImagePreviewLocation = ImagePreviewLocation.Bottom;
|
||||
tsmiImagePreviewBottom.Check();
|
||||
UpdateContextMenu();
|
||||
UpdateInfoManager();
|
||||
}
|
||||
|
||||
private void TsmiThumbnailTitleShow_Click(object sender, EventArgs e)
|
||||
|
@ -2511,7 +2520,7 @@ private void TsmiSwitchTaskViewMode_Click(object sender, EventArgs e)
|
|||
|
||||
UpdateTaskViewMode();
|
||||
UpdateMainWindowLayout();
|
||||
UpdateContextMenu();
|
||||
UpdateInfoManager();
|
||||
}
|
||||
|
||||
#endregion UploadInfoMenu events
|
||||
|
|
|
@ -2112,9 +2112,6 @@
|
|||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>844, 471</value>
|
||||
</data>
|
||||
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>510, 250</value>
|
||||
</data>
|
||||
|
|
Loading…
Reference in a new issue