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

grep: fix exception handling and error message signaling

Changeset cc7105e89f39

Parent 00148f902968

by Steve Borho

Changes to 2 files · Browse files at cc7105e89f39 Showing diff from parent 00148f902968 Diff from another changeset...

 
25
26
27
28
 
29
30
31
32
 
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
132
133
134
 
 
 
 
 
 
 
 
 
 
135
136
137
 
176
177
178
179
180
 
 
 
181
182
183
 
200
201
202
203
204
 
 
205
206
207
 
214
215
216
217
 
218
219
220
 
240
241
242
243
 
244
245
246
 
285
286
287
288
 
289
290
291
 
308
309
310
311
 
312
313
314
 
327
328
329
330
 
331
332
333
 
25
26
27
 
28
29
30
31
 
32
33
34
35
36
 
 
 
 
 
 
 
37
38
39
 
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
 
179
180
181
 
 
182
183
184
185
186
187
 
204
205
206
 
 
207
208
209
210
211
 
218
219
220
 
221
222
223
224
 
244
245
246
 
247
248
249
250
 
289
290
291
 
292
293
294
295
 
312
313
314
 
315
316
317
318
 
331
332
333
 
334
335
336
337
@@ -25,22 +25,15 @@
  SIGNALS:   loadBegin() - for progress bar   loadComplete() - for progress bar - errorMessage(unicode) - for status bar + showMessage(unicode) - for status bar   '''   loadBegin = pyqtSignal()   loadComplete = pyqtSignal() - errorMessage = pyqtSignal(unicode) + showMessage = pyqtSignal(unicode)     def __init__(self, upats, root=None, parent=None, **opts):   QWidget.__init__(self, parent)   - if parent: - self.closeonesc = False - else: - self.setWindowTitle(_('TortoiseHg Search')) - self.resize(800, 550) - self.closeonesc = True -   self.thread = None   root = paths.find_root(root)   repo = hg.repository(ui.ui(), path=root) @@ -132,6 +125,16 @@
  if len(upats) > 1:   incle.setText(','.join(upats[1:]))   + if parent: + self.closeonesc = False + else: + self.setWindowTitle(_('TortoiseHg Search')) + self.resize(800, 550) + self.closeonesc = True + self.stbar = QStatusBar() + mainvbox.addWidget(self.stbar) + self.showMessage.connect(self.stbar.showMessage) +   def setRevision(self, rev):   if isinstance(rev, basestring): # unapplied patch   return @@ -176,8 +179,9 @@
  icase = self.chk.isChecked()   regexp = re.compile(pattern, icase and re.I or 0)   except Exception, inst: - msg = _('grep: invalid match pattern: %s\n') % hglib.tounicode(inst) - self.errorMessage.emit(msg) + msg = _('grep: invalid match pattern: %s\n') % \ + hglib.tounicode(str(inst)) + self.showMessage.emit(msg)   return     self.tv.setSortingEnabled(False) @@ -200,8 +204,8 @@
  try:   ctx = self.repo[rev or '.']   except error.RepoError, e: - msg = _('grep: %s\n') % hglib.tounicode(e) - self.errorMessage.emit(msg) + msg = _('grep: %s\n') % hglib.tounicode(str(e)) + self.showMessage.emit(msg)   return   self.thread = CtxSearchThread(self.repo, regexp, ctx, inc, exc,   once=self.singlematch.isChecked()) @@ -214,7 +218,7 @@
    self.regexple.setEnabled(False)   self.thread.finished.connect(self.finished) - self.thread.errorMessage.connect(self.errorMessage) + self.thread.showMessage.connect(self.showMessage)   self.thread.matchedRow.connect(   lambda wrapper: model.appendRow(*wrapper.data))   self.loadBegin.emit() @@ -240,7 +244,7 @@
 class HistorySearchThread(QThread):   '''Background thread for searching repository history'''   matchedRow = pyqtSignal(object) - errorMessage = pyqtSignal(unicode) + showMessage = pyqtSignal(unicode)   finished = pyqtSignal()     def __init__(self, repo, pattern, icase, inc, exc): @@ -285,7 +289,7 @@
    def write_err(self, msg, *args, **opts):   msg = htlib.tounicode(msg) - self.obj.errorMessage.emit(msg) + self.obj.showMessage.emit(msg)     def label(self, msg, label):   msg = hglib.tounicode(msg) @@ -308,7 +312,7 @@
 class CtxSearchThread(QThread):   '''Background thread for searching a changectx'''   matchedRow = pyqtSignal(object) - errorMessage = pyqtSignal(unicode) + showMessage = pyqtSignal(unicode)   finished = pyqtSignal()     def __init__(self, repo, regexp, ctx, inc, exc, once): @@ -327,7 +331,7 @@
  matchfn = match.match(self.repo.root, '', [], self.inc, self.exc)   def badfn(f, msg):   e = hglib.tounicode("%s: %s" % (matchfn.rel(f), msg)) - self.errorMessage.emit(e) + self.showMessage.emit(e)   matchfn.bad = badfn     # searching len(ctx.manifest()) files
 
170
171
172
 
173
174
175
 
170
171
172
173
174
175
176
@@ -170,6 +170,7 @@
  upats = {}   gw = SearchWidget(upats, self.repo.root, self)   gw.setRevision(self.repoview.current_rev) + gw.showMessage.connect(self.showMessage)   return gw     def load_config(self):