/// <summary>Create <see cref="FileDiffPanel"/>.</summary> public FileDiffPanel(Repository repository, DiffFile diffFile, DiffType diffType) { Verify.Argument.IsNotNull(diffFile, "diffFile"); _repository = repository; _diffType = diffType; _diffFile = diffFile; if(_diffFile.HunkCount != 0) { _digits = GetDecimalDigits(_diffFile.MaxLineNum); _columnWidth = _lineHeaderWidth = _digits * CellSize.Width; _lineHeaderWidth *= _diffFile[0].ColumnCount; } else { _digits = 0; _columnWidth = 0; _lineHeaderWidth = 0; } _lineHover = new TrackingService(OnLineHoverChanged); _selStart = -1; _selEnd = -1; _selOrigin = -1; }
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), })); }
public DiffFileEventArgs(DiffFile diffFile) { _diffFile = diffFile; }
public DiffFileContextMenuRequestedEventArgs(DiffFile file) { _file = file; }
public FileItem(DiffFile file) { Verify.Argument.IsNotNull(file, "file"); _file = file; if(file.Status == FileStatus.Removed) { _text = file.SourceFile; } else { _text = file.TargetFile; } _icon = GraphicsUtility.QueryIcon(_text); switch(file.Status) { case FileStatus.Removed: _overlay = CachedResources.Bitmaps["ImgOverlayDel"]; break; case FileStatus.Added: _overlay = CachedResources.Bitmaps["ImgOverlayAdd"]; break; case FileStatus.Modified: _overlay = CachedResources.Bitmaps["ImgOverlayEdit"]; break; case FileStatus.Unmerged: _overlay = CachedResources.Bitmaps["ImgOverlayConflict"]; break; case FileStatus.Copied: _overlay = CachedResources.Bitmaps["ImgOverlayCopy"]; _text = GetRenamedOrCopiedText(file.SourceFile, file.TargetFile); break; case FileStatus.Renamed: _overlay = CachedResources.Bitmaps["ImgOverlayRename"]; _text = GetRenamedOrCopiedText(file.SourceFile, file.TargetFile); break; case FileStatus.ModeChanged: _overlay = CachedResources.Bitmaps["ImgOverlayChmod"]; break; } }
private void OnFileNavigationRequested(DiffFile diffFile) { var handler = FileNavigationRequested; if(handler != null) handler(this, new DiffFileEventArgs(diffFile)); }
public DiffResult(DiffFile oldFile, DiffFile modifiedFile) { this.File = oldFile; this.ModifiedFile = modifiedFile; }
public DiffFileMenu(IDiffSource diffSource, DiffFile diffFile) { Verify.Argument.IsNotNull(diffSource, nameof(diffSource)); Verify.Argument.IsNotNull(diffFile, nameof(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), })); }