Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.7, 0.7.1, and 0.7.2

status: annotate diff headers of partially selected files

Changeset f51effe0f069

Parent 41501a03a566

by Steve Borho

Changes to one file · Browse files at f51effe0f069 Showing diff from parent 41501a03a566 Diff from another changeset...

Change 1 of 2 Show Entire File hggtk/​status.py Stacked
 
625
626
627
 
628
629
630
 
839
840
841
842
843
844
 
 
845
846
847
848
849
850
851
 
 
 
852
853
854
855
 
 
 
 
856
857
858
859
 
 
 
 
 
 
 
 
 
860
861
862
 
625
626
627
628
629
630
631
 
840
841
842
 
 
 
843
844
845
846
847
848
849
850
 
851
852
853
854
 
 
 
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
@@ -625,6 +625,7 @@
  file = entry[FM_PATH]   if file not in self._filechunks: return   entry[FM_PARTIAL_SELECTED] = False + self._update_partial(self.diff_model, file, False)   for n in self._filechunks[file][1:]:   self.diff_model[n][DM_NOT_REJECTED] = entry[FM_CHECKED]   self.diff_model[n][DM_REJECTED] = not entry[FM_CHECKED] @@ -839,24 +840,35 @@
  if row[DM_HEADER_CHUNK]:   for n in fchunks:   dmodel[n][DM_REJECTED] = fr[FM_CHECKED] - fr[FM_CHECKED] = not fr[FM_CHECKED] - fr[FM_PARTIAL_SELECTED] = False - self._update_check_count() + newvalue = not fr[FM_CHECKED] + partial = False   else:   row[DM_REJECTED] = not row[DM_REJECTED]   rej = [ n for n in fchunks if dmodel[n][DM_REJECTED] ]   nonrej = [ n for n in fchunks if not dmodel[n][DM_REJECTED] ]   newvalue = nonrej and True or False   partial = rej and nonrej and True or False - # Update file's check status + + # 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() + self._update_partial(dmodel, file, partial) + if fr[FM_CHECKED] != newvalue: + fr[FM_CHECKED] = newvalue + self._update_check_count()   finally:   for row in dmodel:   row[DM_NOT_REJECTED] = not row[DM_REJECTED]   + def _update_partial(self, dmodel, file, partial): + hc = self._filechunks[file][0] + row = dmodel[hc] + markup = row[DM_CHUNK_TEXT] + tag = ' ** Partial **' + if partial and not markup.endswith(tag): + row[DM_CHUNK_TEXT] = markup + tag + elif markup.endswith(tag): + row[DM_CHUNK_TEXT] = markup[0:-len(tag)]     def _show_diff_hunks(self, files):   ''' Update the diff text '''