Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.9, 1.9.1, and 1.9.2

repoview: add a light-weight refresh method

Use refresh when the graph has not changed, but other data has. For instance:
* local tags
* bookmarks
* incoming / outgoing marks
* author colors
* refresh ages

Changeset 428e50f98cf3

Parent c7c44bd81863

by Steve Borho

Changes to one file · Browse files at 428e50f98cf3 Showing diff from parent c7c44bd81863 Diff from another changeset...

 
19
20
21
22
23
 
 
24
25
26
 
203
204
205
206
 
207
208
209
 
215
216
217
218
 
219
220
221
222
 
223
224
225
226
227
228
229
 
 
 
 
 
 
230
231
232
 
354
355
356
357
 
358
359
360
 
367
368
369
 
 
 
 
 
 
 
 
 
 
 
370
371
372
 
19
20
21
 
 
22
23
24
25
26
 
203
204
205
 
206
207
208
209
 
215
216
217
 
218
219
220
221
222
223
224
225
226
227
228
229
 
230
231
232
233
234
235
236
237
238
 
360
361
362
 
363
364
365
366
 
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
@@ -19,8 +19,8 @@
 from tortoisehg.hgqt import cmdui, update, tag, manifestdialog, backout, merge  from tortoisehg.hgqt import hgemail, archive, thgstrip   -from repoview import HgRepoView -from revdetailswidget import RevDetailsWidget +from tortoisehg.hgqt.repoview import HgRepoView +from tortoisehg.hgqt.revdetailswidget import RevDetailsWidget    from PyQt4.QtCore import *  from PyQt4.QtGui import * @@ -203,7 +203,7 @@
  self._updatedlg = dlg   def cmdfinished(status):   if status == 0: - self.reload() # TODO: implement something less drastic than a full reload + self.refresh()   self.setScanForRepoChanges(saved)   dlg.cmdfinished.connect(cmdfinished)   dlg.show() @@ -215,18 +215,24 @@
  self.setScanForRepoChanges(saved)   dlg.finished.connect(finished)   def invalidated(): - self.reload() # TODO: implement something less drastic than a full reload + self.reload()   dlg.repoInvalidated.connect(invalidated)   dlg.show()     def tagToRevision(self, rev): + origlen = len(self.repo)   saved = self.setScanForRepoChanges(False)   dlg = tag.TagDialog(self.repo, rev=str(rev), parent=self)   def finished(ret):   self.setScanForRepoChanges(saved)   dlg.finished.connect(finished)   def invalidated(): - self.reload() # TODO: implement something less drastic than a full reload + self.repo.thginvalidate() + if len(self.repo) != origlen: + self.reload() + else: + self.refresh() + origlen = len(self.repo)   dlg.repoInvalidated.connect(invalidated)   dlg.show()   @@ -354,7 +360,7 @@
  self.close()     def reload(self, rev=None): - 'Initiate a refresh of the repo model' + 'Initiate a refresh of the repo model, rebuild graph'   if rev == None:   self._reload_rev = self.repoview.current_rev   else: @@ -367,6 +373,17 @@
  cw.stwidget.refreshWctx()   self.revDetailsWidget.reload(rev)   + def refresh(self): + 'Refresh the repo model view, clear cached data' + self.repo.thginvalidate() + self.repomodel.invalidate() + if self._reload_rev is not None: + try: + self.repoview.goto(self._reload_rev) + self.revDetailsWidget.on_filled() + except IndexError: + pass +   def getCommitWidget(self):   return self.workbench.getCommitWidget(self.repo.root)