From c44af8e71aef8e42a6340062fdf3fe829a9338f9 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 7 Jan 2022 11:54:24 +0000 Subject: [PATCH] Create custom column dialog: Fix exception if the library has no custom columns --- src/calibre/gui2/preferences/columns.py | 4 +++- src/calibre/gui2/preferences/create_custom_column.py | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/preferences/columns.py b/src/calibre/gui2/preferences/columns.py index dd868abcdf..2997d03e46 100644 --- a/src/calibre/gui2/preferences/columns.py +++ b/src/calibre/gui2/preferences/columns.py @@ -28,7 +28,9 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self.custcols = copy.deepcopy(db.field_metadata.custom_field_metadata()) for k, cc in self.custcols.items(): cc['original_key'] = k - self.initial_created_count = max(x['colnum'] for x in self.custcols.values()) + 1 + # Using max() in this way requires python 3.4+ + self.initial_created_count = max((x['colnum'] for x in self.custcols.values()), + default=0) + 1 self.created_count = self.initial_created_count self.column_up.clicked.connect(self.up_column) diff --git a/src/calibre/gui2/preferences/create_custom_column.py b/src/calibre/gui2/preferences/create_custom_column.py index b674ff80ed..30659bb9a3 100644 --- a/src/calibre/gui2/preferences/create_custom_column.py +++ b/src/calibre/gui2/preferences/create_custom_column.py @@ -787,7 +787,8 @@ class CreateNewCustomColumn(object): self.custcols = copy.deepcopy(db.field_metadata.custom_field_metadata()) # Get the largest internal column number so we can be sure that we can # detect duplicates. - self.created_count = max(x['colnum'] for x in self.custcols.values()) + 1 + self.created_count = max((x['colnum'] for x in self.custcols.values()), + default=0) + 1 def create_column(self, lookup_name, column_heading, datatype, is_multiple, display={}, generate_unused_lookup_name=False, freeze_lookup_name=True):