public void Load (VersionControlDocumentInfo info) { base.info = info; // SetLocal calls create diff & sets UpdateDiff handler -> should be connected after diff is created SetLocal (MainEditor.GetTextEditorData ()); Show (); }
public PatchWidget (ComparisonView comparisonView, VersionControlDocumentInfo info) { this.Build (); diffEditor = new Mono.TextEditor.TextEditor (); diffEditor.Document.MimeType = "text/x-diff"; diffEditor.Options.FontName = info.Document.Editor.Options.FontName; diffEditor.Options.ColorScheme = info.Document.Editor.Options.ColorScheme; diffEditor.Options.ShowFoldMargin = false; diffEditor.Options.ShowIconMargin = false; diffEditor.Options.ShowTabs = true; diffEditor.Options.ShowSpaces = true; diffEditor.Options.ShowInvalidLines = info.Document.Editor.Options.ShowInvalidLines; diffEditor.Document.ReadOnly = true; scrolledwindow1.Child = diffEditor; diffEditor.ShowAll (); using (var writer = new StringWriter ()) { UnifiedDiff.WriteUnifiedDiff (comparisonView.Diff, writer, System.IO.Path.GetFileName (info.Item.Path) + " (repository)", System.IO.Path.GetFileName (info.Item.Path) + " (working copy)", 3); diffEditor.Document.Text = writer.ToString (); } buttonSave.Clicked += delegate { var dlg = new OpenFileDialog (GettextCatalog.GetString ("Save as..."), FileChooserAction.Save) { TransientFor = IdeApp.Workbench.RootWindow }; if (!dlg.Run ()) return; File.WriteAllText (dlg.SelectedFile, diffEditor.Document.Text); }; }
public DiffWidget (VersionControlDocumentInfo info, bool viewOnly = false) { this.info = info; this.Build (); comparisonWidget = new ComparisonWidget (viewOnly); buttonNext = new DocumentToolButton (Gtk.Stock.GoUp, GettextCatalog.GetString ("Previous Change")); buttonPrev = new DocumentToolButton (Gtk.Stock.GoDown, GettextCatalog.GetString ("Next Change")); labelOverview = new Gtk.Label () { Xalign = 0 }; buttonDiff = new Gtk.Button (GettextCatalog.GetString ("Unified Diff")); this.buttonNext.Clicked += (sender, args) => ComparisonWidget.GotoNext (); this.buttonPrev.Clicked += (sender, args) => ComparisonWidget.GotoPrev (); notebook1.Page = 0; vboxComparisonView.PackStart (comparisonWidget, true, true, 0); comparisonWidget.Show (); comparisonWidget.DiffChanged += delegate { labelOverview.Markup = LabelText; SetButtonSensitivity (); }; comparisonWidget.SetVersionControlInfo (info); this.buttonDiff.Clicked += HandleButtonDiffhandleClicked; diffTextEditor = new global::Mono.TextEditor.MonoTextEditor (new Mono.TextEditor.TextDocument (), CommonTextEditorOptions.Instance); diffTextEditor.Document.MimeType = "text/x-diff"; diffTextEditor.Options.ShowFoldMargin = false; diffTextEditor.Options.ShowIconMargin = false; diffTextEditor.Options.DrawIndentationMarkers = PropertyService.Get ("DrawIndentationMarkers", false); diffTextEditor.Document.ReadOnly = true; scrolledwindow1.Child = diffTextEditor; diffTextEditor.Show (); SetButtonSensitivity (); }
public DiffWidget (VersionControlDocumentInfo info, bool viewOnly) { this.info = info; this.Build (); comparisonWidget = new MonoDevelop.VersionControl.Views.ComparisonWidget (viewOnly); fixed1.SetSizeRequest (16, 16); this.buttonNext.Clicked += (sender, args) => ComparisonWidget.GotoNext (); this.buttonPrev.Clicked += (sender, args) => ComparisonWidget.GotoPrev (); notebook1.Page = 0; vboxComparisonView.PackStart (comparisonWidget, true, true, 0); comparisonWidget.Show (); comparisonWidget.DiffChanged += delegate { labelOverview.Markup = LabelText; SetButtonSensitivity (); }; comparisonWidget.SetVersionControlInfo (info); this.buttonDiff.Clicked += HandleButtonDiffhandleClicked; diffTextEditor = new global::Mono.TextEditor.TextEditor (new Mono.TextEditor.Document (), new CommonTextEditorOptions ()); diffTextEditor.Document.MimeType = "text/x-diff"; diffTextEditor.Options.ShowFoldMargin = false; diffTextEditor.Options.ShowIconMargin = false; diffTextEditor.Document.ReadOnly = true; scrolledwindow1.Child = diffTextEditor; diffTextEditor.Show (); SetButtonSensitivity (); }
static void TryAttachView (Document document, VersionControlDocumentInfo info, string type) { var handler = AddinManager.GetExtensionObjects<IVersionControlViewHandler> (type) .FirstOrDefault (h => h.CanHandle (info.Item, info.Document)); if (handler != null) document.Window.AttachViewContent (handler.CreateView (info)); }
public DiffWidget (VersionControlDocumentInfo info) { this.info = info; this.Build (); fixed1.SetSizeRequest (16, 16); this.buttonNext.Clicked += (sender, args) => ComparisonWidget.GotoNext (); this.buttonPrev.Clicked += (sender, args) => ComparisonWidget.GotoPrev (); notebook1.Page = 0; comparisonWidget.DiffChanged += delegate { labelOverview.Markup = "<big>" + LabelText + "</big>"; SetButtonSensitivity (); }; comparisonWidget.SetVersionControlInfo (info); this.buttonDiff.Clicked += HandleButtonDiffhandleClicked; diffTextEditor = new global::Mono.TextEditor.TextEditor (); diffTextEditor.Document.MimeType = "text/x-diff"; diffTextEditor.Options.FontName = info.Document.Editor.Options.FontName; diffTextEditor.Options.ColorScheme = info.Document.Editor.Options.ColorScheme; diffTextEditor.Options.ShowFoldMargin = false; diffTextEditor.Options.ShowIconMargin = false; diffTextEditor.Options.ShowTabs = info.Document.Editor.Options.ShowTabs; diffTextEditor.Options.ShowSpaces = info.Document.Editor.Options.ShowSpaces; diffTextEditor.Options.ShowInvalidLines = info.Document.Editor.Options.ShowInvalidLines; diffTextEditor.Options.ShowInvalidLines = info.Document.Editor.Options.ShowInvalidLines; diffTextEditor.Document.ReadOnly = true; scrolledwindow1.Child = diffTextEditor; diffTextEditor.Show (); SetButtonSensitivity (); }
public DiffView (VersionControlDocumentInfo info, Revision baseRev, Revision toRev) : base (GettextCatalog.GetString ("Changes")) { this.info = info; widget = new DiffWidget (info); ComparisonWidget.SetRevision (ComparisonWidget.DiffEditor, baseRev); ComparisonWidget.SetRevision (ComparisonWidget.OriginalEditor, toRev); widget.ShowAll (); }
public DiffWidget (VersionControlDocumentInfo info, bool viewOnly) { this.info = info; this.Build (); comparisonWidget = new MonoDevelop.VersionControl.Views.ComparisonWidget (viewOnly); fixed1.SetSizeRequest (16, 16); this.buttonNext.Clicked += (sender, args) => ComparisonWidget.GotoNext (); this.buttonPrev.Clicked += (sender, args) => ComparisonWidget.GotoPrev (); notebook1.Page = 0; vboxComparisonView.PackStart (comparisonWidget, true, true, 0); comparisonWidget.Show (); comparisonWidget.DiffChanged += delegate { labelOverview.Markup = "<big>" + LabelText + "</big>"; SetButtonSensitivity (); }; comparisonWidget.SetVersionControlInfo (info); this.buttonDiff.Clicked += HandleButtonDiffhandleClicked; diffTextEditor = new global::Mono.TextEditor.TextEditor (); diffTextEditor.Document.MimeType = "text/x-diff"; if (info.Document != null) { diffTextEditor.Options.FontName = info.Document.Editor.Options.FontName; diffTextEditor.Options.ColorScheme = info.Document.Editor.Options.ColorScheme; diffTextEditor.Options.ShowTabs = info.Document.Editor.Options.ShowTabs; diffTextEditor.Options.ShowSpaces = info.Document.Editor.Options.ShowSpaces; diffTextEditor.Options.ShowInvalidLines = info.Document.Editor.Options.ShowInvalidLines; diffTextEditor.Options.ShowInvalidLines = info.Document.Editor.Options.ShowInvalidLines; } else { var options = MonoDevelop.SourceEditor.DefaultSourceEditorOptions.Instance; diffTextEditor.Options.FontName = options.FontName; diffTextEditor.Options.ColorScheme = options.ColorScheme; diffTextEditor.Options.ShowTabs = options.ShowTabs; diffTextEditor.Options.ShowSpaces = options.ShowSpaces; diffTextEditor.Options.ShowInvalidLines = options.ShowInvalidLines; diffTextEditor.Options.ShowInvalidLines = options.ShowInvalidLines; } diffTextEditor.Options.ShowFoldMargin = false; diffTextEditor.Options.ShowIconMargin = false; diffTextEditor.Document.ReadOnly = true; scrolledwindow1.Child = diffTextEditor; diffTextEditor.Show (); SetButtonSensitivity (); }
public LogView (string filepath, bool isDirectory, Revision [] history, Repository vc) : base (Path.GetFileName (filepath) + " Log") { try { this.vinfo = vc.GetVersionInfo (filepath, VersionInfoQueryFlags.IgnoreCache); } catch (Exception ex) { MessageService.ShowError (GettextCatalog.GetString ("Version control command failed."), ex); } // Widget setup VersionControlDocumentInfo info =new VersionControlDocumentInfo (null, null, vc); info.History = history; info.Item.VersionInfo = vinfo; var lw = new LogWidget (info); widget = lw; lw.History = history; }
public static void Show (VersionControlItemList items, Revision since) { foreach (VersionControlItem item in items) { if (!item.IsDirectory) { var document = IdeApp.Workbench.OpenDocument (item.Path, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer); if (document != null) { DiffView.AttachViewContents (document, item); document.Window.SwitchView (document.Window.FindView (typeof(LogView))); } else { VersionControlDocumentInfo info = new VersionControlDocumentInfo (null, item, item.Repository); LogView logView = new LogView (info); info.Document = IdeApp.Workbench.OpenDocument (logView, true); logView.Selected (); } } else if (item.VersionInfo.CanLog) { new Worker (item.Repository, item.Path, item.IsDirectory, since).Start (); } } }
public static bool Show (VersionControlItemList items, bool test) { if (test) return items.All (CanShow); foreach (var item in items) { var document = IdeApp.Workbench.OpenDocument (item.Path, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer); if (document != null) { document.Window.SwitchView (document.Window.FindView<ILogView> ()); } else { VersionControlDocumentInfo info = new VersionControlDocumentInfo (null, item, item.Repository); LogView logView = new LogView (info); info.Document = IdeApp.Workbench.OpenDocument (logView, true).PrimaryView; logView.Selected (); } } return true; }
static void HandleDocumentChanged (object sender, EventArgs e) { var document = Ide.IdeApp.Workbench.ActiveDocument; try { if (document == null || !document.IsFile || document.Window.FindView<ILogView> () >= 0) return; WorkspaceObject project = document.Project; if (project == null) { // Fix for broken .csproj and .sln files not being seen as having a project. foreach (var projItem in Ide.IdeApp.Workspace.GetAllItems<UnknownSolutionItem> ()) { if (projItem.FileName == document.FileName) { project = projItem; } } if (project == null) return; } var repo = VersionControlService.GetRepository (project); if (repo == null) return; var versionInfo = repo.GetVersionInfo (document.FileName, VersionInfoQueryFlags.IgnoreCache); if (!versionInfo.IsVersioned) return; var item = new VersionControlItem (repo, project, document.FileName, false, null); var vcInfo = new VersionControlDocumentInfo (document.PrimaryView, item, item.Repository); TryAttachView (document, vcInfo, DiffCommand.DiffViewHandlers); TryAttachView (document, vcInfo, BlameCommand.BlameViewHandlers); TryAttachView (document, vcInfo, LogCommand.LogViewHandlers); TryAttachView (document, vcInfo, MergeCommand.MergeViewHandlers); } catch (Exception ex) { // If a user is hitting this, it will show a dialog box every time they // switch to a document or open a document, so suppress the crash dialog // This bug *should* be fixed already, but it's hard to tell. LoggingService.LogInternalError (ex); } }
public static async Task<bool> Show (VersionControlItemList items, bool test) { if (test) return items.All (CanShow); foreach (var item in items) { Document document = null; if (!item.IsDirectory) document = await IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer); if (document != null) { document.Window.SwitchView (document.Window.FindView<ILogView> ()); } else { VersionControlDocumentInfo info = new VersionControlDocumentInfo (null, item, item.Repository); LogView logView = new LogView (info); info.Document = IdeApp.Workbench.OpenDocument (logView, true).PrimaryView; logView.Init (); } } return true; }
public LogWidget (VersionControlDocumentInfo info) { this.Build (); this.info = info; if (info.Document != null) this.preselectFile = info.Document.FileName; messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn (); colRevMessage.Title = GettextCatalog.GetString ("Message"); var graphRenderer = new RevisionGraphCellRenderer (); colRevMessage.PackStart (graphRenderer, false); colRevMessage.SetCellDataFunc (graphRenderer, GraphFunc); colRevMessage.PackStart (messageRenderer, true); colRevMessage.SetCellDataFunc (messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; treeviewLog.AppendColumn (colRevMessage); TreeViewColumn colRevDate = new TreeViewColumn (GettextCatalog.GetString ("Date"), textRenderer); colRevDate.SetCellDataFunc (textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn (colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn (GettextCatalog.GetString ("Author"), textRenderer); colRevAuthor.SetCellDataFunc (textRenderer, AuthorFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn (colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn (GettextCatalog.GetString ("Revision"), textRenderer); colRevNum.SetCellDataFunc (textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn (colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView (); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll (); changedpathstore = new TreeStore (typeof(Gdk.Pixbuf), typeof (string), // icon/file name typeof(Gdk.Pixbuf), typeof (string), // icon/operation typeof (string), // path typeof (string), // revision path (invisible) typeof (string[]) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn (); var crp = new CellRendererPixbuf (); var crt = new CellRendererText (); colChangedFile.Title = GettextCatalog.GetString ("File"); colChangedFile.PackStart (crp, false); colChangedFile.PackStart (crt, true); colChangedFile.AddAttribute (crp, "pixbuf", 2); colChangedFile.AddAttribute (crt, "text", 3); treeviewFiles.AppendColumn (colChangedFile); TreeViewColumn colOperation = new TreeViewColumn (); colOperation.Title = GettextCatalog.GetString ("Operation"); colOperation.PackStart (crp, false); colOperation.PackStart (crt, true); colOperation.AddAttribute (crp, "pixbuf", 0); colOperation.AddAttribute (crt, "text", 1); treeviewFiles.AppendColumn (colOperation); TreeViewColumn colChangedPath = new TreeViewColumn (); colChangedPath.Title = GettextCatalog.GetString ("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart (diffRenderer, true); colChangedPath.SetCellDataFunc (diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn (colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; }
public BlameView (VersionControlDocumentInfo info) : base ("Blame") { this.info = info; widget = new BlameWidget (info); }
public IBlameView CreateView (VersionControlDocumentInfo info) { return new BlameView (info); }
protected override void OnSetVersionControlInfo(VersionControlDocumentInfo info) { info.Updated += OnInfoUpdated; base.OnSetVersionControlInfo(info); }
public LogView(VersionControlDocumentInfo info) : base("Log") { this.info = info; this.vc = info.Item.Repository; this.filepath = info.Item.Path; info.Updated += delegate { history = this.info.History; vinfo = this.info.VersionInfo; ShowHistory(); }; // Widget setup VBox box = new VBox(false, 6); widget = box; // Create the toolbar commandbar = new Toolbar(); commandbar.ToolbarStyle = Gtk.ToolbarStyle.BothHoriz; commandbar.IconSize = Gtk.IconSize.Menu; box.PackStart(commandbar, false, false, 0); if (vinfo != null) { Gtk.ToolButton button = new Gtk.ToolButton(new Gtk.Image("vc-diff", Gtk.IconSize.Menu), GettextCatalog.GetString("View Changes")); button.IsImportant = true; button.Clicked += new EventHandler(DiffButtonClicked); commandbar.Insert(button, -1); button = new Gtk.ToolButton(new Gtk.Image(Gtk.Stock.Open, Gtk.IconSize.Menu), GettextCatalog.GetString("View File")); button.IsImportant = true; button.Clicked += new EventHandler(ViewTextButtonClicked); commandbar.Insert(button, -1); } revertButton = new Gtk.ToolButton(new Gtk.Image("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString("Revert changes from this revision")); revertButton.IsImportant = true; revertButton.Sensitive = false; revertButton.Clicked += new EventHandler(RevertRevisionClicked); commandbar.Insert(revertButton, -1); revertToButton = new Gtk.ToolButton(new Gtk.Image("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString("Revert to this revision")); revertToButton.IsImportant = true; revertToButton.Sensitive = false; revertToButton.Clicked += new EventHandler(RevertToRevisionClicked); commandbar.Insert(revertToButton, -1); // A paned with two trees Gtk.VPaned paned = new Gtk.VPaned(); box.PackStart(paned, true, true, 0); // Create the log list loglist = new TreeView(); ScrolledWindow loglistscroll = new ScrolledWindow(); loglistscroll.ShadowType = Gtk.ShadowType.In; loglistscroll.Add(loglist); loglistscroll.HscrollbarPolicy = PolicyType.Automatic; loglistscroll.VscrollbarPolicy = PolicyType.Automatic; paned.Add1(loglistscroll); ((Paned.PanedChild)paned [loglistscroll]).Resize = true; TreeView changedPaths = new TreeView(); ScrolledWindow changedPathsScroll = new ScrolledWindow(); changedPathsScroll.ShadowType = Gtk.ShadowType.In; changedPathsScroll.HscrollbarPolicy = PolicyType.Automatic; changedPathsScroll.VscrollbarPolicy = PolicyType.Automatic; changedPathsScroll.Add(changedPaths); paned.Add2(changedPathsScroll); ((Paned.PanedChild)paned [changedPathsScroll]).Resize = false; widget.ShowAll(); // Revision list setup CellRendererText textRenderer = new CellRendererText(); textRenderer.Yalign = 0; TreeViewColumn colRevNum = new TreeViewColumn(GettextCatalog.GetString("Revision"), textRenderer, "text", 0); TreeViewColumn colRevDate = new TreeViewColumn(GettextCatalog.GetString("Date"), textRenderer, "text", 1); TreeViewColumn colRevAuthor = new TreeViewColumn(GettextCatalog.GetString("Author"), textRenderer, "text", 2); TreeViewColumn colRevMessage = new TreeViewColumn(GettextCatalog.GetString("Message"), textRenderer, "text", 3); loglist.AppendColumn(colRevNum); loglist.AppendColumn(colRevDate); loglist.AppendColumn(colRevAuthor); loglist.AppendColumn(colRevMessage); logstore = new ListStore(typeof(string), typeof(string), typeof(string), typeof(string)); loglist.Model = logstore; // Changed paths list setup changedpathstore = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(Gdk.Pixbuf), typeof(string)); changedPaths.Model = changedpathstore; TreeViewColumn colOperation = new TreeViewColumn(); CellRendererText crt = new CellRendererText(); var crp = new CellRendererPixbuf(); colOperation.Title = GettextCatalog.GetString("Operation"); colOperation.PackStart(crp, false); colOperation.PackStart(crt, true); colOperation.AddAttribute(crp, "pixbuf", 0); colOperation.AddAttribute(crt, "text", 1); changedPaths.AppendColumn(colOperation); TreeViewColumn colChangedPath = new TreeViewColumn(); crp = new CellRendererPixbuf(); crt = new CellRendererText(); colChangedPath.Title = GettextCatalog.GetString("File Path"); colChangedPath.PackStart(crp, false); colChangedPath.PackStart(crt, true); colChangedPath.AddAttribute(crp, "pixbuf", 2); colChangedPath.AddAttribute(crt, "text", 3); changedPaths.AppendColumn(colChangedPath); loglist.Selection.Changed += new EventHandler(TreeSelectionChanged); }
public ComparisonWidget (VersionControlDocumentInfo info) { this.info = info; vAdjustment = new Adjustment (0, 0, 0, 0, 0, 0); vAdjustment.Changed += HandleAdjustmentChanged; leftVAdjustment = new Adjustment (0, 0, 0, 0, 0, 0); Connect (leftVAdjustment, vAdjustment); rightVAdjustment = new Adjustment (0, 0, 0, 0, 0, 0); Connect (rightVAdjustment, vAdjustment); vScrollBar = new VScrollbar (vAdjustment); AddChild (vScrollBar); vScrollBar.Hide (); hAdjustment = new Adjustment (0, 0, 0, 0, 0, 0); hAdjustment.Changed += HandleAdjustmentChanged; leftHAdjustment = new Adjustment (0, 0, 0, 0, 0, 0); Connect (leftHAdjustment, hAdjustment); rightHAdjustment = new Adjustment (0, 0, 0, 0, 0, 0); Connect (rightHAdjustment, hAdjustment); leftHScrollBar = new HScrollbar (hAdjustment); AddChild (leftHScrollBar); rightHScrollBar = new HScrollbar (hAdjustment); AddChild (rightHScrollBar); originalEditor = new TextEditor (); originalEditor.Caret.PositionChanged += CaretPositionChanged; originalEditor.FocusInEvent += EditorFocusIn; AddChild (originalEditor); originalEditor.SetScrollAdjustments (leftHAdjustment, leftVAdjustment); originalComboBox = new DropDownBox (); originalComboBox.WindowRequestFunc = CreateComboBoxSelector; originalComboBox.Text = "Local"; originalComboBox.Tag = originalEditor; AddChild (originalComboBox); diffEditor = new TextEditor (); diffEditor.Caret.PositionChanged += CaretPositionChanged; diffEditor.FocusInEvent += EditorFocusIn; AddChild (diffEditor); diffEditor.Document.ReadOnly = true; diffEditor.SetScrollAdjustments (leftHAdjustment, leftVAdjustment); this.vAdjustment.ValueChanged += delegate { middleArea.QueueDraw (); }; diffComboBox = new DropDownBox (); diffComboBox.WindowRequestFunc = CreateComboBoxSelector; diffComboBox.Text = "Base"; diffComboBox.Tag = diffEditor; AddChild (diffComboBox); overview = new OverviewRenderer (this); AddChild (overview); middleArea = new MiddleArea (this); AddChild (middleArea); prev = new Button (); prev.Add (new Arrow (ArrowType.Up, ShadowType.None)); AddChild (prev); prev.ShowAll (); prev.Clicked += delegate { if (this.Diff == null) return; originalEditor.GrabFocus (); int line = originalEditor.Caret.Line; int max = -1, searched = -1; foreach (Diff.Hunk hunk in this.Diff) { if (hunk.Same) continue; max = System.Math.Max (hunk.Right.Start, max); if (hunk.Right.Start < line) searched = System.Math.Max (hunk.Right.Start, searched); } if (max >= 0) { originalEditor.Caret.Line = searched < 0 ? max : searched; originalEditor.CenterToCaret (); } }; next = new Button (); next.BorderWidth = 0; next.Add (new Arrow (ArrowType.Down, ShadowType.None)); next.Clicked += delegate { if (this.Diff == null) return; originalEditor.GrabFocus (); int line = originalEditor.Caret.Line; int min = Int32.MaxValue, searched = Int32.MaxValue; foreach (Diff.Hunk hunk in this.Diff) { if (hunk.Same) continue; min = System.Math.Min (hunk.Right.Start, min); if (hunk.Right.Start > line) searched = System.Math.Min (hunk.Right.Start, searched); } if (min < Int32.MaxValue) { originalEditor.Caret.Line = searched == Int32.MaxValue ? min : searched; originalEditor.CenterToCaret (); } }; AddChild (next); next.ShowAll (); this.DoubleBuffered = true; originalEditor.ExposeEvent += HandleLeftEditorExposeEvent; diffEditor.ExposeEvent += HandleRightEditorExposeEvent; info.Document.Editor.Document.TextReplaced += HandleInfoDocumentTextEditorDataDocumentTextReplaced; }
public IMergeView CreateView (VersionControlDocumentInfo info) { return new MergeView (info); }
public DiffView(VersionControlDocumentInfo info) : base(GettextCatalog.GetString("Changes"), GettextCatalog.GetString("Shows the differences in the code between the current code and the version in the repository")) { this.info = info; }
public LogWidget(VersionControlDocumentInfo info) { this.Build(); this.info = info; if (info.Document != null) { this.preselectFile = info.Item.Path; } var separator = new HeaderBox(); separator.SetMargins(1, 0, 0, 0); separator.HeightRequest = 4; separator.ShowAll(); hpaned1 = hpaned1.ReplaceWithWidget(new HPanedThin(), true); vpaned1 = vpaned1.ReplaceWithWidget(new VPanedThin() { HandleWidget = separator }, true); revertButton = new DocumentToolButton("vc-revert-command", GettextCatalog.GetString("Revert changes from this revision")); revertButton.GetNativeWidget <Gtk.Widget> ().Sensitive = false; revertButton.Clicked += new EventHandler(RevertRevisionClicked); revertToButton = new DocumentToolButton("vc-revert-command", GettextCatalog.GetString("Revert to this revision")); revertToButton.GetNativeWidget <Gtk.Widget> ().Sensitive = false; revertToButton.Clicked += new EventHandler(RevertToRevisionClicked); refreshButton = new DocumentToolButton(Gtk.Stock.Refresh, GettextCatalog.GetString("Refresh")); refreshButton.Clicked += new EventHandler(RefreshClicked); searchEntry = new SearchEntry(); searchEntry.WidthRequest = 200; searchEntry.ForceFilterButtonVisible = true; searchEntry.EmptyMessage = GettextCatalog.GetString("Search"); searchEntry.Changed += HandleSearchEntryFilterChanged; searchEntry.Ready = true; searchEntry.Show(); messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn(); colRevMessage.Title = GettextCatalog.GetString("Message"); var graphRenderer = new RevisionGraphCellRenderer(); colRevMessage.PackStart(graphRenderer, false); colRevMessage.SetCellDataFunc(graphRenderer, GraphFunc); colRevMessage.PackStart(messageRenderer, true); colRevMessage.SetCellDataFunc(messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; treeviewLog.AppendColumn(colRevMessage); colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; TreeViewColumn colRevDate = new TreeViewColumn(GettextCatalog.GetString("Date"), textRenderer); colRevDate.SetCellDataFunc(textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn(colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn(); colRevAuthor.Title = GettextCatalog.GetString("Author"); colRevAuthor.PackStart(pixRenderer, false); colRevAuthor.PackStart(textRenderer, true); colRevAuthor.SetCellDataFunc(textRenderer, AuthorFunc); colRevAuthor.SetCellDataFunc(pixRenderer, AuthorIconFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn(colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn(GettextCatalog.GetString("Revision"), textRenderer); colRevNum.SetCellDataFunc(textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn(colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView(); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll(); changedpathstore = new TreeStore(typeof(Xwt.Drawing.Image), typeof(string), // icon/file name typeof(Xwt.Drawing.Image), typeof(string), // icon/operation typeof(string), // path typeof(string), // revision path (invisible) typeof(string []) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn(); var crp = new CellRendererImage(); var crt = new CellRendererText(); colChangedFile.Title = GettextCatalog.GetString("File"); colChangedFile.PackStart(crp, false); colChangedFile.PackStart(crt, true); colChangedFile.AddAttribute(crp, "image", 2); colChangedFile.AddAttribute(crt, "text", 3); treeviewFiles.AppendColumn(colChangedFile); TreeViewColumn colOperation = new TreeViewColumn(); colOperation.Title = GettextCatalog.GetString("Operation"); colOperation.PackStart(crp, false); colOperation.PackStart(crt, true); colOperation.AddAttribute(crp, "image", 0); colOperation.AddAttribute(crt, "text", 1); treeviewFiles.AppendColumn(colOperation); TreeViewColumn colChangedPath = new TreeViewColumn(); colChangedPath.Title = GettextCatalog.GetString("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart(diffRenderer, true); colChangedPath.SetCellDataFunc(diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn(colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; textviewDetails.AddEvents((int)Gdk.EventMask.ButtonPressMask); textviewDetails.ButtonPressEvent += TextviewDetails_ButtonPressEvent; labelAuthor.Text = ""; labelDate.Text = ""; labelRevision.Text = ""; labelDate.AddEvents((int)Gdk.EventMask.ButtonPressMask); labelDate.ButtonPressEvent += LabelDate_ButtonPressEvent; labelAuthor.AddEvents((int)Gdk.EventMask.ButtonPressMask); labelAuthor.ButtonPressEvent += LabelAuthor_ButtonPressEvent; labelRevision.AddEvents((int)Gdk.EventMask.ButtonPressMask); labelRevision.ButtonPressEvent += LabelRevision_ButtonPressEvent; vbox2.Remove(scrolledwindow1); HeaderBox tb = new HeaderBox(); tb.Show(); tb.SetMargins(1, 0, 0, 0); tb.ShowTopShadow = true; tb.ShadowSize = 4; tb.SetPadding(8, 8, 8, 8); tb.UseChildBackgroundColor = true; tb.Add(scrolledwindow1); vbox2.PackStart(tb, true, true, 0); (Platform.IsMac ? Xwt.Toolkit.NativeEngine : Xwt.Toolkit.CurrentEngine).Invoke(() => { popupMenu = new Xwt.Menu(); var copyItem = new Xwt.MenuItem(GettextCatalog.GetString("Copy")); popupMenu.Items.Add(copyItem); copyItem.Clicked += (sender, e) => { var selectedText = GetSelectedText(); if (!string.IsNullOrEmpty(selectedText)) { LogView.CopyToClipboard(selectedText); } }; }); UpdateStyle(); Ide.Gui.Styles.Changed += HandleStylesChanged; }
public DiffView(VersionControlDocumentInfo info) : base(GettextCatalog.GetString("Changes")) { this.info = info; }
protected override void OnSetVersionControlInfo(VersionControlDocumentInfo info) { info.Updated += OnInfoUpdated; MainEditor.Document.IsReadOnly = false; base.OnSetVersionControlInfo(info); }
public LogView(VersionControlDocumentInfo info) : base(GettextCatalog.GetString("Log"), GettextCatalog.GetString("Shows the source control log for the current file")) { this.info = info; }
public LogWidget(VersionControlDocumentInfo info) { this.Build(); this.info = info; if (info.Document != null) { this.preselectFile = info.Item.Path; } revertButton = new Gtk.ToolButton(new Gtk.Image("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString("Revert changes from this revision")); revertButton.IsImportant = true; // revertButton.Sensitive = false; revertButton.Clicked += new EventHandler(RevertRevisionClicked); CommandBar.Insert(revertButton, -1); revertToButton = new Gtk.ToolButton(new Gtk.Image("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString("Revert to this revision")); revertToButton.IsImportant = true; // revertToButton.Sensitive = false; revertToButton.Clicked += new EventHandler(RevertToRevisionClicked); CommandBar.Insert(revertToButton, -1); Gtk.ToolItem item = new Gtk.ToolItem(); Gtk.HBox a = new Gtk.HBox(); item.Add(a); searchEntry = new SearchEntry(); searchEntry.WidthRequest = 200; searchEntry.ForceFilterButtonVisible = true; searchEntry.EmptyMessage = GettextCatalog.GetString("Search"); searchEntry.Changed += HandleSearchEntryFilterChanged; searchEntry.Ready = true; searchEntry.Show(); a.PackEnd(searchEntry, false, false, 0); CommandBar.Insert(item, -1); ((Gtk.Toolbar.ToolbarChild)CommandBar[item]).Expand = true; CommandBar.ShowAll(); messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn(); colRevMessage.Title = GettextCatalog.GetString("Message"); var graphRenderer = new RevisionGraphCellRenderer(); colRevMessage.PackStart(graphRenderer, false); colRevMessage.SetCellDataFunc(graphRenderer, GraphFunc); colRevMessage.PackStart(messageRenderer, true); colRevMessage.SetCellDataFunc(messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; treeviewLog.AppendColumn(colRevMessage); colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; TreeViewColumn colRevDate = new TreeViewColumn(GettextCatalog.GetString("Date"), textRenderer); colRevDate.SetCellDataFunc(textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn(colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn(); colRevAuthor.Title = GettextCatalog.GetString("Author"); colRevAuthor.PackStart(pixRenderer, false); colRevAuthor.PackStart(textRenderer, true); colRevAuthor.SetCellDataFunc(textRenderer, AuthorFunc); colRevAuthor.SetCellDataFunc(pixRenderer, AuthorIconFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn(colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn(GettextCatalog.GetString("Revision"), textRenderer); colRevNum.SetCellDataFunc(textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn(colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView(); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll(); changedpathstore = new TreeStore(typeof(Gdk.Pixbuf), typeof(string), // icon/file name typeof(Gdk.Pixbuf), typeof(string), // icon/operation typeof(string), // path typeof(string), // revision path (invisible) typeof(string[]) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn(); var crp = new CellRendererPixbuf(); var crt = new CellRendererText(); colChangedFile.Title = GettextCatalog.GetString("File"); colChangedFile.PackStart(crp, false); colChangedFile.PackStart(crt, true); colChangedFile.AddAttribute(crp, "pixbuf", 2); colChangedFile.AddAttribute(crt, "text", 3); treeviewFiles.AppendColumn(colChangedFile); TreeViewColumn colOperation = new TreeViewColumn(); colOperation.Title = GettextCatalog.GetString("Operation"); colOperation.PackStart(crp, false); colOperation.PackStart(crt, true); colOperation.AddAttribute(crp, "pixbuf", 0); colOperation.AddAttribute(crt, "text", 1); treeviewFiles.AppendColumn(colOperation); TreeViewColumn colChangedPath = new TreeViewColumn(); colChangedPath.Title = GettextCatalog.GetString("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart(diffRenderer, true); colChangedPath.SetCellDataFunc(diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn(colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; labelAuthor.Text = ""; labelDate.Text = ""; labelRevision.Text = ""; }
public DiffView(VersionControlDocumentInfo info) { this.info = info; }
public void SetVersionControlInfo (VersionControlDocumentInfo info) { this.info = info; var mimeType = DesktopService.GetMimeTypeForUri (info.Item.Path); foreach (var editor in editors) { editor.Document.IgnoreFoldings = true; editor.Document.MimeType = mimeType; editor.Document.ReadOnly = true; editor.Options.ShowFoldMargin = false; editor.Options.ShowIconMargin = false; } }
public MergeView(VersionControlDocumentInfo info) : base(GettextCatalog.GetString("Merge"), GettextCatalog.GetString("Shows the merge view for the current file")) { this.info = info; }
public LogWidget (VersionControlDocumentInfo info) { this.Build (); this.info = info; if (info.Document != null) this.preselectFile = info.Document.FileName; revertButton = new Gtk.ToolButton (new Gtk.Image ("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString ("Revert changes from this revision")); revertButton.IsImportant = true; // revertButton.Sensitive = false; revertButton.Clicked += new EventHandler (RevertRevisionClicked); CommandBar.Insert (revertButton, -1); revertToButton = new Gtk.ToolButton (new Gtk.Image ("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString ("Revert to this revision")); revertToButton.IsImportant = true; // revertToButton.Sensitive = false; revertToButton.Clicked += new EventHandler (RevertToRevisionClicked); CommandBar.Insert (revertToButton, -1); Gtk.ToolItem item = new Gtk.ToolItem (); Gtk.HBox a = new Gtk.HBox (); item.Add (a); searchEntry = new SearchEntry (); searchEntry.WidthRequest = 200; searchEntry.ForceFilterButtonVisible = true; searchEntry.EmptyMessage = GettextCatalog.GetString ("Search"); searchEntry.Changed += HandleSearchEntryFilterChanged; searchEntry.Ready = true; searchEntry.Show (); a.PackEnd (searchEntry, false, false, 0); CommandBar.Insert (item, -1); ((Gtk.Toolbar.ToolbarChild)CommandBar[item]).Expand = true; CommandBar.ShowAll (); messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn (); colRevMessage.Title = GettextCatalog.GetString ("Message"); var graphRenderer = new RevisionGraphCellRenderer (); colRevMessage.PackStart (graphRenderer, false); colRevMessage.SetCellDataFunc (graphRenderer, GraphFunc); colRevMessage.PackStart (messageRenderer, true); colRevMessage.SetCellDataFunc (messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; treeviewLog.AppendColumn (colRevMessage); colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; TreeViewColumn colRevDate = new TreeViewColumn (GettextCatalog.GetString ("Date"), textRenderer); colRevDate.SetCellDataFunc (textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn (colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn (); colRevAuthor.Title = GettextCatalog.GetString ("Author"); colRevAuthor.PackStart (pixRenderer, false); colRevAuthor.PackStart (textRenderer, true); colRevAuthor.SetCellDataFunc (textRenderer, AuthorFunc); colRevAuthor.SetCellDataFunc (pixRenderer, AuthorIconFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn (colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn (GettextCatalog.GetString ("Revision"), textRenderer); colRevNum.SetCellDataFunc (textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn (colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView (); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll (); changedpathstore = new TreeStore (typeof(Gdk.Pixbuf), typeof (string), // icon/file name typeof(Gdk.Pixbuf), typeof (string), // icon/operation typeof (string), // path typeof (string), // revision path (invisible) typeof (string[]) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn (); var crp = new CellRendererPixbuf (); var crt = new CellRendererText (); colChangedFile.Title = GettextCatalog.GetString ("File"); colChangedFile.PackStart (crp, false); colChangedFile.PackStart (crt, true); colChangedFile.AddAttribute (crp, "pixbuf", 2); colChangedFile.AddAttribute (crt, "text", 3); treeviewFiles.AppendColumn (colChangedFile); TreeViewColumn colOperation = new TreeViewColumn (); colOperation.Title = GettextCatalog.GetString ("Operation"); colOperation.PackStart (crp, false); colOperation.PackStart (crt, true); colOperation.AddAttribute (crp, "pixbuf", 0); colOperation.AddAttribute (crt, "text", 1); treeviewFiles.AppendColumn (colOperation); TreeViewColumn colChangedPath = new TreeViewColumn (); colChangedPath.Title = GettextCatalog.GetString ("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart (diffRenderer, true); colChangedPath.SetCellDataFunc (diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn (colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; labelAuthor.Text = ""; labelDate.Text = ""; labelRevision.Text = ""; }
public DiffView (VersionControlDocumentInfo info) : base ("Diff") { this.info = info; }
public DiffWidget (VersionControlDocumentInfo info) : this (info, false) { }
protected virtual void OnSetVersionControlInfo(VersionControlDocumentInfo info) { }
public static void AttachViewContents (Document document, VersionControlItem item) { IWorkbenchWindow window = document.Window; if (window.SubViewContents.Any (sub => sub is DiffView)) return; VersionControlDocumentInfo info = new VersionControlDocumentInfo (document, item); DiffView comparisonView = new DiffView (info); window.AttachViewContent (comparisonView); // window.AttachViewContent (new PatchView (comparisonView, info)); window.AttachViewContent (new BlameView (info)); window.AttachViewContent (new LogView (info)); if (info.VersionInfo != null && info.VersionInfo.Status == VersionStatus.Conflicted) window.AttachViewContent (new MergeView (info)); }
public MergeView(VersionControlDocumentInfo info) : base(GettextCatalog.GetString("Merge")) { this.info = info; }
public DiffView (VersionControlDocumentInfo info, Revision baseRev, Revision toRev) : base ("Diff") { this.info = info; widget = new DiffWidget (info); ComparisonWidget.OriginalEditor.Document.MimeType = ComparisonWidget.DiffEditor.Document.MimeType = info.Document.Editor.Document.MimeType; ComparisonWidget.OriginalEditor.Options.FontName = ComparisonWidget.DiffEditor.Options.FontName = info.Document.Editor.Options.FontName; ComparisonWidget.OriginalEditor.Options.ColorScheme = ComparisonWidget.DiffEditor.Options.ColorScheme = info.Document.Editor.Options.ColorScheme; ComparisonWidget.OriginalEditor.Options.ShowFoldMargin = ComparisonWidget.DiffEditor.Options.ShowFoldMargin = false; ComparisonWidget.OriginalEditor.Options.ShowIconMargin = ComparisonWidget.DiffEditor.Options.ShowIconMargin = false; ComparisonWidget.SetRevision (ComparisonWidget.DiffEditor, baseRev); ComparisonWidget.SetRevision (ComparisonWidget.OriginalEditor, toRev); widget.ShowAll (); }
public BlameWidget (VersionControlDocumentInfo info) { GtkWorkarounds.FixContainerLeak (this); this.info = info; var sourceEditor = info.Document.GetContent<MonoDevelop.SourceEditor.SourceEditorView> (); vAdjustment = new Adjustment (0, 0, 0, 0, 0, 0); vAdjustment.Changed += HandleAdjustmentChanged; vScrollBar = new VScrollbar (vAdjustment); AddChild (vScrollBar); hAdjustment = new Adjustment (0, 0, 0, 0, 0, 0); hAdjustment.Changed += HandleAdjustmentChanged; hScrollBar = new HScrollbar (hAdjustment); AddChild (hScrollBar); editor = new TextEditor (sourceEditor.TextEditor.Document, sourceEditor.TextEditor.Options); AddChild (editor); editor.SetScrollAdjustments (hAdjustment, vAdjustment); overview = new BlameRenderer (this); AddChild (overview); this.DoubleBuffered = true; editor.Painted += HandleEditorExposeEvent; editor.EditorOptionsChanged += delegate { overview.OptionsChanged (); }; editor.Caret.PositionChanged += ComparisonWidget.CaretPositionChanged; editor.FocusInEvent += ComparisonWidget.EditorFocusIn; editor.Document.Folded += delegate { QueueDraw (); }; editor.Document.FoldTreeUpdated += delegate { QueueDraw (); }; editor.DoPopupMenu = ShowPopup; Show (); }
public IDiffView CreateView (VersionControlDocumentInfo info) { return new DiffView (info); }
public MergeView (VersionControlDocumentInfo info) : base (GettextCatalog.GetString ("Merge")) { this.info = info; }
public LogWidget (VersionControlDocumentInfo info) { this.Build (); this.info = info; if (info.Document != null) this.preselectFile = info.Item.Path; var separator = new HeaderBox (); separator.SetMargins (1, 0, 0, 0); separator.HeightRequest = 4; separator.ShowAll (); hpaned1 = hpaned1.ReplaceWithWidget (new HPanedThin (), true); vpaned1 = vpaned1.ReplaceWithWidget (new VPanedThin () { HandleWidget = separator }, true); revertButton = new DocumentToolButton ("vc-revert-command", GettextCatalog.GetString ("Revert changes from this revision")); revertButton.GetNativeWidget<Gtk.Widget> ().Sensitive = false; revertButton.Clicked += new EventHandler (RevertRevisionClicked); revertToButton = new DocumentToolButton ("vc-revert-command", GettextCatalog.GetString ("Revert to this revision")); revertToButton.GetNativeWidget<Gtk.Widget> ().Sensitive = false; revertToButton.Clicked += new EventHandler (RevertToRevisionClicked); refreshButton = new DocumentToolButton (Gtk.Stock.Refresh, GettextCatalog.GetString ("Refresh")); refreshButton.Clicked += new EventHandler (RefreshClicked); searchEntry = new SearchEntry (); searchEntry.WidthRequest = 200; searchEntry.ForceFilterButtonVisible = true; searchEntry.EmptyMessage = GettextCatalog.GetString ("Search"); searchEntry.Changed += HandleSearchEntryFilterChanged; searchEntry.Ready = true; searchEntry.Show (); messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn (); colRevMessage.Title = GettextCatalog.GetString ("Message"); var graphRenderer = new RevisionGraphCellRenderer (); colRevMessage.PackStart (graphRenderer, false); colRevMessage.SetCellDataFunc (graphRenderer, GraphFunc); colRevMessage.PackStart (messageRenderer, true); colRevMessage.SetCellDataFunc (messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; treeviewLog.AppendColumn (colRevMessage); colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; TreeViewColumn colRevDate = new TreeViewColumn (GettextCatalog.GetString ("Date"), textRenderer); colRevDate.SetCellDataFunc (textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn (colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn (); colRevAuthor.Title = GettextCatalog.GetString ("Author"); colRevAuthor.PackStart (pixRenderer, false); colRevAuthor.PackStart (textRenderer, true); colRevAuthor.SetCellDataFunc (textRenderer, AuthorFunc); colRevAuthor.SetCellDataFunc (pixRenderer, AuthorIconFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn (colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn (GettextCatalog.GetString ("Revision"), textRenderer); colRevNum.SetCellDataFunc (textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn (colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView (); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll (); changedpathstore = new TreeStore (typeof(Xwt.Drawing.Image), typeof (string), // icon/file name typeof(Xwt.Drawing.Image), typeof (string), // icon/operation typeof (string), // path typeof (string), // revision path (invisible) typeof (string []) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn (); var crp = new CellRendererImage (); var crt = new CellRendererText (); colChangedFile.Title = GettextCatalog.GetString ("File"); colChangedFile.PackStart (crp, false); colChangedFile.PackStart (crt, true); colChangedFile.AddAttribute (crp, "image", 2); colChangedFile.AddAttribute (crt, "text", 3); treeviewFiles.AppendColumn (colChangedFile); TreeViewColumn colOperation = new TreeViewColumn (); colOperation.Title = GettextCatalog.GetString ("Operation"); colOperation.PackStart (crp, false); colOperation.PackStart (crt, true); colOperation.AddAttribute (crp, "image", 0); colOperation.AddAttribute (crt, "text", 1); treeviewFiles.AppendColumn (colOperation); TreeViewColumn colChangedPath = new TreeViewColumn (); colChangedPath.Title = GettextCatalog.GetString ("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart (diffRenderer, true); colChangedPath.SetCellDataFunc (diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn (colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; labelAuthor.Text = ""; labelDate.Text = ""; labelRevision.Text = ""; vbox2.Remove (scrolledwindow1); HeaderBox tb = new HeaderBox (); tb.Show (); tb.SetMargins (1, 0, 0, 0); tb.ShowTopShadow = true; tb.ShadowSize = 4; tb.SetPadding (8, 8, 8, 8); tb.UseChildBackgroundColor = true; tb.Add (scrolledwindow1); vbox2.PackStart (tb, true, true, 0); }
protected override void OnSetVersionControlInfo (VersionControlDocumentInfo info) { info.Updated += OnInfoUpdated; MainEditor.Document.ReadOnly = false; base.OnSetVersionControlInfo (info); }
public BlameWidget (VersionControlDocumentInfo info) { this.info = info; vAdjustment = new Adjustment (0, 0, 0, 0, 0, 0); vAdjustment.Changed += HandleAdjustmentChanged; vScrollBar = new VScrollbar (vAdjustment); AddChild (vScrollBar); hAdjustment = new Adjustment (0, 0, 0, 0, 0, 0); hAdjustment.Changed += HandleAdjustmentChanged; hScrollBar = new HScrollbar (hAdjustment); AddChild (hScrollBar); editor = new TextEditor (info.Document.Editor.Document, info.Document.Editor.Options); AddChild (editor); editor.SetScrollAdjustments (hAdjustment, vAdjustment); overview = new BlameRenderer (this); AddChild (overview); this.DoubleBuffered = true; editor.Painted += HandleEditorExposeEvent; editor.EditorOptionsChanged += delegate { overview.OptionsChanged (); }; editor.Caret.PositionChanged += ComparisonWidget.CaretPositionChanged; editor.FocusInEvent += ComparisonWidget.EditorFocusIn; editor.Document.Folded += delegate { QueueDraw (); }; editor.Document.FoldTreeUpdated += delegate { QueueDraw (); }; editor.ButtonPressEvent += OnPopupMenu; Show (); }
public BlameView(VersionControlDocumentInfo info) { this.info = info; }