debug-console: Use a sorted set for completions.

This commit is contained in:
Florian Bruhin 2014-10-10 07:38:14 +02:00
parent 8017dae75d
commit 9dc72b4c37

View File

@ -66,6 +66,8 @@ class ConsoleLineEdit(misc.CommandLineEdit):
qcompleter.setModel(self._model) qcompleter.setModel(self._model)
qcompleter.setCompletionMode( qcompleter.setCompletionMode(
QCompleter.UnfilteredPopupCompletion) QCompleter.UnfilteredPopupCompletion)
qcompleter.setModelSorting(
QCompleter.CaseSensitivelySortedModel)
self.setCompleter(qcompleter) self.setCompleter(qcompleter)
self._history = cmdhistory.History() self._history = cmdhistory.History()
@ -73,15 +75,16 @@ class ConsoleLineEdit(misc.CommandLineEdit):
@pyqtSlot(str) @pyqtSlot(str)
def on_text_changed(self, text): def on_text_changed(self, text):
strings = [] strings = set()
i = 0 i = 0
while True: while True:
s = self._rlcompleter.complete(self.text(), i) s = self._rlcompleter.complete(self.text(), i)
if s is None: if s is None:
break break
else: else:
strings.append(s) strings.add(s)
i += 1 i += 1
strings = sorted(list(strings))
self._model.setStringList(strings) self._model.setStringList(strings)
@pyqtSlot(str) @pyqtSlot(str)