Changeset 0a7b24a2cee9…
Parent 403950d44ed2…
by
Changes to 2 files · Browse files at 0a7b24a2cee9 Showing diff from parent 403950d44ed2 Diff from another changeset...
@@ -310,6 +310,11 @@ except KeyError:
pass
+ def refresh_model(self):
+ 'Refresh data in the history model, without reloading graph'
+ if self.graphview.model:
+ self.graphview.model.refresh()
+
def reload_log(self, **filteropts):
'Send refresh event to treeview object'
os.chdir(self.repo.root) # for paths relative to repo root
@@ -606,7 +611,7 @@ self.repo.invalidate()
newtags = self.repo.tagslist()
if newtags != oldtags:
- self.reload_log()
+ self.refresh_model()
dialog = tagadd.TagAddDialog(self.repo.root, rev=str(rev))
dialog.set_transient_for(self)
@@ -693,7 +698,7 @@ def checkout_completed(self, oldparents):
newparents = [x.node() for x in self.repo.parents()]
if not oldparents == newparents:
- self.reload_log()
+ self.refresh_model()
def merge(self, menuitem):
rev = self.currow[treemodel.REVID]
@@ -708,7 +713,7 @@ def merge_completed(self, oldparents):
newparents = [x.node() for x in self.repo.parents()]
if not oldparents == newparents:
- self.reload_log()
+ self.refresh_model()
def selection_changed(self, treeview):
self.currow = self.graphview.get_revision()
|
@@ -39,11 +39,28 @@ self.revisions = {}
self.branch_names = {}
self.repo = repo
- self.parents = [x.rev() for x in repo.changectx(None).parents()]
- self.heads = [repo.changelog.rev(x) for x in repo.heads()]
self.line_graph_data = graphdata
self.author_re = re.compile('<.*@.*>', 0)
self.color_func = color_func
+ self.parents = [x.rev() for x in repo.parents()]
+ self.heads = [repo[x].rev() for x in repo.heads()]
+ self.tagrevs = [repo[r].rev() for t, r in repo.tagslist()]
+
+ def refresh(self):
+ repo = self.repo
+ oldtags, oldheads, oldparents = self.tagrevs, self.heads, self.parents
+
+ repo.invalidate()
+ repo.dirstate.invalidate()
+
+ self.parents = [x.rev() for x in repo.parents()]
+ self.heads = [repo[x].rev() for x in repo.heads()]
+ self.tagrevs = [repo[r].rev() for t, r in repo.tagslist()]
+ allrevs = set(oldtags + oldheads + oldparents +
+ self.parents + self.heads + self.tagrevs)
+ for rev in allrevs:
+ if rev in self.revisions:
+ del self.revisions[rev]
def on_get_flags(self):
return gtk.TREE_MODEL_LIST_ONLY
|
Loading...