public DiffBinding(IDiffSource diffSource, DiffViewer diffViewer, DiffOptions diffOptions) { Verify.Argument.IsNotNull(diffSource, "diffSource"); Verify.Argument.IsNotNull(diffViewer, "diffViewer"); Verify.Argument.IsNotNull(diffOptions, "diffOptions"); _diffSource = diffSource; _diffViewer = diffViewer; _diffOptions = diffOptions; _allDiffPanels = new List <FileDiffPanel>(); _progressPanel = new FlowProgressPanel(); Progress = _progressPanel.ProgressMonitor; }
protected override void DetachViewModel(object viewModel) { if (viewModel is DiffViewModel vm) { DiffBinding = null; if (_diffSource != null) { _diffSource.Updated -= OnDiffSourceUpdated; _diffSource.Dispose(); _diffSource = null; } UpdateText(); } base.DetachViewModel(viewModel); }
public SplitDiffBinding(IDiffSource diffSource, DiffViewer diffViewerHeaders, DiffViewer diffViewerFiles, DiffOptions diffOptions) { Verify.Argument.IsNotNull(diffSource, nameof(diffSource)); Verify.Argument.IsNotNull(diffViewerHeaders, nameof(diffViewerHeaders)); Verify.Argument.IsNotNull(diffViewerFiles, nameof(diffViewerFiles)); Verify.Argument.IsNotNull(diffOptions, nameof(diffOptions)); _diffSource = diffSource; _diffViewerHeaders = diffViewerHeaders; _diffViewerFiles = diffViewerFiles; _diffOptions = diffOptions; _allDiffPanels = new List <FileDiffPanel>(); _progressPanel = new FlowProgressPanel(); Progress = _progressPanel.ProgressMonitor; }
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), })); }
protected void ShowContextualDiffView(IDiffSource diffSource) { WorkingEnvironment.ViewDockService.ShowView(Guids.ContextualDiffViewGuid, new DiffViewModel(diffSource, null), false); }
protected void ShowDiffView(IDiffSource diffSource) { WorkingEnvironment.ViewDockService.ShowView(Guids.DiffViewGuid, new DiffViewModel(diffSource, null)); }
protected override void DetachViewModel(object viewModel) { var vm = viewModel as DiffViewModel; if(vm != null) { DiffBinding = null; if(_diffSource != null) { _diffSource.Updated -= OnDiffSourceUpdated; _diffSource.Dispose(); _diffSource = null; } UpdateText(); } base.DetachViewModel(viewModel); }
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 DiffViewModel(IDiffSource diffSource, DiffOptions diffOptions) { DiffSource = diffSource; DiffOptions = diffOptions; }