Exemplo n.º 1
0
        public FormDiff(
            GitUICommands commands,
            ObjectId baseId, ObjectId headId,
            string baseCommitDisplayStr, string headCommitDisplayStr)
            : base(commands)
        {
            _baseCommitDisplayStr = baseCommitDisplayStr;
            _headCommitDisplayStr = headCommitDisplayStr;

            InitializeComponent();

            btnSwap.AdaptImageLightness();

            InitializeComplete();

            _toolTipControl.SetToolTip(btnAnotherBaseBranch, _anotherBranchTooltip.Text);
            _toolTipControl.SetToolTip(btnAnotherHeadBranch, _anotherBranchTooltip.Text);
            _toolTipControl.SetToolTip(btnAnotherBaseCommit, _anotherCommitTooltip.Text);
            _toolTipControl.SetToolTip(btnAnotherHeadCommit, _anotherCommitTooltip.Text);
            _toolTipControl.SetToolTip(btnSwap, _btnSwapTooltip.Text);

            _baseRevision = new GitRevision(baseId);
            _headRevision = new GitRevision(headId);

            ObjectId mergeBase;

            if (_baseRevision.ObjectId.IsArtificial || _headRevision.ObjectId.IsArtificial)
            {
                mergeBase = null;
            }
            else
            {
                mergeBase = Module.GetMergeBase(_baseRevision.ObjectId, _headRevision.ObjectId);
            }

            _mergeBase = mergeBase != null ? new GitRevision(mergeBase) : null;
            ckCompareToMergeBase.Text    = $"{_ckCompareToMergeBase} ({_mergeBase?.ObjectId.ToShortString()})";
            ckCompareToMergeBase.Enabled = _mergeBase != null;

            _fullPathResolver                  = new FullPathResolver(() => Module.WorkingDir);
            _findFilePredicateProvider         = new FindFilePredicateProvider();
            _revisionTester                    = new GitRevisionTester(_fullPathResolver);
            _revisionDiffContextMenuController = new FileStatusListContextMenuController();

            lblBaseCommit.BackColor = AppColor.DiffRemoved.GetThemeColor();
            lblHeadCommit.BackColor = AppColor.DiffAdded.GetThemeColor();

            DiffFiles.ContextMenuStrip          = DiffContextMenu;
            DiffFiles.SelectedIndexChanged     += delegate { ShowSelectedFileDiff(); };
            DiffText.ExtraDiffArgumentsChanged += delegate { ShowSelectedFileDiff(); };
            DiffText.TopScrollReached          += FileViewer_TopScrollReached;
            DiffText.BottomScrollReached       += FileViewer_BottomScrollReached;
            Load += delegate { PopulateDiffFiles(); };
        }
 public RevisionDiffControl()
 {
     InitializeComponent();
     DiffFiles.GroupByRevision = true;
     InitializeComplete();
     HotkeysEnabled                     = true;
     _fullPathResolver                  = new FullPathResolver(() => Module.WorkingDir);
     _findFilePredicateProvider         = new FindFilePredicateProvider();
     _gitRevisionTester                 = new GitRevisionTester(_fullPathResolver);
     _revisionDiffContextMenuController = new FileStatusListContextMenuController();
 }
Exemplo n.º 3
0
 public RevisionDiffControl()
 {
     InitializeComponent();
     DiffFiles.GroupByRevision = true;
     InitializeComplete();
     HotkeysEnabled                     = true;
     _fullPathResolver                  = new FullPathResolver(() => Module.WorkingDir);
     _findFilePredicateProvider         = new FindFilePredicateProvider();
     _gitRevisionTester                 = new GitRevisionTester(_fullPathResolver);
     _revisionDiffContextMenuController = new FileStatusListContextMenuController();
     _rememberFileContextMenuController = new RememberFileContextMenuController();
     DiffText.TopScrollReached         += FileViewer_TopScrollReached;
     DiffText.BottomScrollReached      += FileViewer_BottomScrollReached;
 }
Exemplo n.º 4
0
        public FileStatusList()
        {
            InitializeComponent();
            CreateOpenSubmoduleMenuItem();
            Translate();
            FilterVisible = false;

            SelectFirstItemOnSetItems     = true;
            FileStatusListView.MouseMove += FileStatusListView_MouseMove;
            FileStatusListView.MouseDown += FileStatusListView_MouseDown;

            if (_images == null)
            {
                _images = new ImageList
                {
                    ImageSize = DpiUtil.Scale(new Size(16, 16)), // Scale ImageSize and images scale automatically
                    Images    =
                    {
                        Resources.Removed,                            // 0
                        Resources.Added,                              // 1
                        Resources.Modified,                           // 2
                        Resources.Renamed,                            // 3
                        Resources.Copied,                             // 4
                        Resources.IconSubmoduleDirty,                 // 5
                        Resources.IconSubmoduleRevisionUp,            // 6
                        Resources.IconSubmoduleRevisionUpDirty,       // 7
                        Resources.IconSubmoduleRevisionDown,          // 8
                        Resources.IconSubmoduleRevisionDownDirty,     // 9
                        Resources.IconSubmoduleRevisionSemiUp,        // 10
                        Resources.IconSubmoduleRevisionSemiUpDirty,   // 11
                        Resources.IconSubmoduleRevisionSemiDown,      // 12
                        Resources.IconSubmoduleRevisionSemiDownDirty, // 13
                        Resources.IconFileStatusUnknown               // 14
                    }
                };
            }

            FileStatusListView.SmallImageList = _images;
            FileStatusListView.LargeImageList = _images;

            HandleVisibility_NoFilesLabel_FilterComboBox(filesPresent: true);
            Controls.SetChildIndex(NoFiles, 0);
            NoFiles.Font = new Font(SystemFonts.MessageBoxFont, FontStyle.Italic);

            _filter           = new Regex(".*");
            _fullPathResolver = new FullPathResolver(() => Module.WorkingDir);
            _revisionTester   = new GitRevisionTester(_fullPathResolver);
        }
Exemplo n.º 5
0
        public FormDiff(
            GitUICommands commands, bool firstParentIsValid,
            ObjectId baseId, ObjectId headId,
            string baseCommitDisplayStr, string headCommitDisplayStr)
            : base(commands)
        {
            _baseCommitDisplayStr = baseCommitDisplayStr;
            _headCommitDisplayStr = headCommitDisplayStr;
            _firstParentIsValid   = firstParentIsValid;

            InitializeComponent();
            InitializeComplete();

            _toolTipControl.SetToolTip(btnAnotherBaseBranch, _anotherBranchTooltip.Text);
            _toolTipControl.SetToolTip(btnAnotherHeadBranch, _anotherBranchTooltip.Text);
            _toolTipControl.SetToolTip(btnAnotherBaseCommit, _anotherCommitTooltip.Text);
            _toolTipControl.SetToolTip(btnAnotherHeadCommit, _anotherCommitTooltip.Text);
            _toolTipControl.SetToolTip(btnSwap, _btnSwapTooltip.Text);

            if (!IsUICommandsInitialized)
            {
                // UICommands is not initialized in translation unit test.
                return;
            }

            _baseRevision                      = new GitRevision(baseId);
            _headRevision                      = new GitRevision(headId);
            _mergeBase                         = new GitRevision(Module.GetMergeBase(_baseRevision.ObjectId, _headRevision.ObjectId));
            ckCompareToMergeBase.Text         += $" ({_mergeBase?.ObjectId.ToShortString()})";
            _fullPathResolver                  = new FullPathResolver(() => Module.WorkingDir);
            _findFilePredicateProvider         = new FindFilePredicateProvider();
            _revisionTester                    = new GitRevisionTester(_fullPathResolver);
            _revisionDiffContextMenuController = new FileStatusListContextMenuController();

            lblBaseCommit.BackColor = AppSettings.DiffRemovedColor;
            lblHeadCommit.BackColor = AppSettings.DiffAddedColor;

            DiffFiles.ContextMenuStrip          = DiffContextMenu;
            DiffFiles.SelectedIndexChanged     += delegate { ShowSelectedFileDiff(); };
            DiffText.ExtraDiffArgumentsChanged += delegate { ShowSelectedFileDiff(); };
            Load += delegate { PopulateDiffFiles(); };
        }
Exemplo n.º 6
0
        public FileStatusList()
        {
            InitializeComponent();
            CreateOpenSubmoduleMenuItem();
            Translate();
            FilterVisible = false;

            SelectFirstItemOnSetItems = true;

            FileStatusListView.SmallImageList = CreateImageList();
            FileStatusListView.LargeImageList = CreateImageList();

            HandleVisibility_NoFilesLabel_FilterComboBox(filesPresent: true);
            Controls.SetChildIndex(NoFiles, 0);
            NoFiles.Font = new Font(SystemFonts.MessageBoxFont, FontStyle.Italic);

            _filter           = new Regex(".*");
            _fullPathResolver = new FullPathResolver(() => Module.WorkingDir);
            _revisionTester   = new GitRevisionTester(_fullPathResolver);
        }
Exemplo n.º 7
0
        public FileStatusList()
        {
            InitializeComponent();
            CreateOpenSubmoduleMenuItem();
            Translate();
            FilterVisible = false;

            SelectFirstItemOnSetItems     = true;
            FileStatusListView.MouseMove += FileStatusListView_MouseMove;
            FileStatusListView.MouseDown += FileStatusListView_MouseDown;
            if (_images == null)
            {
                _images = new ImageList();
                _images.Images.Add(Resources.Removed);                            // 0
                _images.Images.Add(Resources.Added);                              // 1
                _images.Images.Add(Resources.Modified);                           // 2
                _images.Images.Add(Resources.Renamed);                            // 3
                _images.Images.Add(Resources.Copied);                             // 4
                _images.Images.Add(Resources.IconSubmoduleDirty);                 // 5
                _images.Images.Add(Resources.IconSubmoduleRevisionUp);            // 6
                _images.Images.Add(Resources.IconSubmoduleRevisionUpDirty);       // 7
                _images.Images.Add(Resources.IconSubmoduleRevisionDown);          // 8
                _images.Images.Add(Resources.IconSubmoduleRevisionDownDirty);     // 9
                _images.Images.Add(Resources.IconSubmoduleRevisionSemiUp);        // 10
                _images.Images.Add(Resources.IconSubmoduleRevisionSemiUpDirty);   // 11
                _images.Images.Add(Resources.IconSubmoduleRevisionSemiDown);      // 12
                _images.Images.Add(Resources.IconSubmoduleRevisionSemiDownDirty); // 13
                _images.Images.Add(Resources.IconFileStatusUnknown);              // 14
            }

            FileStatusListView.SmallImageList = _images;
            FileStatusListView.LargeImageList = _images;

            HandleVisibility_NoFilesLabel_FilterComboBox(filesPresent: true);
            Controls.SetChildIndex(NoFiles, 0);
            NoFiles.Font = new Font(SystemFonts.MessageBoxFont, FontStyle.Italic);

            _filter           = new Regex(".*");
            _fullPathResolver = new FullPathResolver(() => Module.WorkingDir);
            _revisionTester   = new GitRevisionTester(_fullPathResolver);
        }
Exemplo n.º 8
0
        public FormDiff(GitUICommands commands, RevisionGrid revisionGrid, string baseCommitSha,
                        string headCommitSha, string baseCommitDisplayStr, string headCommitDisplayStr) : base(commands)
        {
            _revisionGrid         = revisionGrid;
            _baseCommitDisplayStr = baseCommitDisplayStr;
            _headCommitDisplayStr = headCommitDisplayStr;

            InitializeComponent();
            Translate();

            _toolTipControl.SetToolTip(btnAnotherBaseBranch, _anotherBranchTooltip.Text);
            _toolTipControl.SetToolTip(btnAnotherHeadBranch, _anotherBranchTooltip.Text);
            _toolTipControl.SetToolTip(btnAnotherBaseCommit, _anotherCommitTooltip.Text);
            _toolTipControl.SetToolTip(btnAnotherHeadCommit, _anotherCommitTooltip.Text);
            _toolTipControl.SetToolTip(btnSwap, _btnSwapTooltip.Text);

            if (!IsUICommandsInitialized)
            {
                // UICommands is not initialized in translation unit test.
                return;
            }

            _baseRevision                      = new GitRevision(baseCommitSha);
            _headRevision                      = new GitRevision(headCommitSha);
            _mergeBase                         = new GitRevision(Module.GetMergeBase(_baseRevision.Guid, _headRevision.Guid));
            _fullPathResolver                  = new FullPathResolver(() => Module.WorkingDir);
            _findFilePredicateProvider         = new FindFilePredicateProvider();
            _revisionTester                    = new GitRevisionTester(_fullPathResolver);
            _revisionDiffContextMenuController = new FileStatusListContextMenuController();

            lblBaseCommit.BackColor = AppSettings.DiffRemovedColor;
            lblHeadCommit.BackColor = AppSettings.DiffAddedColor;

            DiffFiles.SelectedIndexChanged += DiffFiles_SelectedIndexChanged;

            DiffFiles.ContextMenuStrip = DiffContextMenu;

            Load += (sender, args) => PopulateDiffFiles();
            DiffText.ExtraDiffArgumentsChanged += DiffTextOnExtraDiffArgumentsChanged;
        }
 public RevisionDiffController(IGitRevisionTester revisionTester)
 {
     _revisionTester = revisionTester;
 }
        public void Setup()
        {
            _tester = Substitute.For <IGitRevisionTester>();

            _controller = new RevisionDiffController(_tester);
        }
Exemplo n.º 11
0
        public FileStatusList()
        {
            InitializeComponent();
            InitialiseFiltering();
            CreateOpenSubmoduleMenuItem();
            lblSplitter.Height = DpiUtil.Scale(1);
            InitializeComplete();
            FilterVisible = false;

            SelectFirstItemOnSetItems = true;

            FileStatusListView.SmallImageList      = CreateImageList();
            FileStatusListView.LargeImageList      = CreateImageList();
            FileStatusListView.AllowCollapseGroups = true;

            HandleVisibility_NoFilesLabel_FilterComboBox(filesPresent: true);
            Controls.SetChildIndex(NoFiles, 0);
            NoFiles.Font = new Font(NoFiles.Font, FontStyle.Italic);

            _fullPathResolver = new FullPathResolver(() => Module.WorkingDir);
            _revisionTester   = new GitRevisionTester(_fullPathResolver);

            ImageList CreateImageList()
            {
                const int rowHeight = 18;

                return(new ImageList
                {
                    ImageSize = DpiUtil.Scale(new Size(16, rowHeight)), // Scale ImageSize and images scale automatically
                    Images =
                    {
                        ScaleHeight(Images.FileStatusRemoved),              // 0
                        ScaleHeight(Images.FileStatusAdded),                // 1
                        ScaleHeight(Images.FileStatusModified),             // 2
                        ScaleHeight(Images.FileStatusRenamed),              // 3
                        ScaleHeight(Images.FileStatusCopied),               // 4
                        ScaleHeight(Images.SubmoduleDirty),                 // 5
                        ScaleHeight(Images.SubmoduleRevisionUp),            // 6
                        ScaleHeight(Images.SubmoduleRevisionUpDirty),       // 7
                        ScaleHeight(Images.SubmoduleRevisionDown),          // 8
                        ScaleHeight(Images.SubmoduleRevisionDownDirty),     // 9
                        ScaleHeight(Images.SubmoduleRevisionSemiUp),        // 10
                        ScaleHeight(Images.SubmoduleRevisionSemiUpDirty),   // 11
                        ScaleHeight(Images.SubmoduleRevisionSemiDown),      // 12
                        ScaleHeight(Images.SubmoduleRevisionSemiDownDirty), // 13
                        ScaleHeight(Images.FileStatusUnknown)               // 14
                    }
                });

                Bitmap ScaleHeight(Bitmap input)
                {
                    Debug.Assert(input.Height < rowHeight, "Can only increase row height");
                    var scaled = new Bitmap(input.Width, rowHeight, input.PixelFormat);

                    using (var g = Graphics.FromImage(scaled))
                    {
                        g.DrawImageUnscaled(input, 0, (rowHeight - input.Height) / 2);
                    }

                    return(scaled);
                }
            }
        }
 public void Setup()
 {
     _tester = new GitRevisionTester();
 }