Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.4rc3, 0.4rc4, and 0.4

history: diff to selected changeset without marking

Changeset 8d798c2c60b3

Parent 32d5795057b1

by TK Soh

Changes to one file · Browse files at 8d798c2c60b3 Showing diff from parent 32d5795057b1 Diff from another changeset...

Change 1 of 8 Show Entire File hggtk/​history.py Stacked
 
25
26
27
 
 
 
 
 
28
29
30
 
298
299
300
301
302
303
304
305
306
307
308
309
 
312
313
314
315
316
317
318
319
320
 
325
326
327
 
 
 
 
 
 
 
328
329
330
 
331
332
333
 
340
341
342
343
344
 
 
 
345
346
347
 
422
423
424
425
426
 
427
428
429
 
541
542
543
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
544
545
546
 
550
551
552
553
554
555
556
557
558
559
560
 
 
 
 
 
561
562
563
 
25
26
27
28
29
30
31
32
33
34
35
 
303
304
305
 
 
 
 
 
 
306
307
308
 
311
312
313
 
 
 
314
315
316
 
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
 
344
345
346
 
 
347
348
349
350
351
352
 
427
428
429
 
 
430
431
432
433
 
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
 
571
572
573
 
574
 
575
576
577
578
579
580
581
582
583
584
585
586
587
@@ -25,6 +25,11 @@
 from hglib import toutf  import gtklib   +def create_menu(label, callback): + menuitem = gtk.MenuItem(label, True) + menuitem.connect('activate', callback) + menuitem.set_border_width(1) + return menuitem    class GLog(GDialog):   """GTK+ based dialog for displaying repository logs @@ -298,12 +303,6 @@
  self.graphview.refresh(False, [], self.opts)     def tree_context_menu(self): - def create_menu(label, callback): - menuitem = gtk.MenuItem(label, True) - menuitem.connect('activate', callback) - menuitem.set_border_width(1) - return menuitem -   _menu = gtk.Menu()   _menu.append(create_menu('di_splay', self._show_status))   _menu.append(create_menu('_checkout', self._checkout)) @@ -312,9 +311,6 @@
  _menu.append(create_menu('_export patch', self._export_patch))   _menu.append(create_menu('e_mail patch', self._email_patch))   _menu.append(create_menu('add/remove _tag', self._add_tag)) - _menu.append(create_menu('mark rev for diff', self._mark_rev)) - self._cmenu_diff = create_menu('_diff with mark', self._diff_revs) - _menu.append(self._cmenu_diff)   _menu.append(create_menu('backout revision', self._backout_rev))     # need mq extension for strip command @@ -325,9 +321,17 @@
  _menu.show_all()   return _menu   + def tree_diff_context_menu(self): + _menu = gtk.Menu() + _menu.append(create_menu('_diff to selected', self._diff_revs)) + + _menu.show_all() + return _menu +   def get_body(self):   self._filter_dialog = None   self._menu = self.tree_context_menu() + self._menu2 = self.tree_diff_context_menu()     self.tree_frame = gtk.Frame()   self.tree_frame.set_shadow_type(gtk.SHADOW_ETCHED_IN) @@ -340,8 +344,9 @@
  self.graphview.connect('revision-selected', self.selection_changed)   self.graphview.connect('revisions-loaded', self.revisions_loaded)   - self.tree.connect('button-release-event', self._tree_button_release) - self.tree.connect('popup-menu', self._tree_popup_menu) + #self.tree.connect('button-release-event', self._tree_button_release) + self.tree.connect('button-press-event', self._tree_button_press) + #self.tree.connect('popup-menu', self._tree_popup_menu)   self.tree.connect('row-activated', self._tree_row_act)   #self.tree.modify_font(pango.FontDescription(self.fontlist))   @@ -422,8 +427,7 @@
  def _diff_revs(self, menuitem):   from status import GStatus   from gtools import cmdtable - rev0 = self.graphview.get_mark_rev() - rev1 = self.currow[treemodel.REVID] + rev0, rev1 = self._revs   statopts = self.merge_opts(cmdtable['gstatus|gst'][1],   ('include', 'exclude', 'git'))   statopts['rev'] = ['%u:%u' % (rev0, rev1)] @@ -541,6 +545,23 @@
  self._tree_popup_menu(widget, event.button, event.time)   return False   + def _tree_button_press(self, widget, event): + if event.button == 3 and not (event.state & (gtk.gdk.SHIFT_MASK | + gtk.gdk.CONTROL_MASK)): + crow = widget.get_path_at_pos(int(event.x), int(event.y))[0] + (model, pathlist) = widget.get_selection().get_selected_rows() + if pathlist == []: + return False + srow = pathlist[0] + if srow == crow: + self._tree_popup_menu(widget, event.button, event.time) + else: + self._revs = (int(model[srow][treemodel.REVID]), + int(model[crow][treemodel.REVID])) + self._tree_popup_menu_diff(widget, event.button, event.time) + return True + return False +   def _tree_popup_menu(self, treeview, button=0, time=0) :   selrev = self.currow[treemodel.REVID]   @@ -550,14 +571,17 @@
  can_merge = selrev not in parents and \   len(self.repo.heads()) > 1 and \   len(parents) < 2 - can_diff = self.graphview.get_mark_rev() is not None   self._cmenu_merge.set_sensitive(can_merge) - self._cmenu_diff.set_sensitive(can_diff)     # display the context menu   self._menu.popup(None, None, None, button, time)   return True   + def _tree_popup_menu_diff(self, treeview, button=0, time=0): + # display the context menu + self._menu2.popup(None, None, None, button, time) + return True +   def _tree_row_act(self, tree, path, column) :   """Default action is the first entry in the context menu   """