mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
...
This commit is contained in:
parent
ae1f768c1a
commit
abaa0f8cd7
@ -57,6 +57,11 @@ class CompleteModel(QAbstractListModel): # {{{
|
|||||||
except IndexError:
|
except IndexError:
|
||||||
pass
|
pass
|
||||||
return NONE
|
return NONE
|
||||||
|
|
||||||
|
def index_for_prefix(self, prefix):
|
||||||
|
for i, item in enumerate(self.current_items):
|
||||||
|
if primary_startswith(item, prefix):
|
||||||
|
return self.index(i)
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
class Completer(QListView): # {{{
|
class Completer(QListView): # {{{
|
||||||
@ -111,6 +116,12 @@ class Completer(QListView): # {{{
|
|||||||
index = self.model().index(r % self.model().rowCount())
|
index = self.model().index(r % self.model().rowCount())
|
||||||
self.setCurrentIndex(index)
|
self.setCurrentIndex(index)
|
||||||
|
|
||||||
|
def scroll_to(self, orig):
|
||||||
|
if orig:
|
||||||
|
index = self.model().index_for_prefix(orig)
|
||||||
|
if index is not None and index.isValid():
|
||||||
|
self.setCurrentIndex(index)
|
||||||
|
|
||||||
def popup(self):
|
def popup(self):
|
||||||
p = self
|
p = self
|
||||||
m = p.model()
|
m = p.model()
|
||||||
@ -252,12 +263,15 @@ class LineEdit(QLineEdit, LineEditECM):
|
|||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
def complete(self, show_all=False):
|
def complete(self, show_all=False):
|
||||||
|
orig = None
|
||||||
if show_all:
|
if show_all:
|
||||||
|
orig = self.mcompleter.model().current_prefix
|
||||||
self.mcompleter.set_completion_prefix('')
|
self.mcompleter.set_completion_prefix('')
|
||||||
if not self.mcompleter.model().current_items:
|
if not self.mcompleter.model().current_items:
|
||||||
self.mcompleter.hide()
|
self.mcompleter.hide()
|
||||||
return
|
return
|
||||||
self.mcompleter.popup()
|
self.mcompleter.popup()
|
||||||
|
self.mcompleter.scroll_to(orig)
|
||||||
|
|
||||||
def relayout(self):
|
def relayout(self):
|
||||||
self.mcompleter.popup()
|
self.mcompleter.popup()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user