Changeset ee5c2eae37ed…
Parent fb20dc4e763b…
by
Changes to 2 files · Browse files at ee5c2eae37ed Showing diff from parent fb20dc4e763b Diff from another changeset...
@@ -81,7 +81,9 @@ if getattr(difftree, 'enable-grid-lines', None) is not None:
difftree.set_property('enable-grid-lines', True)
self.difftree = difftree
-
+
+ difftree.connect('row-activated', self.diff_tree_row_act)
+
cell = gtk.CellRendererText()
diffcol = gtk.TreeViewColumn('diff', cell)
diffcol.set_resizable(True)
@@ -245,11 +247,12 @@
return len(rows)
- def diff_tree_row_act(self, dtree, path, checked):
+ 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:
@@ -270,7 +273,8 @@ newvalue = nonrej and True or False
partial = rej and nonrej and True or False
self.update_diff_header(dmodel, wfile, newvalue)
- return partial, newvalue
+
+ self.stat.update_check_state(wfile, partial, newvalue)
def get_wfile(self, dtree, path):
dmodel = dtree.get_model()
|
@@ -357,8 +357,7 @@ self.chunks = chunks.chunks(self)
difftree = self.chunks.get_difftree()
self.difftree = difftree
- difftree.connect('row-activated', self.diff_tree_row_act)
-
+
scroller = gtk.ScrolledWindow()
scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
scroller.add(difftree)
@@ -987,22 +986,21 @@ difftext.seek(0)
return hgshelve.parsepatch(difftext)
- def diff_tree_row_act(self, dtree, path, column):
- 'Row in diff tree (hunk) activated/toggled'
- wfile = self.chunks.get_wfile(dtree, path)
-
+ def update_check_state(self, wfile, partial, newvalue):
for fr in self.filemodel:
if fr[FM_PATH] == wfile:
- break
+ if fr[FM_PARTIAL_SELECTED] != partial:
+ fr[FM_PARTIAL_SELECTED] = partial
+ if fr[FM_CHECKED] != newvalue:
+ fr[FM_CHECKED] = newvalue
+ self.update_check_count()
+ return
- partial, newvalue = self.chunks.diff_tree_row_act(dtree, path, fr[FM_CHECKED])
-
- # Update file's check status
- if fr[FM_PARTIAL_SELECTED] != partial:
- fr[FM_PARTIAL_SELECTED] = partial
- if fr[FM_CHECKED] != newvalue:
- fr[FM_CHECKED] = newvalue
- self.update_check_count()
+ def get_checked(self, wfile):
+ for fr in self.filemodel:
+ if fr[FM_PATH] == wfile:
+ return fr[FM_CHECKED]
+ return False
def refresh_clicked(self, toolbutton, data=None):
self.reload_status()
|
Loading...