Changeset 9cdeea94eada…
Parent cb075cbd8e07…
by
Changes to one file · Browse files at 9cdeea94eada Showing diff from parent cb075cbd8e07 Diff from another changeset...
|
@@ -14,7 +14,6 @@
from mercurial import cmdutil, util, patch, mdiff, error
-from tortoisehg.util.i18n import _
from tortoisehg.util import hglib, hgshelve
from tortoisehg.hgtk import gtklib
@@ -104,18 +103,8 @@ if getattr(dt, 'enable-grid-lines', None) is not None:
dt.set_property('enable-grid-lines', True)
+ dt.connect('row-activated', self.diff_tree_row_act)
dt.connect('copy-clipboard', self.copy_to_clipboard)
- dt.connect('popup-menu', self.tree_popup_menu)
- dt.connect('button-release-event', self.tree_button_release)
-
- toggle_cell = gtk.CellRendererToggle()
- toggle_cell.connect('toggled', self.select_toggle)
- toggle_cell.set_property('activatable', True)
-
- col0 = gtk.TreeViewColumn('', toggle_cell)
- col0.set_resizable(False)
- col0.set_cell_data_func(toggle_cell, self.selected_cell_func)
- dt.append_column(col0)
cell = gtk.CellRendererText()
diffcol = gtk.TreeViewColumn('diff', cell)
@@ -140,20 +129,6 @@
return dt
- def select_toggle(self, cell_renderer, path):
- 'User manually toggled file status via checkbox'
- row = self.diffmodel[path]
- rejected = not row[DM_REJECTED]
- row[DM_REJECTED] = rejected
- self.activate_chunk(row, not rejected)
- return True
-
- def selected_cell_func(self, column, cell_renderer, model, iter):
- is_header = model.get_value(iter, DM_IS_HEADER)
- cell_renderer.set_property('visible', not is_header)
- is_rejected = model.get_value(iter, DM_REJECTED)
- cell_renderer.set_property('active', not is_rejected)
-
def __getitem__(self, wfile):
return self.filechunks[wfile]
@@ -294,9 +269,12 @@
return len(rows)
- def activate_chunk(self, row, active):
- dmodel = self.diffmodel
+ def diff_tree_row_act(self, dtree, path, column):
+ 'Row in diff tree (hunk) activated/toggled'
+ dmodel = dtree.get_model()
+ row = dmodel[path]
wfile = row[DM_PATH]
+ checked = self.stat.get_checked(wfile)
try:
chunks = self.filechunks[wfile]
except IndexError:
@@ -304,13 +282,13 @@ chunkrows = xrange(1, len(chunks))
if row[DM_IS_HEADER]:
for n, chunk in enumerate(chunks[1:]):
- chunk.active = active
+ chunk.active = not checked
self.update_diff_hunk(dmodel[n+1])
- newvalue = active
+ newvalue = not checked
partial = False
else:
chunk = chunks[row[DM_CHUNK_ID]]
- chunk.active = active
+ chunk.active = not chunk.active
self.update_diff_hunk(row)
rej = [ n for n in chunkrows if dmodel[n][DM_REJECTED] ]
nonrej = [ n for n in chunkrows if not dmodel[n][DM_REJECTED] ]
@@ -395,31 +373,3 @@ self.stat.stbar.set_text(str(e))
difftext.seek(0)
return hgshelve.parsepatch(difftext)
-
- def tree_button_release(self, treeview, event):
- if event.button != 3:
- return False
- self.tree_popup_menu(treeview)
- return True
-
- def tree_popup_menu(self, treeview):
- model, tpaths = treeview.get_selection().get_selected_rows()
- srows = [model[p] for p in tpaths]
-
- def select(menuitem):
- for row in srows:
- self.activate_chunk(row, True)
-
- def deselect(menuitem):
- for row in srows:
- self.activate_chunk(row, False)
-
- menu = gtklib.MenuBuilder()
- menu.append(_('_Select'), select)
- menu.append(_('_Deselect'), deselect)
-
- menu = menu.build()
- if len(menu.get_children()) > 0:
- menu.show_all()
- menu.popup(None, None, None, 0, 0)
- return True
|
Loading...