# HG changeset patch # User Sune Foldager <c...@cyanite.org> # Date 1260126169 -3600 # Node ID 8412a56aa82cda32751027e0b12db3d52e0ff934 # Parent 564f7f808e63e01571fd0ac542a293dbd83372be history: auto-select files changed via context menu
diff --git a/tortoisehg/hgtk/status.py b/tortoisehg/hgtk/status.py --- a/tortoisehg/hgtk/status.py +++ b/tortoisehg/hgtk/status.py @@ -728,6 +728,12 @@ gobject.timeout_add(50, status_wait, thread) return True + def set_file_states(self, paths, state=True): + for p in paths: + self.filemodel[p][FM_CHECKED] = state + self.update_chunk_state(self.filemodel[p]) + self.update_check_count() + def select_toggle(self, cellrenderer, path): 'User manually toggled file status via checkbox' self.filemodel[path][FM_CHECKED] = not self.filemodel[path][FM_CHECKED] @@ -1418,6 +1424,7 @@ types = {'M':[], 'A':[], 'R':[], '!':[], 'I':[], '?':[], 'C':[], 'r':[], 'u':[]} all = [] + pathmap = {} for p in tpaths: row = model[p] file = util.pconvert(row[FM_PATH]) @@ -1429,15 +1436,20 @@ else: types[row[FM_STATUS]].append(file) all.append(file) + pathmap[file] = p - def make(label, handler, stats, enabled=True): + def make(label, handler, stats, enabled=True, paths=False): files = [] for t in stats: files.extend(types[t]) if not files: return item = gtk.MenuItem(label, True) - item.connect('activate', handler, files) + if paths: + p = [pathmap[f] for f in files] + item.connect('activate', handler, files, p) + else: + item.connect('activate', handler, files) item.set_border_width(1) item.set_sensitive(enabled) menu.append(item) @@ -1459,10 +1471,12 @@ from tortoisehg.hgtk import history dlg = history.run(self.ui, canonpats=files) dlg.display() - def forget(menuitem, files): + def forget(menuitem, files, paths): self.hg_forget(files) - def add(menuitem, files): + self.set_file_states(paths, state=False) + def add(menuitem, files, paths): self.hg_add(files) + self.set_file_states(paths, state=True) def delete(menuitem, files): self.delete_files(files) def unmark(menuitem, files): @@ -1515,8 +1529,8 @@ menu.append_sep() make(_('L_og'), log, 'MARC!ru') menu.append_sep() - make(_('_Forget'), forget, 'MARC!ru') - make(_('_Add'), add, 'I?') + make(_('_Forget'), forget, 'MARC!ru', paths=True) + make(_('_Add'), add, 'I?', paths=True) make(_('_Guess Rename...'), guess_rename, '?') make(_('_Ignore'), ignore, '?') make(_('Remove versioned'), remove, 'C') ------------------------------------------------------------------------------ Join us December 9, 2009 for the Red Hat Virtual Experience, a free event focused on virtualization and cloud computing. Attend in-depth sessions from your desk. Your couch. Anywhere. http://p.sf.net/sfu/redhat-sfdev2dev _______________________________________________ Tortoisehg-develop mailing list Tortoisehg-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop