From 1c739fe9cbd102b4f0fba816fa51798293cb3053 Mon Sep 17 00:00:00 2001
From: Charles Haley <>
Date: Mon, 8 Aug 2011 12:24:10 +0100
Subject: [PATCH] Allow integer and float fields to go to -999999. -1000000 is
the value of 'undefined'. Add a template editor button to the save templates.
---
src/calibre/gui2/custom_column_widgets.py | 9 ++++----
src/calibre/gui2/library/delegates.py | 4 ++--
src/calibre/gui2/preferences/save_template.py | 9 ++++++++
src/calibre/gui2/preferences/save_template.ui | 22 +++++++++++++++----
4 files changed, 33 insertions(+), 11 deletions(-)
diff --git a/src/calibre/gui2/custom_column_widgets.py b/src/calibre/gui2/custom_column_widgets.py
index 836c8eaf43..9e4bd41bbd 100644
--- a/src/calibre/gui2/custom_column_widgets.py
+++ b/src/calibre/gui2/custom_column_widgets.py
@@ -87,7 +87,7 @@ class Int(Base):
self.widgets = [QLabel('&'+self.col_metadata['name']+':', parent),
QSpinBox(parent)]
w = self.widgets[1]
- w.setRange(-100, 100000000)
+ w.setRange(-1000000, 100000000)
w.setSpecialValueText(_('Undefined'))
w.setSingleStep(1)
@@ -110,7 +110,7 @@ class Float(Int):
self.widgets = [QLabel('&'+self.col_metadata['name']+':', parent),
QDoubleSpinBox(parent)]
w = self.widgets[1]
- w.setRange(-100., float(100000000))
+ w.setRange(-1000000., float(100000000))
w.setDecimals(2)
w.setSpecialValueText(_('Undefined'))
w.setSingleStep(1)
@@ -300,7 +300,6 @@ class Series(Base):
w = QDoubleSpinBox(parent)
w.setRange(-100., float(100000000))
w.setDecimals(2)
- w.setSpecialValueText(_('Undefined'))
w.setSingleStep(1)
self.idx_widget=w
self.widgets.append(w)
@@ -605,7 +604,7 @@ class BulkInt(BulkBase):
def setup_ui(self, parent):
self.make_widgets(parent, QSpinBox)
- self.main_widget.setRange(-100, 100000000)
+ self.main_widget.setRange(-1000000, 100000000)
self.main_widget.setSpecialValueText(_('Undefined'))
self.main_widget.setSingleStep(1)
@@ -627,7 +626,7 @@ class BulkFloat(BulkInt):
def setup_ui(self, parent):
self.make_widgets(parent, QDoubleSpinBox)
- self.main_widget.setRange(-100., float(100000000))
+ self.main_widget.setRange(-1000000., float(100000000))
self.main_widget.setDecimals(2)
self.main_widget.setSpecialValueText(_('Undefined'))
self.main_widget.setSingleStep(1)
diff --git a/src/calibre/gui2/library/delegates.py b/src/calibre/gui2/library/delegates.py
index a9c71e526b..c4ea05d38c 100644
--- a/src/calibre/gui2/library/delegates.py
+++ b/src/calibre/gui2/library/delegates.py
@@ -300,13 +300,13 @@ class CcNumberDelegate(QStyledItemDelegate): # {{{
col = m.column_map[index.column()]
if m.custom_columns[col]['datatype'] == 'int':
editor = QSpinBox(parent)
- editor.setRange(-100, 100000000)
+ editor.setRange(-1000000, 100000000)
editor.setSpecialValueText(_('Undefined'))
editor.setSingleStep(1)
else:
editor = QDoubleSpinBox(parent)
editor.setSpecialValueText(_('Undefined'))
- editor.setRange(-100., 100000000)
+ editor.setRange(-1000000., 100000000)
editor.setDecimals(2)
return editor
diff --git a/src/calibre/gui2/preferences/save_template.py b/src/calibre/gui2/preferences/save_template.py
index 174c8dfa42..627c4c7fa9 100644
--- a/src/calibre/gui2/preferences/save_template.py
+++ b/src/calibre/gui2/preferences/save_template.py
@@ -12,6 +12,7 @@ from calibre.gui2 import error_dialog, question_dialog
from calibre.gui2.preferences.save_template_ui import Ui_Form
from calibre.library.save_to_disk import FORMAT_ARG_DESCS, preprocess_template
from calibre.utils.formatter import validation_formatter
+from calibre.gui2.dialogs.template_dialog import TemplateDialog
class SaveTemplate(QWidget, Ui_Form):
@@ -40,6 +41,14 @@ class SaveTemplate(QWidget, Ui_Form):
self.opt_template.editTextChanged.connect(self.changed)
self.opt_template.currentIndexChanged.connect(self.changed)
self.option_name = name
+ self.open_editor.clicked.connect(self.do_open_editor)
+
+ def do_open_editor(self):
+ t = TemplateDialog(self, self.opt_template.text())
+ t.setWindowTitle(_('Edit template'))
+ if t.exec_():
+ self.opt_template.set_value(t.rule[1])
+
def changed(self, *args):
self.changed_signal.emit()
diff --git a/src/calibre/gui2/preferences/save_template.ui b/src/calibre/gui2/preferences/save_template.ui
index 0d7422abcf..c516564ea1 100644
--- a/src/calibre/gui2/preferences/save_template.ui
+++ b/src/calibre/gui2/preferences/save_template.ui
@@ -20,7 +20,7 @@
Save &template
- -
+
-
By adjusting the template below, you can control what folders the files are saved in and what filenames they are given. You can use the / character to indicate sub-folders. Available metadata variables are described below. If a particular book does not have some metadata, the variable will be replaced by the empty string.
@@ -30,18 +30,32 @@
- -
+
-
Available variables:
- -
+
-
-
-
+
+
+
+ 10
+ 0
+
+
+
+
+ -
+
+
+ Template Editor
+
+