mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Do not enable edit rows in device tab for devices that do not support editing ebook metadata.
This commit is contained in:
parent
94c5e717a1
commit
9abca9d60f
@ -24,6 +24,8 @@ class Device(object):
|
||||
# it can be a list of the BCD numbers of all devices supported by this driver.
|
||||
BCD = None
|
||||
THUMBNAIL_HEIGHT = 68 # Height for thumbnails on device
|
||||
# Whether the metadata on books can be set via the GUI.
|
||||
CAN_SET_METADATA = True
|
||||
|
||||
def __init__(self, key='-1', log_packets=False, report_progress=None) :
|
||||
"""
|
||||
|
@ -35,6 +35,7 @@ class USBMS(Device):
|
||||
EBOOK_DIR_MAIN = ''
|
||||
EBOOK_DIR_CARD = ''
|
||||
SUPPORTS_SUB_DIRS = False
|
||||
CAN_SET_METADATA = False
|
||||
|
||||
def __init__(self, key='-1', log_packets=False, report_progress=None):
|
||||
Device.__init__(self, key=key, log_packets=log_packets,
|
||||
|
@ -709,6 +709,9 @@ class BooksView(TableView):
|
||||
def close(self):
|
||||
self._model.close()
|
||||
|
||||
def set_editable(self, editable):
|
||||
self._model.set_editable(editable)
|
||||
|
||||
def connect_to_search_box(self, sb):
|
||||
QObject.connect(sb, SIGNAL('search(PyQt_PyObject, PyQt_PyObject)'),
|
||||
self._model.search)
|
||||
@ -785,7 +788,7 @@ class DeviceBooksModel(BooksModel):
|
||||
self.unknown = str(self.trUtf8('Unknown'))
|
||||
self.marked_for_deletion = {}
|
||||
self.search_engine = OnDeviceSearch(self)
|
||||
|
||||
self.editable = True
|
||||
|
||||
def mark_for_deletion(self, job, rows):
|
||||
self.marked_for_deletion[job] = self.indices(rows)
|
||||
@ -793,7 +796,6 @@ class DeviceBooksModel(BooksModel):
|
||||
indices = self.row_indices(row)
|
||||
self.emit(SIGNAL('dataChanged(QModelIndex, QModelIndex)'), indices[0], indices[-1])
|
||||
|
||||
|
||||
def deletion_done(self, job, succeeded=True):
|
||||
if not self.marked_for_deletion.has_key(job):
|
||||
return
|
||||
@ -818,7 +820,7 @@ class DeviceBooksModel(BooksModel):
|
||||
if self.map[index.row()] in self.indices_to_be_deleted():
|
||||
return Qt.ItemIsUserCheckable # Can't figure out how to get the disabled flag in python
|
||||
flags = QAbstractTableModel.flags(self, index)
|
||||
if index.isValid():
|
||||
if index.isValid() and self.editable:
|
||||
if index.column() in [0, 1] or (index.column() == 4 and self.db.supports_tags()):
|
||||
flags |= Qt.ItemIsEditable
|
||||
return flags
|
||||
@ -1000,6 +1002,10 @@ class DeviceBooksModel(BooksModel):
|
||||
done = True
|
||||
return done
|
||||
|
||||
def set_editable(self, editable):
|
||||
self.editable = editable
|
||||
|
||||
|
||||
class SearchBox(QLineEdit):
|
||||
|
||||
INTERVAL = 1000 #: Time to wait before emitting search signal
|
||||
|
@ -585,7 +585,9 @@ class Main(MainWindow, Ui_MainWindow):
|
||||
return
|
||||
mainlist, cardlist = job.result
|
||||
self.memory_view.set_database(mainlist)
|
||||
self.memory_view.set_editable(self.device_manager.device_class.CAN_SET_METADATA)
|
||||
self.card_view.set_database(cardlist)
|
||||
self.card_view.set_editable(self.device_manager.device_class.CAN_SET_METADATA)
|
||||
for view in (self.memory_view, self.card_view):
|
||||
view.sortByColumn(3, Qt.DescendingOrder)
|
||||
if not view.restore_column_widths():
|
||||
|
Loading…
x
Reference in New Issue
Block a user