public StashedStateMenu(StashedState stashedState) { Verify.Argument.IsValidGitObject(stashedState, nameof(stashedState)); StashedState = stashedState; Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetViewDiffItem <ToolStripMenuItem>(StashedState.GetDiffSource()), GuiItemFactory.GetViewTreeItem <ToolStripMenuItem>(StashedState), GuiItemFactory.GetSavePatchItem <ToolStripMenuItem>(StashedState), new ToolStripSeparator(), GuiItemFactory.GetStashPopItem <ToolStripMenuItem>(StashedState), GuiItemFactory.GetStashApplyItem <ToolStripMenuItem>(StashedState), GuiItemFactory.GetStashDropItem <ToolStripMenuItem>(StashedState), new ToolStripSeparator(), GuiItemFactory.GetStashToBranchItem <ToolStripMenuItem>(StashedState), new ToolStripSeparator(), new ToolStripMenuItem(Resources.StrCopyToClipboard, null, new ToolStripItem[] { GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrName, ((IRevisionPointer)StashedState).Pointer), GuiItemFactory.GetCopyHashToClipboardItem <ToolStripMenuItem>(Resources.StrHash, StashedState.Revision.Hash.ToString()), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrSubject, StashedState.Revision.Subject), }), }); }
public SubmoduleMenu(Submodule submodule) { Verify.Argument.IsValidGitObject(submodule, nameof(submodule)); Submodule = submodule; Items.Add(GuiItemFactory.GetOpenAppItem <ToolStripMenuItem>( Resources.StrOpenWithGitter, null, Application.ExecutablePath, Submodule.FullPath.SurroundWithDoubleQuotes())); Items.Add(GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>( Resources.StrOpenInWindowsExplorer, null, Submodule.FullPath)); Items.Add(GuiItemFactory.GetOpenCmdAtItem <ToolStripMenuItem>( Resources.StrOpenCommandLine, null, Submodule.FullPath)); Items.Add(new ToolStripSeparator()); Items.Add(GuiItemFactory.GetUpdateSubmoduleItem <ToolStripMenuItem>(submodule)); Items.Add(GuiItemFactory.GetSyncSubmoduleItem <ToolStripMenuItem>(submodule)); Items.Add(new ToolStripSeparator()); // copy to clipboard section var item = new ToolStripMenuItem(Resources.StrCopyToClipboard); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrName, Submodule.Name)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrPath, Submodule.Path)); item.DropDownItems.Add(GuiItemFactory.GetCopyHashToClipboardItem <ToolStripMenuItem>(Resources.StrUrl, Submodule.Url)); Items.Add(item); }
public RemoteMenu(Remote remote) { Verify.Argument.IsValidGitObject(remote, "remote"); _remote = remote; Items.Add(GuiItemFactory.GetShowRemoteItem <ToolStripMenuItem>(remote)); Items.Add(GuiItemFactory.GetEditRemotePropertiesItem <ToolStripMenuItem>(remote)); Items.Add(new ToolStripSeparator()); Items.Add(GuiItemFactory.GetFetchFromItem <ToolStripMenuItem>(remote, "{0}")); Items.Add(GuiItemFactory.GetPullFromItem <ToolStripMenuItem>(remote, "{0}")); Items.Add(GuiItemFactory.GetPruneRemoteItem <ToolStripMenuItem>(remote, "{0}")); Items.Add(new ToolStripSeparator()); Items.Add(GuiItemFactory.GetRemoveRemoteItem <ToolStripMenuItem>(remote, "{0}")); Items.Add(GuiItemFactory.GetRenameRemoteItem <ToolStripMenuItem>(remote, "{0}")); Items.Add(new ToolStripSeparator()); var item = new ToolStripMenuItem(Resources.StrCopyToClipboard); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrName, remote.Name)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFetchUrl, remote.FetchUrl)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrPushUrl, remote.PushUrl)); Items.Add(item); }
public TagMenu(Tag tag) { Verify.Argument.IsValidGitObject(tag, "tag"); _tag = tag; Items.Add(GuiItemFactory.GetViewTreeItem <ToolStripMenuItem>(_tag)); Items.Add(GuiItemFactory.GetArchiveItem <ToolStripMenuItem>(_tag)); Items.Add(new ToolStripSeparator()); // interactive section Items.Add(GuiItemFactory.GetCheckoutRevisionItem <ToolStripMenuItem>(_tag, "{0} '{1}'")); Items.Add(GuiItemFactory.GetResetHeadHereItem <ToolStripMenuItem>(_tag)); Items.Add(GuiItemFactory.GetRemoveTagItem <ToolStripMenuItem>(_tag, Resources.StrDelete)); Items.Add(new ToolStripSeparator()); // copy to clipboard section var item = new ToolStripMenuItem(Resources.StrCopyToClipboard); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrName, tag.Name)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFullName, tag.FullName)); item.DropDownItems.Add(GuiItemFactory.GetCopyHashToClipboardItem <ToolStripMenuItem>(Resources.StrPosition, tag.Revision.Hash.ToString())); Items.Add(item); Items.Add(new ToolStripSeparator()); Items.Add(GuiItemFactory.GetCreateBranchItem <ToolStripMenuItem>(_tag)); Items.Add(GuiItemFactory.GetCreateTagItem <ToolStripMenuItem>(_tag)); }
public override ContextMenuStrip CreateContextMenu(Revision revision) { var menu = new ContextMenuStrip(); menu.Items.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrCopyToClipboard, revision.Body, false)); Utility.MarkDropDownForAutoDispose(menu); return(menu); }
public override ContextMenuStrip CreateContextMenu(Revision revision) { var menu = new ContextMenuStrip(); menu.Items.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrCopyToClipboard, string.Format("{0} <{1}>", revision.Committer.Name, revision.Committer.Email))); menu.Items.Add(GuiItemFactory.GetSendEmailItem <ToolStripMenuItem>(revision.Committer.Email)); Utility.MarkDropDownForAutoDispose(menu); return(menu); }
public ConfigParameterMenu(ConfigParameter parameter) { Verify.Argument.IsValidGitObject(parameter, "parameter"); _parameter = parameter; Items.Add(GuiItemFactory.GetUnsetParameterItem <ToolStripMenuItem>(parameter)); Items.Add(new ToolStripSeparator()); Items.Add(new ToolStripMenuItem(Resources.StrCopyToClipboard, null, GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrName, _parameter.Name), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrValue, _parameter.Value))); }
public BranchMenu(BranchBase branch) { Verify.Argument.IsValidGitObject(branch, "branch"); _branch = branch; Items.Add(GuiItemFactory.GetViewReflogItem <ToolStripMenuItem>(_branch)); Items.Add(GuiItemFactory.GetViewTreeItem <ToolStripMenuItem>(_branch)); Items.Add(new ToolStripSeparator()); // interactive section Items.Add(GuiItemFactory.GetCheckoutRevisionItem <ToolStripMenuItem>(_branch, "{0} '{1}'")); Items.Add(GuiItemFactory.GetResetHeadHereItem <ToolStripMenuItem>(_branch)); Items.Add(GuiItemFactory.GetRebaseHeadHereItem <ToolStripMenuItem>(_branch)); Items.Add(GuiItemFactory.GetMergeItem <ToolStripMenuItem>(_branch)); if (!branch.IsRemote) { Items.Add(GuiItemFactory.GetRenameBranchItem <ToolStripMenuItem>((Branch)_branch, "{0}")); } Items.Add(GuiItemFactory.GetRemoveBranchItem <ToolStripMenuItem>(_branch)); if (!branch.IsRemote) { lock (branch.Repository.Remotes.SyncRoot) { if (branch.Repository.Remotes.Count != 0) { Items.Add(new ToolStripSeparator()); var pushTo = new ToolStripMenuItem(Resources.StrPushTo, CachedResources.Bitmaps["ImgPush"]); foreach (var remote in branch.Repository.Remotes) { pushTo.DropDownItems.Add(GuiItemFactory.GetPushBranchToRemoteItem <ToolStripMenuItem>((Branch)branch, remote)); } Items.Add(pushTo); } } } else { } Items.Add(new ToolStripSeparator()); // copy to clipboard section var item = new ToolStripMenuItem(Resources.StrCopyToClipboard); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrName, _branch.Name)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFullName, _branch.FullName)); item.DropDownItems.Add(GuiItemFactory.GetCopyHashToClipboardItem <ToolStripMenuItem>(Resources.StrPosition, _branch.Revision.HashString)); Items.Add(item); Items.Add(new ToolStripSeparator()); Items.Add(GuiItemFactory.GetCreateBranchItem <ToolStripMenuItem>(_branch)); Items.Add(GuiItemFactory.GetCreateTagItem <ToolStripMenuItem>(_branch)); }
public ConfigParameterMenu(ConfigParameterListItem listItem) { Verify.Argument.IsNotNull(listItem, "listItem"); Verify.Argument.IsValidGitObject(listItem.DataContext, "parameter"); _listItem = listItem; _parameter = listItem.DataContext; Items.Add(new ToolStripMenuItem(Resources.StrEditValue, CachedResources.Bitmaps["ImgConfigEdit"], (s, e) => listItem.StartValueEditor())); Items.Add(GuiItemFactory.GetUnsetParameterItem <ToolStripMenuItem>(_parameter)); Items.Add(new ToolStripSeparator()); Items.Add(new ToolStripMenuItem(Resources.StrCopyToClipboard, null, GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrName, _parameter.Name), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrValue, _parameter.Value))); }
public override ContextMenuStrip CreateContextMenu(Revision revision) { var menu = new ContextMenuStrip(); var sb = new StringBuilder(41 * revision.Parents.Count); foreach (var p in revision.Parents) { sb.Append(p.Hash); sb.Append('\n'); } sb.Remove(sb.Length - 1, 1); menu.Items.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrCopyToClipboard, sb.ToString())); Utility.MarkDropDownForAutoDispose(menu); return(menu); }
public UserMenu(User user) { Verify.Argument.IsValidGitObject(user, nameof(user)); User = user; Items.Add(GuiItemFactory.GetSendEmailItem <ToolStripMenuItem>(user.Email)); var item = new ToolStripMenuItem(Resources.StrCopyToClipboard); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrName, user.Name)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrEmail, user.Email)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrCommits, user.Commits.ToString())); Items.Add(item); }
public ReflogRecordMenu(ReflogRecord reflogRecord) { Verify.Argument.IsNotNull(reflogRecord, nameof(reflogRecord)); var revision = reflogRecord.Revision; Items.Add(GuiItemFactory.GetViewDiffItem <ToolStripMenuItem>(revision.GetDiffSource())); Items.Add(GuiItemFactory.GetViewTreeItem <ToolStripMenuItem>(revision)); Items.Add(GuiItemFactory.GetSavePatchItem <ToolStripMenuItem>(revision)); Items.Add(new ToolStripSeparator()); Items.Add(GuiItemFactory.GetCheckoutRevisionItem <ToolStripMenuItem>(revision, "{0}")); Items.Add(GuiItemFactory.GetResetHeadHereItem <ToolStripMenuItem>(revision)); Items.Add(GuiItemFactory.GetCherryPickItem <ToolStripMenuItem>(revision, "{0}")); Items.Add(new ToolStripSeparator()); // copy to clipboard section var item = new ToolStripMenuItem(Resources.StrCopyToClipboard); item.DropDownItems.Add(GuiItemFactory.GetCopyHashToClipboardItem <ToolStripMenuItem>(Resources.StrHash, revision.Hash.ToString())); item.DropDownItems.Add(GuiItemFactory.GetCopyHashToClipboardItem <ToolStripMenuItem>(Resources.StrTreeHash, revision.TreeHash.ToString())); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrMessage, reflogRecord.Message)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrSubject, revision.Subject)); if (!string.IsNullOrEmpty(revision.Body)) { item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrBody, revision.Body)); } if (revision.Committer != revision.Author) { item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrCommitter, revision.Committer.Name)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrCommitterEmail, revision.Committer.Email)); } item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrAuthor, revision.Author.Name)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrAuthorEmail, revision.Author.Email)); Items.Add(item); Items.Add(new ToolStripSeparator()); Items.Add(GuiItemFactory.GetCreateBranchItem <ToolStripMenuItem>(reflogRecord.Revision)); Items.Add(GuiItemFactory.GetCreateTagItem <ToolStripMenuItem>(reflogRecord.Revision)); }
/// <summary>Create <see cref="RemoteBranchMenu"/>.</summary> /// <param name="remoteTag">Remote branch, for which menu is generated.</param> public RemoteTagMenu(RemoteRepositoryTag remoteTag) { Verify.Argument.IsNotNull(remoteTag, nameof(remoteTag)); Verify.Argument.IsFalse(remoteTag.IsDeleted, nameof(remoteTag), Resources.ExcObjectIsDeleted.UseAsFormat("RemoteTag")); RemoteTag = remoteTag; Items.Add(GuiItemFactory.GetRemoveRemoteTagItem <ToolStripMenuItem>(RemoteTag, "{0}")); var copyToClipboardItem = new ToolStripMenuItem(Resources.StrCopyToClipboard); copyToClipboardItem.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>( Resources.StrName, RemoteTag.Name)); copyToClipboardItem.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>( Resources.StrFullName, RemoteTag.FullName)); copyToClipboardItem.DropDownItems.Add(GuiItemFactory.GetCopyHashToClipboardItem <ToolStripMenuItem>( Resources.StrPosition, RemoteTag.Hash.ToString())); Items.Add(copyToClipboardItem); }
/// <summary>Create <see cref="RemoteBranchMenu"/>.</summary> /// <param name="remoteBranch">Remote branch, for which menu is generated.</param> public RemoteBranchMenu(RemoteRepositoryBranch remoteBranch) { Verify.Argument.IsNotNull(remoteBranch, "remoteBranch"); Verify.Argument.IsFalse(remoteBranch.IsDeleted, "remoteBranch", Resources.ExcObjectIsDeleted.UseAsFormat("RemoteBranch")); _remoteBranch = remoteBranch; Items.Add(GuiItemFactory.GetRemoveRemoteBranchItem <ToolStripMenuItem>(_remoteBranch, "{0}")); var copyToClipboardItem = new ToolStripMenuItem(Resources.StrCopyToClipboard); copyToClipboardItem.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>( Resources.StrName, _remoteBranch.Name)); copyToClipboardItem.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>( Resources.StrFullName, _remoteBranch.FullName)); copyToClipboardItem.DropDownItems.Add(GuiItemFactory.GetCopyHashToClipboardItem <ToolStripMenuItem>( Resources.StrPosition, _remoteBranch.Hash.ToString())); Items.Add(copyToClipboardItem); }
public DiffFileMenu(IDiffSource diffSource, DiffFile diffFile) { Verify.Argument.IsNotNull(diffSource, "diffSource"); Verify.Argument.IsNotNull(diffFile, "diffFile"); _diffSource = diffSource; _diffFile = diffFile; string fileName = diffFile.Status != FileStatus.Removed ? diffFile.TargetFile : diffFile.SourceFile; var indexDiff = diffSource as IIndexDiffSource; if (indexDiff != null) { var repository = indexDiff.Repository; if (diffFile.Status != FileStatus.Removed) { try { var fullPath = Path.Combine(diffSource.Repository.WorkingDirectory, diffFile.TargetFile); if (File.Exists(fullPath)) { Items.Add(GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>( Resources.StrOpen, null, fullPath)); Items.Add(GuiItemFactory.GetOpenUrlWithItem <ToolStripMenuItem>( Resources.StrOpenWith.AddEllipsis(), null, fullPath)); Items.Add(GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>( Resources.StrOpenContainingFolder, null, Path.GetDirectoryName(fullPath))); Items.Add(new ToolStripSeparator()); } } catch (Exception exc) { if (exc.IsCritical()) { throw; } } } if (indexDiff.Cached) { var item = indexDiff.Repository.Status.TryGetStaged(fileName); if (item != null) { Items.Add(GuiItemFactory.GetUnstageItem <ToolStripMenuItem>(item)); Items.Add(new ToolStripSeparator()); } } else { var item = indexDiff.Repository.Status.TryGetUnstaged(fileName); if (item != null) { Items.Add(GuiItemFactory.GetStageItem <ToolStripMenuItem>(item)); Items.Add(new ToolStripSeparator()); } } if (diffFile.Status != FileStatus.Removed) { Items.Add(GuiItemFactory.GetBlameItem <ToolStripMenuItem>( indexDiff.Repository.Head, fileName)); } Items.Add(GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>( indexDiff.Repository.Head, fileName)); } else { var revisionDiff = diffSource as IRevisionDiffSource; if (revisionDiff != null) { if (diffFile.Status != FileStatus.Removed) { Items.Add(GuiItemFactory.GetBlameItem <ToolStripMenuItem>( revisionDiff.Revision, diffFile.TargetFile)); Items.Add(GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>( revisionDiff.Revision, diffFile.TargetFile)); } else { Items.Add(GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>( revisionDiff.Revision, diffFile.SourceFile)); } } } Items.Add(new ToolStripMenuItem(Resources.StrCopyToClipboard, null, new ToolStripItem[] { GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrSourceFileName, diffFile.SourceFile), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrDestinationFileName, diffFile.TargetFile), })); }
/// <summary>Create <see cref="RevisionMenu"/>.</summary> /// <param name="revision">Related <see cref="Revision"/>.</param> /// <exception cref="T:System.NullReferenceException"><paramref name="revision"/> == <c>null</c>.</exception> public RevisionMenu(Revision revision) { Verify.Argument.IsNotNull(revision, "revision"); _revision = revision; Items.Add(GuiItemFactory.GetViewDiffItem <ToolStripMenuItem>(_revision.GetDiffSource())); Items.Add(GuiItemFactory.GetViewTreeItem <ToolStripMenuItem>(_revision)); Items.Add(GuiItemFactory.GetSavePatchItem <ToolStripMenuItem>(_revision)); Items.Add(GuiItemFactory.GetArchiveItem <ToolStripMenuItem>(_revision)); Items.Add(new ToolStripSeparator()); Items.Add(GuiItemFactory.GetCheckoutRevisionItem <ToolStripMenuItem>(_revision, "{0}")); Items.Add(GuiItemFactory.GetResetHeadHereItem <ToolStripMenuItem>(_revision)); Items.Add(GuiItemFactory.GetRebaseHeadHereItem <ToolStripMenuItem>(_revision)); Items.Add(GuiItemFactory.GetRevertItem <ToolStripMenuItem>(_revision)); Items.Add(GuiItemFactory.GetCherryPickItem <ToolStripMenuItem>(_revision, "{0}")); Items.Add(new ToolStripSeparator()); // copy to clipboard section var item = new ToolStripMenuItem(Resources.StrCopyToClipboard); item.DropDownItems.Add(GuiItemFactory.GetCopyHashToClipboardItem <ToolStripMenuItem>(Resources.StrHash, revision.HashString)); item.DropDownItems.Add(GuiItemFactory.GetCopyHashToClipboardItem <ToolStripMenuItem>(Resources.StrTreeHash, revision.TreeHashString)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrSubject, revision.Subject)); if (!string.IsNullOrEmpty(revision.Body)) { item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrBody, revision.Body)); } if (revision.Committer != revision.Author) { item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrCommitter, revision.Committer.Name)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrCommitterEmail, revision.Committer.Email)); } item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrAuthor, revision.Author.Name)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrAuthorEmail, revision.Author.Email)); item.DropDownItems.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrPatch, () => Encoding.UTF8.GetString(revision.FormatPatch()))); Items.Add(item); Items.Add(new ToolStripSeparator()); Items.Add(GuiItemFactory.GetCreateBranchItem <ToolStripMenuItem>(_revision)); var branches = _revision.References.GetAllBranches(); if (branches.Count != 0) { if (branches.Count == 1) { foreach (var branch in branches) { Items.Add(GuiItemFactory.GetRemoveBranchItem <ToolStripMenuItem>(branch, "{0} '{1}'")); } } else { var submenu = new ToolStripMenuItem(Resources.StrRemoveBranch); foreach (var branch in branches) { submenu.DropDownItems.Add(GuiItemFactory.GetRemoveBranchItem <ToolStripMenuItem>(branch, "{1}")); } Items.Add(submenu); } } Items.Add(GuiItemFactory.GetCreateTagItem <ToolStripMenuItem>(_revision)); var tags = _revision.References.GetTags(); if (tags.Count != 0) { if (tags.Count == 1) { foreach (var tag in tags) { Items.Add(GuiItemFactory.GetRemoveTagItem <ToolStripMenuItem>(tag, "{0} '{1}'")); } } else { var submenu = new ToolStripMenuItem(Resources.StrRemoveTag); foreach (var tag in tags) { submenu.DropDownItems.Add(GuiItemFactory.GetRemoveTagItem <ToolStripMenuItem>(tag, "{1}")); } Items.Add(submenu); } } /* * Items.Add(new ToolStripSeparator()); // notes section * * Items.Add(GuiItemFactory.GetAddNoteItem<ToolStripMenuItem>(_revision)); */ }
private void OnContextMenuRequested(object sender, ItemContextMenuRequestEventArgs e) { var vm = ViewModel as TreeViewModel; var rts = vm != null ? vm.TreeSource : null; if (rts != null) { var item = ((ITreeItemListItem)e.Item); var file = item.TreeItem as TreeFile; if (file != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetExtractAndOpenFileItem <ToolStripMenuItem>(DataSource.Data, file.RelativePath), GuiItemFactory.GetExtractAndOpenFileWithItem <ToolStripMenuItem>(DataSource.Data, file.RelativePath), GuiItemFactory.GetSaveAsItem <ToolStripMenuItem>(DataSource.Data, file.RelativePath), new ToolStripSeparator(), new ToolStripMenuItem(Resources.StrCopyToClipboard, null, new ToolStripItem[] { GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFileName, file.Name), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrRelativePath, file.RelativePath), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFullPath, file.FullPath), }), new ToolStripSeparator(), GuiItemFactory.GetBlameItem <ToolStripMenuItem>(rts.Revision, file), GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(rts.Revision, file), new ToolStripSeparator(), GuiItemFactory.GetCheckoutPathItem <ToolStripMenuItem>(rts.Revision, file), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; e.OverrideDefaultMenu = true; return; } var directory = item.TreeItem as TreeDirectory; if (directory != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { new ToolStripMenuItem(Resources.StrOpen, null, (s, args) => e.Item.Activate()), GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(rts.Revision, directory), new ToolStripSeparator(), GuiItemFactory.GetCheckoutPathItem <ToolStripMenuItem>(rts.Revision, directory), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; e.OverrideDefaultMenu = true; return; } var commit = ((ITreeItemListItem)e.Item).TreeItem as TreeCommit; if (commit != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(rts.Revision, commit), new ToolStripSeparator(), new ToolStripMenuItem(Resources.StrCopyToClipboard, null, new ToolStripItem[] { GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrName, commit.Name), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrRelativePath, commit.RelativePath), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFullPath, commit.FullPath), }), new ToolStripSeparator(), GuiItemFactory.GetCheckoutPathItem <ToolStripMenuItem>(rts.Revision, commit), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; e.OverrideDefaultMenu = true; return; } } }
private void OnItemContextMenuRequested(object sender, ItemContextMenuRequestEventArgs e) { var item = e.Item as ITreeItemListItem; if (item != null) { var file = item.TreeItem as TreeFile; if (file != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>(Resources.StrOpen, null, file.FullPath), GuiItemFactory.GetOpenUrlWithItem <ToolStripMenuItem>(Resources.StrOpenWith.AddEllipsis(), null, file.FullPath), GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>(Resources.StrOpenContainingFolder, null, Path.GetDirectoryName(file.FullPath)), new ToolStripSeparator(), new ToolStripMenuItem(Resources.StrCopyToClipboard, null, new ToolStripItem[] { GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFileName, file.Name), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrRelativePath, file.RelativePath), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFullPath, file.FullPath), }), new ToolStripSeparator(), GuiItemFactory.GetBlameItem <ToolStripMenuItem>(Repository.Head, file.RelativePath), GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(Repository.Head, file.RelativePath), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; return; } var directory = item.TreeItem as TreeDirectory; if (directory != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>(Resources.StrOpenInWindowsExplorer, null, directory.FullPath), GuiItemFactory.GetOpenCmdAtItem <ToolStripMenuItem>(Resources.StrOpenCommandLine, null, directory.FullPath), }); if (e.Item.Items.Count != 0) { menu.Items.AddRange( new ToolStripItem[] { new ToolStripSeparator(), GuiItemFactory.GetExpandAllItem <ToolStripMenuItem>(e.Item), GuiItemFactory.GetCollapseAllItem <ToolStripMenuItem>(e.Item), }); } menu.Items.AddRange( new ToolStripItem[] { new ToolStripSeparator(), GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(Repository.Head, directory.RelativePath + "/"), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; return; } var commit = item.TreeItem as TreeCommit; if (commit != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetOpenAppItem <ToolStripMenuItem>( Resources.StrOpenWithGitter, null, Application.ExecutablePath, commit.FullPath.SurroundWithDoubleQuotes()), GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>(Resources.StrOpenInWindowsExplorer, null, commit.FullPath), GuiItemFactory.GetOpenCmdAtItem <ToolStripMenuItem>(Resources.StrOpenCommandLine, null, commit.FullPath), new ToolStripSeparator(), GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(Repository.Head, commit.RelativePath), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; return; } } }
protected override void OnMouseDown(int x, int y, MouseButtons button) { switch (button) { case MouseButtons.Left: { var htr = HitTest(x, y); if (htr.Line != -1) { if (_selOrigin == -1 || Control.ModifierKeys != Keys.Shift) { _selOrigin = htr.Line; SetSelection(htr.Line); } else { SetSelection(_selOrigin, htr.Line); } _selecting = true; } else { DropSelection(); } } break; case MouseButtons.Right: { var htr = HitTest(x, y); if (htr.Line != -1) { if (htr.Line < _selStart || htr.Line > _selEnd) { _selOrigin = htr.Line; SetSelection(htr.Line); } var menu = new ContextMenuStrip(); var lines = GetSelectedLines(); menu.Items.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>( Resources.StrCopyToClipboard, () => LinesToString(lines))); bool sameCommit = true; for (int i = 1; i < lines.Length; ++i) { if (lines[i].Commit != lines[0].Commit) { sameCommit = false; break; } } if (sameCommit) { var commit = lines[0].Commit; menu.Items.Add(new ToolStripSeparator()); menu.Items.Add(GuiItemFactory.GetCopyHashToClipboardItem <ToolStripMenuItem>(Resources.StrHash, commit.Hash.ToString())); menu.Items.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrSummary, commit.Summary)); menu.Items.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrAuthor, commit.Author)); if (commit.Author != commit.Committer) { menu.Items.Add(GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrCommitter, commit.Committer)); } } Utility.MarkDropDownForAutoDispose(menu); ShowContextMenu(menu, x, y); } else { DropSelection(); } } break; } base.OnMouseDown(x, y, button); }