Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.9.3, 2.0, and 2.0.1

stable grep: add CTRL+D shortcuts for removing entries from history

I tried to use QKeySequence.Delete and QKeySequence.Cut, but neither worked. I
suspect the QLineEdit captures those keys and thus the completer popup never
receives them.

Changeset fb68ced4a8d2

Parent 3ee6224acd0d

by Steve Borho

Changes to one file · Browse files at fb68ced4a8d2 Showing diff from parent 3ee6224acd0d Diff from another changeset...

 
151
152
153
154
155
156
 
 
157
158
159
160
161
 
167
168
169
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
171
172
 
178
179
180
181
182
183
 
184
185
186
 
449
450
451
 
452
453
454
 
151
152
153
 
 
 
154
155
156
 
157
158
159
 
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
 
204
205
206
 
 
 
207
208
209
210
 
473
474
475
476
477
478
479
@@ -151,11 +151,9 @@
  ph = list(s.value('grep/paths-'+repoid).toStringList())   self.pathshistory = [p for p in ph if p]   self.searchhistory = [s for s in sh if s] - self.regexple.setCompleter(QCompleter(self.searchhistory, self)) - self.incle.setCompleter(QCompleter(self.pathshistory, self)) - self.excle.setCompleter(QCompleter(self.pathshistory, self)) + self.setCompleters() +   mainvbox.setContentsMargins(2, 2, 2, 2) -   if parent:   self.closeonesc = False   else: @@ -167,6 +165,34 @@
  self.showMessage.connect(self.stbar.showMessage)   self.progress.connect(self.stbar.progress)   + def setCompleters(self): + comp = QCompleter(self.searchhistory, self) + QShortcut(QKeySequence('CTRL+D'), comp.popup(), + self.onSearchCompleterDelete) + self.regexple.setCompleter(comp) + + comp = QCompleter(self.pathshistory, self) + QShortcut(QKeySequence('CTRL+D'), comp.popup(), + self.onPathCompleterDelete) + self.incle.setCompleter(comp) + self.excle.setCompleter(comp) + + def onSearchCompleterDelete(self): + 'CTRL+D pressed in search completer popup window' + text = self.regexple.completer().currentCompletion() + if text and text in self.searchhistory: + self.searchhistory.remove(text) + self.setCompleters() + self.showMessage.emit(_('"%s" removed from search history') % text) + + def onPathCompleterDelete(self): + 'CTRL+D pressed in path completer popup window' + text = self.incle.completer().currentCompletion() + if text and text in self.pathshistory: + self.pathshistory.remove(text) + self.setCompleters() + self.showMessage.emit(_('"%s" removed from path history') % text) +   def addHistory(self, search, incpaths, excpaths):   if search:   usearch = hglib.tounicode(search) @@ -178,9 +204,7 @@
  if up in self.pathshistory:   self.pathshistory.remove(up)   self.pathshistory = [up] + self.pathshistory[:9] - self.regexple.setCompleter(QCompleter(self.searchhistory, self)) - self.incle.setCompleter(QCompleter(self.pathshistory, self)) - self.excle.setCompleter(QCompleter(self.pathshistory, self)) + self.setCompleters()     def setRevision(self, rev):   if isinstance(rev, basestring): # unapplied patch @@ -449,6 +473,7 @@
  self.repo = repo   self.pattern = None   self.embedded = parent.parent() is not None + self.selectedRows = ()     self.delegate = htmldelegate.HTMLDelegate(self)   self.setItemDelegateForColumn(COL_TEXT, self.delegate)