mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Proper fix for complete popup too high on windows 7 issue
This commit is contained in:
parent
6c1b1a4274
commit
b43c7d45a3
@ -7,12 +7,11 @@ __docformat__ = 'restructuredtext en'
|
||||
|
||||
|
||||
from PyQt4.Qt import QLineEdit, QAbstractListModel, Qt, \
|
||||
QApplication, QCompleter, QPoint
|
||||
QApplication, QCompleter
|
||||
|
||||
from calibre.utils.icu import sort_key, lower
|
||||
from calibre.gui2 import NONE
|
||||
from calibre.gui2.widgets import EnComboBox, LineEditECM
|
||||
from calibre.constants import iswindows
|
||||
|
||||
class CompleteModel(QAbstractListModel):
|
||||
|
||||
@ -94,17 +93,7 @@ class MultiCompleteLineEdit(QLineEdit, LineEditECM):
|
||||
|
||||
def text_edited(self, *args):
|
||||
self.update_completions()
|
||||
# Calculating a manual rect is necessary as in windows 7
|
||||
# in the edit metadata dialog, the completion window is
|
||||
# too high and covers the bottom of the text in the edit field
|
||||
rect = self.geometry()
|
||||
ld = self.layoutDirection()
|
||||
pos = QPoint(0, self.height() + (3 if iswindows else 0))
|
||||
if ld == Qt.RightToLeft:
|
||||
rect.moveBottomRight(pos)
|
||||
else:
|
||||
rect.moveBottomLeft(pos)
|
||||
self._completer.complete(rect)
|
||||
self._completer.complete()
|
||||
|
||||
def update_completions(self):
|
||||
' Update the list of completions '
|
||||
@ -171,6 +160,7 @@ class MultiCompleteComboBox(EnComboBox):
|
||||
c.setCaseSensitivity(Qt.CaseSensitive)
|
||||
self.dummy_model = CompleteModel(self)
|
||||
c.setModel(self.dummy_model)
|
||||
self.lineEdit()._completer.setWidget(self)
|
||||
|
||||
def update_items_cache(self, complete_items):
|
||||
self.lineEdit().update_items_cache(complete_items)
|
||||
|
Loading…
x
Reference in New Issue
Block a user