diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot
index 42d11b3ae4..218fb031e7 100644
--- a/src/calibre/translations/calibre.pot
+++ b/src/calibre/translations/calibre.pot
@@ -4,9 +4,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: calibre 0.6.37\n"
-"POT-Creation-Date: 2010-02-08 17:48+MST\n"
-"PO-Revision-Date: 2010-02-08 17:48+MST\n"
+"Project-Id-Version: calibre 0.6.38\n"
+"POT-Creation-Date: 2010-02-08 22:00+MST\n"
+"PO-Revision-Date: 2010-02-08 22:00+MST\n"
"Last-Translator: Automatically generated\n"
"Language-Team: LANGUAGE\n"
"MIME-Version: 1.0\n"
@@ -46,8 +46,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444
@@ -112,12 +112,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:405
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:427
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:926
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1052
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185
#: /home/kovid/work/calibre/src/calibre/library/cli.py:281
#: /home/kovid/work/calibre/src/calibre/library/database.py:913
@@ -1322,23 +1322,23 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1118
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120
msgid "Title"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:407
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1119
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121
msgid "Author(s)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173
msgid "Publisher"
msgstr ""
@@ -1351,24 +1351,24 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94
msgid "Comments"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1062
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124
#: /home/kovid/work/calibre/src/calibre/gui2/status.py:96
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132
msgid "Tags"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:368
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132
msgid "Series"
@@ -1379,13 +1379,13 @@ msgid "Language"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1061
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063
msgid "Timestamp"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171
msgid "Published"
msgstr ""
@@ -3382,8 +3382,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1057
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059
#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92
msgid "Path"
msgstr ""
@@ -3393,7 +3393,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359
#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132
msgid "Formats"
@@ -4268,67 +4268,67 @@ msgstr ""
msgid "Abort the editing of all remaining books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413
msgid "This ISBN number is valid"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416
msgid "This ISBN number is invalid"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512
msgid "Downloading cover..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535
msgid "Cannot fetch cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536
msgid "Could not fetch cover.
"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526
msgid "The download timed out."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530
msgid "Could not find cover for this book. Try specifying the ISBN first."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542
msgid "Bad cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543
msgid "The cover is not a valid picture"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573
msgid "There were errors"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574
msgid "There were errors downloading social metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:603
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604
msgid "Cannot fetch metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605
msgid "You must specify at least one of ISBN, Title, Authors or Publisher"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:671
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675
msgid "Permission denied"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:672
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676
msgid "Could not open %s. Is it being used by another program?"
msgstr ""
@@ -4961,23 +4961,23 @@ msgstr ""
msgid " - Jobs"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122
msgid "Size (MB)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123
msgid "Date"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172
msgid "Rating"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:351
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:357
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:362
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77
@@ -4985,23 +4985,23 @@ msgstr ""
msgid "None"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:368
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369
msgid "Book %s of %s."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:880
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882
msgid "Not allowed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:881
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883
msgid "Dropping onto a device is not supported. First add the book to the calibre library."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1056
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058
msgid "Format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1110
+#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112
msgid "Double click to edit me
"
msgstr ""
diff --git a/src/calibre/utils/config.py b/src/calibre/utils/config.py
index 8bc0039520..4bde124c40 100644
--- a/src/calibre/utils/config.py
+++ b/src/calibre/utils/config.py
@@ -6,7 +6,7 @@ __docformat__ = 'restructuredtext en'
'''
Manage application-wide preferences.
'''
-import os, re, cPickle, textwrap, traceback, plistlib, json, shutil
+import os, re, cPickle, textwrap, traceback, plistlib, json
from copy import deepcopy
from functools import partial
from optparse import OptionParser as _OptionParser
@@ -678,9 +678,12 @@ prefs = ConfigProxy(_prefs())
# Read tweaks
def read_tweaks():
+ make_config_dir()
+ default_tweaks = P('default_tweaks.py', data=True)
tweaks_file = os.path.join(config_dir, 'tweaks.py')
if not os.path.exists(tweaks_file):
- shutil.copyfile(P('default_tweaks.py'), tweaks_file)
+ with open(tweaks_file, 'wb') as f:
+ f.write(default_tweaks)
l, g = {}, {}
try:
exec open(tweaks_file, 'rb') in g, l
@@ -688,7 +691,7 @@ def read_tweaks():
print 'Failed to load custom tweaks file'
traceback.print_exc()
dl, dg = {}, {}
- exec P('default_tweaks.py', data=True) in dg, dl
+ exec default_tweaks in dg, dl
dl.update(l)
return dl