Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 2.1, 2.1.1, and 2.1.2

manifest: don't load the manifest data until/unless the manifest widget is shown

Changeset 29e80a63dfd4

Parent 01984f98ffc0

by Angel Ezquerra

Changes to 2 files · Browse files at 29e80a63dfd4 Showing diff from parent 01984f98ffc0 Diff from another changeset...

 
115
116
117
 
118
119
120
 
277
278
279
 
 
 
 
 
 
 
280
281
282
 
370
371
372
 
 
 
 
 
 
373
374
375
376
 
377
378
379
 
115
116
117
118
119
120
121
 
278
279
280
281
282
283
284
285
286
287
288
289
290
 
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
@@ -115,6 +115,7 @@
  super(ManifestWidget, self).__init__(parent)   self._repo = repo   self._rev = rev + self._selectedrev = rev   self._diff_dialogs = {}   self._nav_dialogs = {}   @@ -277,6 +278,13 @@
  _("Cannot open subrepository"),   _("The selected subrepository does not exist on the working directory"))   + def showEvent(self, event): + QWidget.showEvent(self, event) + if self._selectedrev != self._rev: + # If the selected revision is not the same as the current revision + # we must "reload" the manifest contents with the selected revision + self.setRev(self._selectedrev) +   #@pyqtSlot(QModelIndex)   def onDoubleClick(self, index):   itemissubrepo = self.path in self._repo[self._rev].substate.keys() @@ -370,10 +378,17 @@
  """Return current revision"""   return self._rev   + def selectRev(self, rev): + """ + Select the revision that must be set when the dialog is shown again + """ + self._selectedrev = rev +   @pyqtSlot(int)   @pyqtSlot(object)   def setRev(self, rev):   """Change revision to show""" + self._selectedrev = rev   if rev == self._rev:   return   self._rev = rev
 
641
642
643
644
 
 
 
 
645
646
647
648
 
 
 
 
649
650
651
 
641
642
643
 
644
645
646
647
648
649
650
 
651
652
653
654
655
656
657
@@ -641,11 +641,17 @@
  self.revDetailsWidget.onRevisionSelected(rev)   self.revisionSelected.emit(rev)   if type(rev) != str: # unapplied patch - self.manifestDemand.forward('setRev', rev) + if self.manifestDemand.isHidden(): + self.manifestDemand.forward('selectRev', rev) + else: + self.manifestDemand.forward('setRev', rev)   self.grepDemand.forward('setRevision', rev)   self.syncDemand.forward('refreshTargets', rev)   else: - self.manifestDemand.forward('setRev', None) + if self.manifestDemand.isHidden(): + self.manifestDemand.forward('selectRev', None) + else: + self.manifestDemand.forward('setRev', None)   except (IndexError, error.RevlogError, error.Abort), e:   self.showMessage(hglib.tounicode(str(e)))