mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
1) fix exception in set_metadata related to composite custom columns
2) make ondevice work with add_books_from_device
This commit is contained in:
parent
992e5c3c08
commit
12768864a5
@ -232,7 +232,7 @@ class AddAction(InterfaceAction):
|
|||||||
# metadata for this book to the device. This sets the uuid to the
|
# metadata for this book to the device. This sets the uuid to the
|
||||||
# correct value. Note that set_books_in_library might sync_booklists
|
# correct value. Note that set_books_in_library might sync_booklists
|
||||||
self.gui.set_books_in_library(booklists=[model.db], reset=True)
|
self.gui.set_books_in_library(booklists=[model.db], reset=True)
|
||||||
model.reset()
|
self.gui.refresh_ondevice()
|
||||||
|
|
||||||
def add_books_from_device(self, view):
|
def add_books_from_device(self, view):
|
||||||
rows = view.selectionModel().selectedRows()
|
rows = view.selectionModel().selectedRows()
|
||||||
|
@ -721,14 +721,16 @@ class DeviceMixin(object): # {{{
|
|||||||
self.device_manager.device.__class__.get_gui_name()+\
|
self.device_manager.device.__class__.get_gui_name()+\
|
||||||
_(' detected.'), 3000)
|
_(' detected.'), 3000)
|
||||||
self.device_connected = device_kind
|
self.device_connected = device_kind
|
||||||
self.refresh_ondevice_info (device_connected = True, reset_only = True)
|
self.library_view.set_device_connected(self.device_connected)
|
||||||
|
self.refresh_ondevice (reset_only = True)
|
||||||
else:
|
else:
|
||||||
self.device_connected = None
|
self.device_connected = None
|
||||||
self.status_bar.device_disconnected()
|
self.status_bar.device_disconnected()
|
||||||
if self.current_view() != self.library_view:
|
if self.current_view() != self.library_view:
|
||||||
self.book_details.reset_info()
|
self.book_details.reset_info()
|
||||||
self.location_manager.update_devices()
|
self.location_manager.update_devices()
|
||||||
self.refresh_ondevice_info(device_connected=False)
|
self.library_view.set_device_connected(self.device_connected)
|
||||||
|
self.refresh_ondevice()
|
||||||
|
|
||||||
def info_read(self, job):
|
def info_read(self, job):
|
||||||
'''
|
'''
|
||||||
@ -760,9 +762,9 @@ class DeviceMixin(object): # {{{
|
|||||||
self.card_b_view.set_editable(self.device_manager.device.CAN_SET_METADATA)
|
self.card_b_view.set_editable(self.device_manager.device.CAN_SET_METADATA)
|
||||||
self.sync_news()
|
self.sync_news()
|
||||||
self.sync_catalogs()
|
self.sync_catalogs()
|
||||||
self.refresh_ondevice_info(device_connected = True)
|
self.refresh_ondevice()
|
||||||
|
|
||||||
def refresh_ondevice_info(self, device_connected, reset_only = False):
|
def refresh_ondevice(self, reset_only = False):
|
||||||
'''
|
'''
|
||||||
Force the library view to refresh, taking into consideration new
|
Force the library view to refresh, taking into consideration new
|
||||||
device books information
|
device books information
|
||||||
@ -770,7 +772,7 @@ class DeviceMixin(object): # {{{
|
|||||||
self.book_on_device(None, reset=True)
|
self.book_on_device(None, reset=True)
|
||||||
if reset_only:
|
if reset_only:
|
||||||
return
|
return
|
||||||
self.library_view.set_device_connected(device_connected)
|
self.library_view.model().refresh_ondevice()
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
@ -803,7 +805,7 @@ class DeviceMixin(object): # {{{
|
|||||||
self.book_on_device(None, reset=True)
|
self.book_on_device(None, reset=True)
|
||||||
# We need to reset the ondevice flags in the library. Use a big hammer,
|
# We need to reset the ondevice flags in the library. Use a big hammer,
|
||||||
# so we don't need to worry about whether some succeeded or not.
|
# so we don't need to worry about whether some succeeded or not.
|
||||||
self.refresh_ondevice_info(device_connected=True, reset_only=False)
|
self.refresh_ondevice(reset_only=False)
|
||||||
|
|
||||||
def dispatch_sync_event(self, dest, delete, specific):
|
def dispatch_sync_event(self, dest, delete, specific):
|
||||||
rows = self.library_view.selectionModel().selectedRows()
|
rows = self.library_view.selectionModel().selectedRows()
|
||||||
@ -1300,7 +1302,7 @@ class DeviceMixin(object): # {{{
|
|||||||
if not self.set_books_in_library(self.booklists(), reset=True):
|
if not self.set_books_in_library(self.booklists(), reset=True):
|
||||||
self.upload_booklists()
|
self.upload_booklists()
|
||||||
self.book_on_device(None, reset=True)
|
self.book_on_device(None, reset=True)
|
||||||
self.refresh_ondevice_info(device_connected = True)
|
self.refresh_ondevice()
|
||||||
|
|
||||||
view = self.card_a_view if on_card == 'carda' else \
|
view = self.card_a_view if on_card == 'carda' else \
|
||||||
self.card_b_view if on_card == 'cardb' else self.memory_view
|
self.card_b_view if on_card == 'cardb' else self.memory_view
|
||||||
|
@ -120,6 +120,9 @@ class BooksModel(QAbstractTableModel): # {{{
|
|||||||
|
|
||||||
def set_device_connected(self, is_connected):
|
def set_device_connected(self, is_connected):
|
||||||
self.device_connected = is_connected
|
self.device_connected = is_connected
|
||||||
|
self.refresh_ondevice()
|
||||||
|
|
||||||
|
def refresh_ondevice(self):
|
||||||
self.db.refresh_ondevice()
|
self.db.refresh_ondevice()
|
||||||
self.refresh() # does a resort()
|
self.refresh() # does a resort()
|
||||||
self.research()
|
self.research()
|
||||||
|
@ -427,6 +427,8 @@ class CustomColumns(object):
|
|||||||
data = self.custom_column_label_map[label]
|
data = self.custom_column_label_map[label]
|
||||||
if num is not None:
|
if num is not None:
|
||||||
data = self.custom_column_num_map[num]
|
data = self.custom_column_num_map[num]
|
||||||
|
if data['datatype'] == 'composite':
|
||||||
|
return None
|
||||||
if not data['editable']:
|
if not data['editable']:
|
||||||
raise ValueError('Column %r is not editable'%data['label'])
|
raise ValueError('Column %r is not editable'%data['label'])
|
||||||
table, lt = self.custom_table_names(data['num'])
|
table, lt = self.custom_table_names(data['num'])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user