Bah. Forgot to select all the changed files.

This commit is contained in:
Charles Haley 2013-09-10 11:08:10 +02:00
parent 936baf7e14
commit cdbab2c8e1
3 changed files with 21 additions and 7 deletions

View File

@ -371,6 +371,8 @@ class DB(object):
UPDATE authors SET sort=author_to_author_sort(name) WHERE sort IS NULL;
''')
# Initialize_prefs must be called before initialize_custom_columns because
# icc can set a pref.
self.initialize_prefs(default_prefs, restore_all_prefs, progress_callback)
self.initialize_custom_columns()
self.initialize_tables()
@ -425,6 +427,7 @@ class DB(object):
defs['virtual_libraries'] = {}
defs['virtual_lib_on_startup'] = defs['cs_virtual_lib_on_startup'] = ''
defs['virt_libs_hidden'] = defs['virt_libs_order'] = ()
defs['backup_all_metadata_on_start'] = 'no'
# Migrate the bool tristate tweak
defs['bools_are_tristate'] = \
@ -539,7 +542,7 @@ class DB(object):
DROP TABLE IF EXISTS {lt};
'''.format(table=table, lt=lt)
)
self.custom_columns_deleted = True
self.prefs.set('backup_all_metadata_on_start', 'yes')
self.conn.execute('DELETE FROM custom_columns WHERE mark_for_delete=1')
# Load metadata for custom columns
@ -808,6 +811,7 @@ class DB(object):
if display is not None:
self.conn.execute('UPDATE custom_columns SET display=? WHERE id=?', (json.dumps(display), num))
changed = True
# Note: the caller is responsible for scheduling a metadata backup if necessary
return changed
def create_custom_column(self, label, name, datatype, is_multiple, editable=True, display={}): # {{{
@ -964,6 +968,7 @@ class DB(object):
]
script = ' \n'.join(lines)
self.conn.execute(script)
self.prefs.set('backup_all_metadata_on_start', 'yes')
return num
# }}}

View File

@ -308,9 +308,9 @@ class Cache(object):
field.author_sort_field = self.fields['author_sort']
elif name == 'title':
field.title_sort_field = self.fields['sort']
if self.backend.custom_columns_deleted:
if self.backend.prefs['backup_all_metadata_on_start'] == 'yes':
self.mark_as_dirty(self.all_book_ids())
self.backend.custom_columns_deleted = False
self.backend.prefs.set('backup_all_metadata_on_start', 'no')
@read_api
def field_for(self, name, book_id, default_value=None):
@ -1604,8 +1604,15 @@ class Cache(object):
self.backend.create_custom_column(label, name, datatype, is_multiple, editable=editable, display=display)
@write_api
def set_custom_column_metadata(self, num, name=None, label=None, is_editable=None, display=None):
return self.backend.set_custom_column_metadata(num, name=name, label=label, is_editable=is_editable, display=display)
def set_custom_column_metadata(self, num, name=None, label=None, is_editable=None,
display=None, immediate_backup=False):
changed = self.backend.set_custom_column_metadata(num, name=name, label=label, is_editable=is_editable, display=display)
if changed:
if immediate_backup:
self.mark_as_dirty(self._all_book_ids())
else:
self.backend.prefs.set('backup_all_metadata_on_start', 'yes')
return changed
@read_api
def get_books_for_category(self, category, item_id_or_composite_value):

View File

@ -684,8 +684,10 @@ class LibraryDatabase(object):
def create_custom_column(self, label, name, datatype, is_multiple, editable=True, display={}):
self.new_api.create_custom_column(label, name, datatype, is_multiple, editable=editable, display=display)
def set_custom_column_metadata(self, num, name=None, label=None, is_editable=None, display=None, notify=True):
changed = self.new_api.set_custom_column_metadata(num, name=name, label=label, is_editable=is_editable, display=display)
def set_custom_column_metadata(self, num, name=None, label=None, is_editable=None, display=None,
notify=True, immediate_backup=False):
changed = self.new_api.set_custom_column_metadata(num, name=name, label=label, is_editable=is_editable,
display=display, immediate_backup=immediate_backup)
if changed and notify:
self.notify('metadata', [])