Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 2.0.2, 2.0.3, and 2.0.4

stable revdetails, email, cmdui: Avoid lambda function in font signal

This is problematic because the font is persistent and will
hold a reference to the lambda function which will, in turn,
hold a reference to the relevant object ("self"), preventing
it from being disposed.

Changeset 1f16cc87f8a9

Parent 9dfebd5cbc25

by Daniel Atallah

Changes to 3 files · Browse files at 1f16cc87f8a9 Showing diff from parent 9dfebd5cbc25 Diff from another changeset...

 
332
333
334
335
 
336
337
338
 
332
333
334
 
335
336
337
338
@@ -332,7 +332,7 @@
    def _initfont(self):   tf = qtlib.getfont('fontoutputlog') - tf.changed.connect(lambda f: self.setFont(f)) + tf.changed.connect(self.setFont)   self.setFont(tf.font())     def _initmarkers(self):
 
283
284
285
286
 
287
288
289
 
290
291
292
 
293
294
295
296
297
 
 
 
 
298
299
300
 
283
284
285
 
286
287
 
 
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
@@ -283,18 +283,22 @@
  w.setUtf8(True)   w.setReadOnly(True)   w.setMarginWidth(1, 0) # hide area for line numbers - lex = lexers.get_diff_lexer(self) + self.lexer = lex = lexers.get_diff_lexer(self)   fh = qtlib.getfont('fontdiff') - fh.changed.connect(lambda f: lex.setFont(f)) - # TODO: why cannot we connect directly, without lambda? + fh.changed.connect(self.forwardFont)   lex.setFont(fh.font())   w.setLexer(lex)   # TODO: better way to setup diff lexer +   initqsci(self._qui.preview_edit)     self._qui.main_tabs.currentChanged.connect(self._refreshpreviewtab)   self._refreshpreviewtab(self._qui.main_tabs.currentIndex())   + def forwardFont(self, font): + if self.lexer: + self.lexer.setFont(font) +   @pyqtSlot(int)   def _refreshpreviewtab(self, index):   """Generate preview text if current tab is preview"""
 
148
149
150
151
 
152
153
154
 
169
170
171
 
 
 
172
173
174
 
148
149
150
 
151
152
153
154
 
169
170
171
172
173
174
175
176
177
@@ -148,7 +148,7 @@
  self.message.setMinimumSize(QSize(0, 0))   f = getfont('fontcomment')   self.message.setFont(f.font()) - f.changed.connect(lambda font: self.message.setFont(font)) + f.changed.connect(self.forwardFont)     self.fileview = HgFileView(self.repo, self.message_splitter)   sp = SP(SP.Expanding, SP.Expanding) @@ -169,6 +169,9 @@
  self.filelist.fileRevSelected.connect(self.onFileRevSelected)   self.filelist.clearDisplay.connect(self.fileview.clearDisplay)   + def forwardFont(self, font): + self.message.setFont(font) +   def createActions(self):   def fileActivated():   idx = self.filelist.currentIndex()