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

Merge with stable

Changeset 29aa68cd530d

Parents 3f6f376699c4

Parents fdd30e1ca71e

by Steve Borho

Changes to 4 files · Browse files at 29aa68cd530d Showing diff from parent 3f6f376699c4 fdd30e1ca71e Diff from another changeset...

 
13
14
15
 
16
17
18
 
816
817
818
819
 
820
821
 
 
 
 
 
822
823
824
 
837
838
839
840
 
 
841
842
843
 
13
14
15
16
17
18
19
 
817
818
819
 
820
821
 
822
823
824
825
826
827
828
829
 
842
843
844
 
845
846
847
848
849
@@ -13,6 +13,7 @@
 import subprocess  import tempfile  import re +import weakref    from mercurial import extensions, util   @@ -816,9 +817,13 @@
 class DemandWidget(QWidget):   'Create a widget the first time it is shown'   - def __init__(self, createfunc, parent=None): + def __init__(self, createfuncname, createinst, parent=None):   super(DemandWidget, self).__init__(parent) - self._createfunc = createfunc + # We store a reference to the create function name to avoid having a + # hard reference to the bound function, which prevents it being + # disposed. Weak references to bound functions don't work. + self._createfuncname = createfuncname + self._createinst = weakref.ref(createinst)   self._widget = None   vbox = QVBoxLayout()   vbox.setContentsMargins(*(0,)*4) @@ -837,7 +842,8 @@
  def get(self):   """Returns the stored widget"""   if self._widget is None: - self._widget = self._createfunc() + func = getattr(self._createinst(), self._createfuncname, None) + self._widget = func()   self.layout().addWidget(self._widget)   return self._widget  
 
12
13
14
15
 
16
17
18
 
12
13
14
 
15
16
17
18
@@ -12,7 +12,7 @@
 from tortoisehg.hgqt.i18n import _  from tortoisehg.hgqt import revset, qtlib   -_permanent_queries = ('head()', 'merge()', 'tagged()', 'file(".hgsubstate")') +_permanent_queries = ('head()', 'merge()', 'tagged()', 'file(".hgsubstate") or file(".hgsub")')    class RepoFilterBar(QToolBar):   """Toolbar for RepoWidget to filter changesets"""
 
158
159
160
161
 
162
163
164
165
 
166
167
168
 
171
172
173
174
 
175
176
177
178
 
179
180
181
182
 
183
184
185
186
 
187
188
189
 
158
159
160
 
161
162
163
164
 
165
166
167
168
 
171
172
173
 
174
175
176
177
 
178
179
180
181
 
182
183
184
185
 
186
187
188
189
@@ -158,11 +158,11 @@
  self.logTabIndex = idx = tt.addTab(w, qtlib.geticon('hg-log'), '')   tt.setTabToolTip(idx, _("Revision details"))   - self.commitDemand = w = DemandWidget(self.createCommitWidget) + self.commitDemand = w = DemandWidget('createCommitWidget', self)   self.commitTabIndex = idx = tt.addTab(w, qtlib.geticon('hg-commit'), '')   tt.setTabToolTip(idx, _("Commit"))   - self.mqDemand = w = DemandWidget(self.createMQWidget) + self.mqDemand = w = DemandWidget('createMQWidget', self)   idx = tt.addTab(w, qtlib.geticon('thg-mq'), '')   if 'mq' in self.repo.extensions():   self.mqTabIndex = idx @@ -171,19 +171,19 @@
  else:   self.mqTabIndex = -1   - self.syncDemand = w = DemandWidget(self.createSyncWidget) + self.syncDemand = w = DemandWidget('createSyncWidget', self)   self.syncTabIndex = idx = tt.addTab(w, qtlib.geticon('thg-sync'), '')   tt.setTabToolTip(idx, _("Synchronize"))   - self.manifestDemand = w = DemandWidget(self.createManifestWidget) + self.manifestDemand = w = DemandWidget('createManifestWidget', self)   self.manifestTabIndex = idx = tt.addTab(w, qtlib.geticon('hg-annotate'), '')   tt.setTabToolTip(idx, _('Manifest'))   - self.grepDemand = w = DemandWidget(self.createGrepWidget) + self.grepDemand = w = DemandWidget('createGrepWidget', self)   self.grepTabIndex = idx = tt.addTab(w, qtlib.geticon('hg-grep'), '')   tt.setTabToolTip(idx, _("Search"))   - self.pbranchDemand = w = DemandWidget(self.createPatchBranchWidget) + self.pbranchDemand = w = DemandWidget('createPatchBranchWidget', self)   idx = tt.addTab(w, qtlib.geticon('branch'), '')   if 'pbranch' in self.repo.extensions():   self.pbranchTabIndex = idx
 
464
465
466
 
467
468
469
 
471
472
473
 
474
475
476
 
464
465
466
467
468
469
470
 
472
473
474
475
476
477
478
@@ -464,6 +464,7 @@
  index = self.repoTabsWidget.currentIndex()   if widget.closeRepoWidget():   self.repoTabsWidget.removeTab(index) + widget.deleteLater()   self.updateMenu()     def repoTabCloseRequested(self, index): @@ -471,6 +472,7 @@
  w = tw.widget(index)   if w and w.closeRepoWidget():   tw.removeTab(index) + w.deleteLater()   self.updateMenu()     def repoTabChanged(self, index=0):