From d8f3c0605db9dd1a064ba7a28fcf3bc7cce5c2c5 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 14 Apr 2010 11:01:36 +0530 Subject: [PATCH] Add method to edit custom column metadata --- src/calibre/library/custom_columns.py | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/calibre/library/custom_columns.py b/src/calibre/library/custom_columns.py index 75b112dbae..812a8a9ba3 100644 --- a/src/calibre/library/custom_columns.py +++ b/src/calibre/library/custom_columns.py @@ -178,6 +178,37 @@ class CustomColumns(object): (data['num'],)) self.conn.commit() + def set_custom_column_metadata(self, num, name=None, label=None, + is_editable=None, display=None): + changed = False + if name is not None: + self.conn.execute('UPDATE custom_columns SET name=? WHERE id=?', + (name, num)) + self.custom_column_num_map[num]['name'] = name + changed = True + if label is not None: + self.conn.execute('UPDATE custom_columns SET label=? WHERE id=?', + (label, num)) + self.custom_column_num_map[num]['label'] = label + self.custom_column_label_map[label] = self.custom_column_num_map[num] + changed = True + if is_editable is not None: + self.conn.execute('UPDATE custom_columns SET is_editable=? WHERE id=?', + (bool(is_editable), num)) + self.custom_column_num_map[num]['is_editable'] = bool(is_editable) + changed = True + if display is not None: + self.conn.execute('UPDATE custom_columns SET display=? WHERE id=?', + (json.dumps(display), num)) + self.custom_column_num_map[num]['display'] = display + changed = True + + if changed: + self.conn.commit() + return changed + + + def set_custom(self, id_, val, label=None, num=None, append=False, notify=True): if label is not None: data = self.custom_column_label_map[label]