Fix #2021367 [Edit cell not longer select all content](https://bugs.launchpad.net/calibre/+bug/2021367)

This commit is contained in:
Kovid Goyal 2023-05-28 12:43:29 +05:30
parent 340daa300c
commit 3f32a66c32
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 17 additions and 5 deletions

View File

@ -7,7 +7,7 @@ __docformat__ = 'restructuredtext en'
from qt.core import ( from qt.core import (
QLineEdit, QAbstractListModel, Qt, pyqtSignal, QObject, QKeySequence, QAbstractItemView, QLineEdit, QAbstractListModel, Qt, pyqtSignal, QObject, QKeySequence, QAbstractItemView,
QApplication, QListView, QPoint, QModelIndex, QEvent, QApplication, QListView, QPoint, QModelIndex, QEvent, pyqtProperty,
QStyleOptionComboBox, QStyle, QComboBox, QTimer, sip) QStyleOptionComboBox, QStyle, QComboBox, QTimer, sip)
from calibre.constants import ismacos from calibre.constants import ismacos
@ -515,6 +515,16 @@ class EditWithComplete(EnComboBox):
def text(self): def text(self):
return self.lineEdit().text() return self.lineEdit().text()
@pyqtProperty(str)
def currentText(self):
return self.lineEdit().text()
@currentText.setter
def currentText(self, text):
self.setText(text)
self.lineEdit().selectAll()
def selectAll(self): def selectAll(self):
self.lineEdit().selectAll() self.lineEdit().selectAll()

View File

@ -30,8 +30,8 @@ class ItemDelegate(QStyledItemDelegate):
def setEditorData(self, editor, index): def setEditorData(self, editor, index):
name = str(index.data(Qt.ItemDataRole.DisplayRole) or '') name = str(index.data(Qt.ItemDataRole.DisplayRole) or '')
editor.setText(name) n = editor.metaObject().userProperty().name()
editor.lineEdit().selectAll() editor.setProperty(n, name)
def setModelData(self, editor, model, index): def setModelData(self, editor, model, index):
authors = string_to_authors(str(editor.text())) authors = string_to_authors(str(editor.text()))

View File

@ -381,7 +381,8 @@ class CompleteDelegate(QStyledItemDelegate, UpdateEditorGeometry): # {{{
return editor return editor
def setEditorData(self, editor, index): def setEditorData(self, editor, index):
editor.setText(get_val_for_textlike_columns(index)) n = editor.metaObject().userProperty().name()
editor.setProperty(n, get_val_for_textlike_columns(index))
def setModelData(self, editor, model, index): def setModelData(self, editor, model, index):
if isinstance(editor, EditWithComplete): if isinstance(editor, EditWithComplete):
@ -494,7 +495,8 @@ class CcTextDelegate(QStyledItemDelegate, UpdateEditorGeometry): # {{{
return editor return editor
def setEditorData(self, editor, index): def setEditorData(self, editor, index):
editor.setText(get_val_for_textlike_columns(index)) n = editor.metaObject().userProperty().name()
editor.setProperty(n, get_val_for_textlike_columns(index))
def setModelData(self, editor, model, index): def setModelData(self, editor, model, index):
val = editor.text() or '' val = editor.text() or ''