53
public Toolbar CommandBar {
60
53
ListStore logstore = new ListStore (typeof (Revision));
61
54
FileTreeView treeviewFiles;
62
55
TreeStore changedpathstore;
63
Gtk.ToolButton revertButton, revertToButton;
56
Gtk.Button revertButton, revertToButton;
64
57
SearchEntry searchEntry;
65
58
string currentFilter;
122
115
this.info = info;
123
116
if (info.Document != null)
124
117
this.preselectFile = info.Item.Path;
119
var separator = new HeaderBox ();
120
separator.SetMargins (1, 0, 0, 0);
121
separator.HeightRequest = 4;
122
separator.ShowAll ();
126
revertButton = new Gtk.ToolButton (new Gtk.Image ("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString ("Revert changes from this revision"));
127
revertButton.IsImportant = true;
124
hpaned1 = hpaned1.ReplaceWithWidget (new HPanedThin (), true);
125
vpaned1 = vpaned1.ReplaceWithWidget (new VPanedThin () { HandleWidget = separator }, true);
127
revertButton = new DocumentToolButton ("vc-revert-command", GettextCatalog.GetString ("Revert changes from this revision"));
128
128
// revertButton.Sensitive = false;
129
129
revertButton.Clicked += new EventHandler (RevertRevisionClicked);
130
CommandBar.Insert (revertButton, -1);
132
revertToButton = new Gtk.ToolButton (new Gtk.Image ("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString ("Revert to this revision"));
133
revertToButton.IsImportant = true;
131
revertToButton = new DocumentToolButton ("vc-revert-command", GettextCatalog.GetString ("Revert to this revision"));
134
132
// revertToButton.Sensitive = false;
135
133
revertToButton.Clicked += new EventHandler (RevertToRevisionClicked);
136
CommandBar.Insert (revertToButton, -1);
138
Gtk.ToolItem item = new Gtk.ToolItem ();
139
Gtk.HBox a = new Gtk.HBox ();
141
135
searchEntry = new SearchEntry ();
142
136
searchEntry.WidthRequest = 200;
143
137
searchEntry.ForceFilterButtonVisible = true;
145
139
searchEntry.Changed += HandleSearchEntryFilterChanged;
146
140
searchEntry.Ready = true;
147
141
searchEntry.Show ();
148
a.PackEnd (searchEntry, false, false, 0);
149
CommandBar.Insert (item, -1);
150
((Gtk.Toolbar.ToolbarChild)CommandBar[item]).Expand = true;
152
CommandBar.ShowAll ();
154
143
messageRenderer.Ellipsize = Pango.EllipsizeMode.End;
155
144
TreeViewColumn colRevMessage = new TreeViewColumn ();
156
145
colRevMessage.Title = GettextCatalog.GetString ("Message");
235
224
labelAuthor.Text = "";
236
225
labelDate.Text = "";
237
226
labelRevision.Text = "";
228
vbox2.Remove (scrolledwindow1);
229
HeaderBox tb = new HeaderBox ();
231
tb.SetMargins (1, 0, 0, 0);
232
tb.ShowTopShadow = true;
234
tb.SetPadding (8, 8, 8, 8);
235
tb.UseChildBackgroundColor = true;
236
tb.Add (scrolledwindow1);
237
vbox2.PackStart (tb, true, true, 0);
240
protected override void OnRealized ()
243
var c = new HslColor (Style.Base (StateType.Normal));
245
commitBox.ModifyBg (StateType.Normal, c);
247
var tcol = new Gdk.Color (255, 251, 242);
248
textviewDetails.ModifyBase (StateType.Normal, tcol);
249
scrolledwindow1.ModifyBase (StateType.Normal, tcol);
252
internal void SetToolbar (DocumentToolbar toolbar)
254
toolbar.Add (revertButton);
255
toolbar.Add (revertToButton);
257
Gtk.HBox a = new Gtk.HBox ();
258
a.PackEnd (searchEntry, false, false, 0);
259
toolbar.Add (a, true);
308
332
void HandleTreeviewFilesTestExpandRow (object o, TestExpandRowArgs args)
310
string[] diff = changedpathstore.GetValue (args.Iter, colDiff) as string[];
315
335
if (changedpathstore.IterChildren (out iter, args.Iter)) {
336
string[] diff = changedpathstore.GetValue (iter, colDiff) as string[];
316
340
string path = (string)changedpathstore .GetValue (args.Iter, colPath);
317
341
changedpathstore.SetValue (iter, colDiff, new string[] { GettextCatalog.GetString ("Loading data...") });
318
342
var rev = SelectedRevision;
341
var changedDocument = new Mono.TextEditor.TextDocument (text);
342
if (prevRev == null) {
343
lines = new string[changedDocument.LineCount];
344
for (int i = 0; i < changedDocument.LineCount; i++) {
345
lines[i] = "+ " + changedDocument.GetLineText (i + 1).TrimEnd ('\r','\n');
365
// Indicator that the file was binary
367
lines = new [] { " Binary files differ" };
349
string prevRevisionText = "";
351
prevRevisionText = info.Repository.GetTextAtRevision (path, prevRev);
352
} catch (Exception e) {
353
// The file did not exist at this point in time, so just treat it as empty
369
var changedDocument = new Mono.TextEditor.TextDocument (text);
370
if (prevRev == null) {
371
lines = new string[changedDocument.LineCount];
372
for (int i = 0; i < changedDocument.LineCount; i++) {
373
lines[i] = "+ " + changedDocument.GetLineText (i + 1).TrimEnd ('\r','\n');
376
string prevRevisionText = "";
378
prevRevisionText = info.Repository.GetTextAtRevision (path, prevRev);
379
} catch (Exception e) {
380
// The file did not exist at this point in time, so just treat it as empty
383
var originalDocument = new Mono.TextEditor.TextDocument (prevRevisionText);
384
originalDocument.FileName = "Revision " + prevRev.ToString ();
385
changedDocument.FileName = "Revision " + rev.ToString ();
386
lines = Mono.TextEditor.Utils.Diff.GetDiffString (originalDocument, changedDocument).Split ('\n');
356
var originalDocument = new Mono.TextEditor.TextDocument (prevRevisionText);
357
originalDocument.FileName = "Revision " + prevRev.ToString ();
358
changedDocument.FileName = "Revision " + rev.ToString ();
359
lines = Mono.TextEditor.Utils.Diff.GetDiffString (originalDocument, changedDocument).Split ('\n');
361
389
Application.Invoke (delegate {
362
390
changedpathstore.SetValue (iter, colDiff, lines);
473
501
if (img.LoadOperation.IsCompleted)
474
502
renderer.Pixbuf = img.Pixbuf;
504
renderer.Pixbuf = null;
476
505
img.LoadOperation.Completed += delegate {
477
506
Gtk.Application.Invoke (delegate {
478
507
if (logstore.IterIsValid (iter))
588
617
labelRevision.Text = GettextCatalog.GetString ("revision: {0}", rev);
589
618
textviewDetails.Buffer.Text = d.Message;
592
621
treeviewFiles.Selection.SelectIter (selectIter);
622
treeviewFiles.ExpandRow (treeviewFiles.Model.GetPath (selectIter), true);
595
626
void UpdateHistory ()