Exemplo n.º 1
0
        async void HandleTreeviewFilesDiffLineActivated(object sender, EventArgs e)
        {
            TreePath[] paths = treeviewFiles.Selection.GetSelectedRows();

            if (paths.Length != 1)
            {
                return;
            }

            TreeIter iter;

            changedpathstore.GetIter(out iter, paths[0]);

            string fileName = (string)changedpathstore.GetValue(iter, colPath);
            int    line     = diffRenderer.GetSelectedLine(paths[0]);

            if (line == -1)
            {
                line = 1;
            }

            var proj = IdeApp.Workspace.GetProjectsContainingFile(fileName).FirstOrDefault();
            var doc  = await IdeApp.Workbench.OpenDocument(fileName, proj, line, 0, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);

            doc?.GetContent <VersionControlDocumentController> ()?.ShowDiffView(SelectedRevision.GetPrevious(), SelectedRevision, line);
        }
Exemplo n.º 2
0
        void HandleTreeviewFilesDiffLineActivated(object sender, EventArgs e)
        {
            TreePath[] paths = treeviewFiles.Selection.GetSelectedRows();

            if (paths.Length != 1)
            {
                return;
            }

            TreeIter iter;

            changedpathstore.GetIter(out iter, paths[0]);

            string fileName = (string)changedpathstore.GetValue(iter, colPath);
            int    line     = diffRenderer.GetSelectedLine(paths[0]);
            var    doc      = IdeApp.Workbench.OpenDocument(fileName, line, 0, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
            int    i        = 1;

            foreach (var content in doc.Window.SubViewContents)
            {
                DiffView diffView = content as DiffView;
                if (diffView != null)
                {
                    doc.Window.SwitchView(i);
                    diffView.ComparisonWidget.info.RunAfterUpdate(delegate {
                        diffView.ComparisonWidget.SetRevision(diffView.ComparisonWidget.OriginalEditor, SelectedRevision.GetPrevious());
                        diffView.ComparisonWidget.SetRevision(diffView.ComparisonWidget.DiffEditor, SelectedRevision);

                        diffView.ComparisonWidget.DiffEditor.Caret.Location = new Mono.TextEditor.DocumentLocation(line, 1);
                        diffView.ComparisonWidget.DiffEditor.CenterToCaret();
                    });
                    break;
                }
                i++;
            }
        }