Added "Pin to screen" button to history form context menu

This commit is contained in:
Jaex 2022-12-25 00:34:32 +03:00
parent 330b7309e7
commit a632c4face
5 changed files with 57 additions and 17 deletions

View file

@ -49,7 +49,7 @@ public partial class HistoryForm : Form
private ListViewItem[] listViewCache; private ListViewItem[] listViewCache;
private int listViewCacheStartIndex; private int listViewCacheStartIndex;
public HistoryForm(string historyPath, HistorySettings settings, Action<string> uploadFile = null, Action<string> editImage = null) public HistoryForm(string historyPath, HistorySettings settings, Action<string> uploadFile = null, Action<string> editImage = null, Action<string> pinToScreen = null)
{ {
HistoryPath = historyPath; HistoryPath = historyPath;
Settings = settings; Settings = settings;
@ -73,7 +73,7 @@ public HistoryForm(string historyPath, HistorySettings settings, Action<string>
il.Images.Add(Resources.globe); il.Images.Add(Resources.globe);
lvHistory.SmallImageList = il; lvHistory.SmallImageList = il;
him = new HistoryItemManager(uploadFile, editImage, true); him = new HistoryItemManager(uploadFile, editImage, pinToScreen, true);
him.GetHistoryItems += him_GetHistoryItems; him.GetHistoryItems += him_GetHistoryItems;
lvHistory.ContextMenuStrip = him.cmsHistory; lvHistory.ContextMenuStrip = him.cmsHistory;

View file

@ -45,7 +45,7 @@ public partial class ImageHistoryForm : Form
private HistoryItemManager him; private HistoryItemManager him;
private string defaultTitle; private string defaultTitle;
public ImageHistoryForm(string historyPath, ImageHistorySettings settings, Action<string> uploadFile = null, Action<string> editImage = null) public ImageHistoryForm(string historyPath, ImageHistorySettings settings, Action<string> uploadFile = null, Action<string> editImage = null, Action<string> pinToScreen = null)
{ {
InitializeComponent(); InitializeComponent();
tsMain.Renderer = new ToolStripRoundedEdgeRenderer(); tsMain.Renderer = new ToolStripRoundedEdgeRenderer();
@ -61,7 +61,7 @@ public ImageHistoryForm(string historyPath, ImageHistorySettings settings, Actio
ilvImages.BorderStyle = BorderStyle.None; ilvImages.BorderStyle = BorderStyle.None;
} }
him = new HistoryItemManager(uploadFile, editImage); him = new HistoryItemManager(uploadFile, editImage, pinToScreen);
him.GetHistoryItems += him_GetHistoryItems; him.GetHistoryItems += him_GetHistoryItems;
ilvImages.ContextMenuStrip = him.cmsHistory; ilvImages.ContextMenuStrip = him.cmsHistory;

View file

@ -50,12 +50,13 @@ public partial class HistoryItemManager
public bool IsImageFile { get; private set; } public bool IsImageFile { get; private set; }
public bool IsTextFile { get; private set; } public bool IsTextFile { get; private set; }
private Action<string> uploadFile, editImage; private Action<string> uploadFile, editImage, pinToScreen;
public HistoryItemManager(Action<string> uploadFile, Action<string> editImage, bool hideShowMoreInfoButton = false) public HistoryItemManager(Action<string> uploadFile, Action<string> editImage, Action<string> pinToScreen, bool hideShowMoreInfoButton = false)
{ {
this.uploadFile = uploadFile; this.uploadFile = uploadFile;
this.editImage = editImage; this.editImage = editImage;
this.pinToScreen = pinToScreen;
InitializeComponent(); InitializeComponent();
@ -63,6 +64,7 @@ public HistoryItemManager(Action<string> uploadFile, Action<string> editImage, b
tsmiCopy.HideImageMargin(); tsmiCopy.HideImageMargin();
tsmiUploadFile.Visible = uploadFile != null; tsmiUploadFile.Visible = uploadFile != null;
tsmiEditImage.Visible = editImage != null; tsmiEditImage.Visible = editImage != null;
tsmiPinToScreen.Visible = pinToScreen != null;
tsmiShowMoreInfo.Visible = !hideShowMoreInfoButton; tsmiShowMoreInfo.Visible = !hideShowMoreInfoButton;
} }
@ -145,6 +147,9 @@ public bool HandleKeyInput(KeyEventArgs e)
case Keys.Control | Keys.E: case Keys.Control | Keys.E:
EditImage(); EditImage();
break; break;
case Keys.Control | Keys.P:
PinToScreen();
break;
} }
return true; return true;
@ -574,6 +579,11 @@ public void EditImage()
if (editImage != null && HistoryItem != null && IsImageFile) editImage(HistoryItem.FilePath); if (editImage != null && HistoryItem != null && IsImageFile) editImage(HistoryItem.FilePath);
} }
public void PinToScreen()
{
if (pinToScreen != null && HistoryItem != null && IsImageFile) pinToScreen(HistoryItem.FilePath);
}
public void ShowMoreInfo() public void ShowMoreInfo()
{ {
new HistoryItemInfoForm(HistoryItem).Show(); new HistoryItemInfoForm(HistoryItem).Show();

View file

@ -42,6 +42,7 @@ public partial class HistoryItemManager
private ToolStripSeparator tssOpen1; private ToolStripSeparator tssOpen1;
private ToolStripMenuItem tsmiOpenFile; private ToolStripMenuItem tsmiOpenFile;
private ToolStripMenuItem tsmiOpenFolder; private ToolStripMenuItem tsmiOpenFolder;
private ToolStripMenuItem tsmiCopy; private ToolStripMenuItem tsmiCopy;
private ToolStripMenuItem tsmiCopyURL; private ToolStripMenuItem tsmiCopyURL;
private ToolStripMenuItem tsmiCopyShortenedURL; private ToolStripMenuItem tsmiCopyShortenedURL;
@ -68,14 +69,17 @@ public partial class HistoryItemManager
private ToolStripMenuItem tsmiCopyFileName; private ToolStripMenuItem tsmiCopyFileName;
private ToolStripMenuItem tsmiCopyFileNameWithExtension; private ToolStripMenuItem tsmiCopyFileNameWithExtension;
private ToolStripMenuItem tsmiCopyFolder; private ToolStripMenuItem tsmiCopyFolder;
private ToolStripMenuItem tsmiShowImagePreview; private ToolStripMenuItem tsmiShowImagePreview;
private ToolStripMenuItem tsmiShowMoreInfo;
private ToolStripMenuItem tsmiUploadFile; private ToolStripMenuItem tsmiUploadFile;
private ToolStripMenuItem tsmiEditImage; private ToolStripMenuItem tsmiEditImage;
private ToolStripMenuItem tsmiPinToScreen;
private ToolStripMenuItem tsmiShowMoreInfo;
private void InitializeComponent() private void InitializeComponent()
{ {
cmsHistory = new ContextMenuStrip(); cmsHistory = new ContextMenuStrip();
tsmiOpen = new ToolStripMenuItem(); tsmiOpen = new ToolStripMenuItem();
tsmiOpenURL = new ToolStripMenuItem(); tsmiOpenURL = new ToolStripMenuItem();
tsmiOpenShortenedURL = new ToolStripMenuItem(); tsmiOpenShortenedURL = new ToolStripMenuItem();
@ -84,6 +88,7 @@ private void InitializeComponent()
tssOpen1 = new ToolStripSeparator(); tssOpen1 = new ToolStripSeparator();
tsmiOpenFile = new ToolStripMenuItem(); tsmiOpenFile = new ToolStripMenuItem();
tsmiOpenFolder = new ToolStripMenuItem(); tsmiOpenFolder = new ToolStripMenuItem();
tsmiCopy = new ToolStripMenuItem(); tsmiCopy = new ToolStripMenuItem();
tsmiCopyURL = new ToolStripMenuItem(); tsmiCopyURL = new ToolStripMenuItem();
tsmiCopyShortenedURL = new ToolStripMenuItem(); tsmiCopyShortenedURL = new ToolStripMenuItem();
@ -110,10 +115,13 @@ private void InitializeComponent()
tsmiCopyFileName = new ToolStripMenuItem(); tsmiCopyFileName = new ToolStripMenuItem();
tsmiCopyFileNameWithExtension = new ToolStripMenuItem(); tsmiCopyFileNameWithExtension = new ToolStripMenuItem();
tsmiCopyFolder = new ToolStripMenuItem(); tsmiCopyFolder = new ToolStripMenuItem();
tsmiShowImagePreview = new ToolStripMenuItem(); tsmiShowImagePreview = new ToolStripMenuItem();
tsmiShowMoreInfo = new ToolStripMenuItem();
tsmiUploadFile = new ToolStripMenuItem(); tsmiUploadFile = new ToolStripMenuItem();
tsmiEditImage = new ToolStripMenuItem(); tsmiEditImage = new ToolStripMenuItem();
tsmiPinToScreen = new ToolStripMenuItem();
tsmiShowMoreInfo = new ToolStripMenuItem();
cmsHistory.SuspendLayout(); cmsHistory.SuspendLayout();
// //
@ -126,6 +134,7 @@ private void InitializeComponent()
tsmiShowImagePreview, tsmiShowImagePreview,
tsmiUploadFile, tsmiUploadFile,
tsmiEditImage, tsmiEditImage,
tsmiPinToScreen,
tsmiShowMoreInfo tsmiShowMoreInfo
}); });
cmsHistory.Name = "cmsHistory"; cmsHistory.Name = "cmsHistory";
@ -409,13 +418,6 @@ private void InitializeComponent()
tsmiShowImagePreview.Text = Resources.HistoryItemManager_InitializeComponent_Image_preview; tsmiShowImagePreview.Text = Resources.HistoryItemManager_InitializeComponent_Image_preview;
tsmiShowImagePreview.Click += tsmiShowImagePreview_Click; tsmiShowImagePreview.Click += tsmiShowImagePreview_Click;
// //
// tsmiShowMoreInfo
//
tsmiShowMoreInfo.Name = "tsmiShowMoreInfo";
tsmiShowMoreInfo.Size = new Size(127, 22);
tsmiShowMoreInfo.Text = Resources.HistoryItemManager_InitializeComponent_More_info;
tsmiShowMoreInfo.Click += tsmiShowMoreInfo_Click;
//
// tsmiUploadFile // tsmiUploadFile
// //
tsmiUploadFile.Name = "tsmiUploadFile"; tsmiUploadFile.Name = "tsmiUploadFile";
@ -431,6 +433,21 @@ private void InitializeComponent()
tsmiEditImage.Size = new Size(127, 22); tsmiEditImage.Size = new Size(127, 22);
tsmiEditImage.Text = Resources.HistoryItemManager_InitializeComponent_EditImage; tsmiEditImage.Text = Resources.HistoryItemManager_InitializeComponent_EditImage;
tsmiEditImage.Click += tsmiEditImage_Click; tsmiEditImage.Click += tsmiEditImage_Click;
//
// tsmiPinToScreen
//
tsmiPinToScreen.Name = "tsmiPinToScreen";
tsmiPinToScreen.ShortcutKeyDisplayString = "Ctrl+P";
tsmiPinToScreen.Size = new Size(127, 22);
tsmiPinToScreen.Text = "Pin to screen"; // TODO: Translate
tsmiPinToScreen.Click += tsmiPinToScreen_Click;
//
// tsmiShowMoreInfo
//
tsmiShowMoreInfo.Name = "tsmiShowMoreInfo";
tsmiShowMoreInfo.Size = new Size(127, 22);
tsmiShowMoreInfo.Text = Resources.HistoryItemManager_InitializeComponent_More_info;
tsmiShowMoreInfo.Click += tsmiShowMoreInfo_Click;
cmsHistory.ResumeLayout(false); cmsHistory.ResumeLayout(false);
} }
@ -502,6 +519,7 @@ public void UpdateContextMenu(int itemCount)
tsmiShowImagePreview.Enabled = false; tsmiShowImagePreview.Enabled = false;
tsmiUploadFile.Enabled = false; tsmiUploadFile.Enabled = false;
tsmiEditImage.Enabled = false; tsmiEditImage.Enabled = false;
tsmiPinToScreen.Enabled = false;
tsmiShowMoreInfo.Enabled = false; tsmiShowMoreInfo.Enabled = false;
} }
else else
@ -566,6 +584,7 @@ public void UpdateContextMenu(int itemCount)
tsmiShowImagePreview.Enabled = IsImageFile; tsmiShowImagePreview.Enabled = IsImageFile;
tsmiUploadFile.Enabled = uploadFile != null && IsFileExist; tsmiUploadFile.Enabled = uploadFile != null && IsFileExist;
tsmiEditImage.Enabled = editImage != null && IsImageFile; tsmiEditImage.Enabled = editImage != null && IsImageFile;
tsmiPinToScreen.Enabled = pinToScreen != null && IsImageFile;
tsmiShowMoreInfo.Enabled = true; tsmiShowMoreInfo.Enabled = true;
} }
@ -717,6 +736,11 @@ private void tsmiEditImage_Click(object sender, EventArgs e)
EditImage(); EditImage();
} }
private void tsmiPinToScreen_Click(object sender, EventArgs e)
{
PinToScreen();
}
private void tsmiShowMoreInfo_Click(object sender, EventArgs e) private void tsmiShowMoreInfo_Click(object sender, EventArgs e)
{ {
ShowMoreInfo(); ShowMoreInfo();

View file

@ -730,14 +730,20 @@ public static void OpenScreenshotsFolder()
public static void OpenHistory() public static void OpenHistory()
{ {
HistoryForm historyForm = new HistoryForm(Program.HistoryFilePath, Program.Settings.HistorySettings, HistoryForm historyForm = new HistoryForm(Program.HistoryFilePath, Program.Settings.HistorySettings,
filePath => UploadManager.UploadFile(filePath), filePath => AnnotateImageFromFile(filePath)); filePath => UploadManager.UploadFile(filePath),
filePath => AnnotateImageFromFile(filePath),
filePath => PinToScreen(filePath));
historyForm.Show(); historyForm.Show();
} }
public static void OpenImageHistory() public static void OpenImageHistory()
{ {
ImageHistoryForm imageHistoryForm = new ImageHistoryForm(Program.HistoryFilePath, Program.Settings.ImageHistorySettings, ImageHistoryForm imageHistoryForm = new ImageHistoryForm(Program.HistoryFilePath, Program.Settings.ImageHistorySettings,
filePath => UploadManager.UploadFile(filePath), filePath => AnnotateImageFromFile(filePath)); filePath => UploadManager.UploadFile(filePath),
filePath => AnnotateImageFromFile(filePath),
filePath => PinToScreen(filePath));
imageHistoryForm.Show(); imageHistoryForm.Show();
} }