mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Elide long items in the middle when showing the completion popup for tags, to make it easier to use with hierarchical tags. Fixes #1925247 [Enhancement request: Autocomplete elision options](https://bugs.launchpad.net/calibre/+bug/1925247)
This commit is contained in:
parent
afa4433c2b
commit
da99ac4280
@ -335,6 +335,9 @@ class LineEdit(QLineEdit, LineEditECM):
|
|||||||
@disable_popup.setter
|
@disable_popup.setter
|
||||||
def disable_popup(self, val):
|
def disable_popup(self, val):
|
||||||
self.mcompleter.disable_popup = bool(val)
|
self.mcompleter.disable_popup = bool(val)
|
||||||
|
|
||||||
|
def set_elide_mode(self, val):
|
||||||
|
self.mcompleter.setTextElideMode(val)
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
def event(self, ev):
|
def event(self, ev):
|
||||||
@ -474,6 +477,9 @@ class EditWithComplete(EnComboBox):
|
|||||||
@disable_popup.setter
|
@disable_popup.setter
|
||||||
def disable_popup(self, val):
|
def disable_popup(self, val):
|
||||||
self.lineEdit().disable_popup = bool(val)
|
self.lineEdit().disable_popup = bool(val)
|
||||||
|
|
||||||
|
def set_elide_mode(self, val):
|
||||||
|
self.lineEdit().set_elide_mode(val)
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
def text(self):
|
def text(self):
|
||||||
|
@ -510,7 +510,9 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog):
|
|||||||
|
|
||||||
all_tags = self.db.new_api.all_field_names('tags')
|
all_tags = self.db.new_api.all_field_names('tags')
|
||||||
self.tags.update_items_cache(all_tags)
|
self.tags.update_items_cache(all_tags)
|
||||||
|
self.tags.set_elide_mode(Qt.TextElideMode.ElideMiddle)
|
||||||
self.remove_tags.update_items_cache(all_tags)
|
self.remove_tags.update_items_cache(all_tags)
|
||||||
|
self.remove_tags.set_elide_mode(Qt.TextElideMode.ElideMiddle)
|
||||||
|
|
||||||
self.initialize_combos()
|
self.initialize_combos()
|
||||||
|
|
||||||
|
@ -358,6 +358,8 @@ class CompleteDelegate(QStyledItemDelegate, UpdateEditorGeometry): # {{{
|
|||||||
m.setData(index, self.sep.join(d.tags), Qt.ItemDataRole.EditRole)
|
m.setData(index, self.sep.join(d.tags), Qt.ItemDataRole.EditRole)
|
||||||
return None
|
return None
|
||||||
editor = EditWithComplete(parent)
|
editor = EditWithComplete(parent)
|
||||||
|
if col == 'tags':
|
||||||
|
editor.set_elide_mode(Qt.TextElideMode.ElideMiddle)
|
||||||
editor.set_separator(self.sep)
|
editor.set_separator(self.sep)
|
||||||
editor.set_space_before_sep(self.space_before_sep)
|
editor.set_space_before_sep(self.space_before_sep)
|
||||||
if self.sep == '&':
|
if self.sep == '&':
|
||||||
|
@ -1379,6 +1379,7 @@ class TagsEdit(EditWithComplete, ToMetadataMixin): # {{{
|
|||||||
|
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
EditWithComplete.__init__(self, parent)
|
EditWithComplete.__init__(self, parent)
|
||||||
|
self.set_elide_mode(Qt.TextElideMode.ElideMiddle)
|
||||||
self.currentTextChanged.connect(self.data_changed)
|
self.currentTextChanged.connect(self.data_changed)
|
||||||
self.lineEdit().setMaxLength(655360) # see https://bugs.launchpad.net/bugs/1630944
|
self.lineEdit().setMaxLength(655360) # see https://bugs.launchpad.net/bugs/1630944
|
||||||
self.books_to_refresh = set()
|
self.books_to_refresh = set()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user