diff --git a/src/calibre/gui2/complete2.py b/src/calibre/gui2/complete2.py index 4ad3c37c0e..43fcf59298 100644 --- a/src/calibre/gui2/complete2.py +++ b/src/calibre/gui2/complete2.py @@ -372,6 +372,9 @@ class EditWithComplete(EnComboBox): def text(self): return unicode(self.lineEdit().text()) + def selectAll(self): + self.lineEdit().selectAll() + def setText(self, val): le = self.lineEdit() le.no_popup = True diff --git a/src/calibre/gui2/library/delegates.py b/src/calibre/gui2/library/delegates.py index 10ec78cfaf..4c26bf9ded 100644 --- a/src/calibre/gui2/library/delegates.py +++ b/src/calibre/gui2/library/delegates.py @@ -125,12 +125,15 @@ class TextDelegate(QStyledItemDelegate): # {{{ editor.set_separator(None) complete_items = [i[1] for i in self.auto_complete_function()] editor.update_items_cache(complete_items) - ct = index.data(Qt.DisplayRole).toString() - editor.show_initial_value(ct) else: editor = EnLineEdit(parent) return editor + def setEditorData(self, editor, index): + ct = unicode(index.data(Qt.DisplayRole).toString()) + editor.setText(ct) + editor.selectAll() + def setModelData(self, editor, model, index): if isinstance(editor, EditWithComplete): val = editor.lineEdit().text() @@ -164,12 +167,15 @@ class CompleteDelegate(QStyledItemDelegate): # {{{ all_items = list(self.db.all_custom( label=self.db.field_metadata.key_to_label(col))) editor.update_items_cache(all_items) - ct = index.data(Qt.DisplayRole).toString() - editor.show_initial_value(ct) else: editor = EnLineEdit(parent) return editor + def setEditorData(self, editor, index): + ct = unicode(index.data(Qt.DisplayRole).toString()) + editor.setText(ct) + editor.selectAll() + def setModelData(self, editor, model, index): if isinstance(editor, EditWithComplete): val = editor.lineEdit().text() @@ -183,10 +189,12 @@ class LanguagesDelegate(QStyledItemDelegate): # {{{ def createEditor(self, parent, option, index): editor = LanguagesEdit(parent=parent) editor.init_langs(index.model().db) - ct = index.data(Qt.DisplayRole).toString() - editor.show_initial_value(ct) return editor + def setEditorData(self, editor, index): + ct = unicode(index.data(Qt.DisplayRole).toString()) + editor.show_initial_value(ct) + def setModelData(self, editor, model, index): val = ','.join(editor.lang_codes) model.setData(index, QVariant(val), Qt.EditRole) @@ -249,10 +257,13 @@ class CcTextDelegate(QStyledItemDelegate): # {{{ complete_items = sorted(list(m.db.all_custom(label=m.db.field_metadata.key_to_label(col))), key=sort_key) editor.update_items_cache(complete_items) - ct = index.data(Qt.DisplayRole).toString() - editor.show_initial_value(ct) return editor + def setEditorData(self, editor, index): + ct = unicode(index.data(Qt.DisplayRole).toString()) + editor.setText(ct) + editor.selectAll() + def setModelData(self, editor, model, index): val = editor.text() model.setData(index, QVariant(val), Qt.EditRole)