Sync to trunk.

This commit is contained in:
John Schember 2009-10-20 17:15:27 -04:00
commit 4fe89589e3
29 changed files with 5147 additions and 4818 deletions

View File

@ -21,9 +21,12 @@ class TheAtlantic(BasicNewsRecipe):
dict(name='div', id=['seealso','storybottom', 'footer', 'ad_banner_top', 'sidebar','articletoolstop','subcontent',]), dict(name='div', id=['seealso','storybottom', 'footer', 'ad_banner_top', 'sidebar','articletoolstop','subcontent',]),
dict(name='p', attrs={'id':["pagination"]}), dict(name='p', attrs={'id':["pagination"]}),
dict(name='table',attrs={'class':"tools"}), dict(name='table',attrs={'class':"tools"}),
dict(name='style'),
dict(name='a', href='/a/newsletters.mhtml') dict(name='a', href='/a/newsletters.mhtml')
] ]
remove_attributes = ['icap', 'callout', 'style']
no_stylesheets = True no_stylesheets = True
conversion_options = { 'linearize_tables':True }
extra_css = ''' extra_css = '''
#timestamp{font-family:Arial,Helvetica,sans-serif; color:#666666 ;font-size:x-small} #timestamp{font-family:Arial,Helvetica,sans-serif; color:#666666 ;font-size:x-small}
@ -50,10 +53,14 @@ class TheAtlantic(BasicNewsRecipe):
for item in soup.findAll('div', attrs={'class':'item'}): for item in soup.findAll('div', attrs={'class':'item'}):
a = item.find('a') a = item.find('a')
if a and a.has_key('href'): if a and a.has_key('href'):
url = a['href']#.replace('/doc', 'doc/print') url = a['href']
if not url.startswith('http://'): if not url.startswith('http://'):
url = 'http://www.theatlantic.com/'+url url = 'http://www.theatlantic.com/'+url
url = url.replace('/doc/', '/doc/print/')
title = self.tag_to_string(a) title = self.tag_to_string(a)
if title in ('VIDEO', 'AUDIO', 'INTERACTIVE MAP', 'SIDEBAR', 'RECIPES'):
continue
title = title.replace('&', '&')
byline = item.find(attrs={'class':'byline'}) byline = item.find(attrs={'class':'byline'})
date = self.tag_to_string(byline) if byline else '' date = self.tag_to_string(byline) if byline else ''
description = '' description = ''

View File

@ -10,7 +10,7 @@ from calibre.ebooks.BeautifulSoup import Tag
class HLN_be(BasicNewsRecipe): class HLN_be(BasicNewsRecipe):
title = 'Het Belang Van Limburg' title = 'Het Belang Van Limburg'
__author__ = 'Darko Miletic' __author__ = 'Darko Miletic and Sujata Raman'
description = 'News from Belgium in Dutch' description = 'News from Belgium in Dutch'
publisher = 'Het Belang Van Limburg' publisher = 'Het Belang Van Limburg'
category = 'news, politics, Belgium' category = 'news, politics, Belgium'
@ -32,6 +32,14 @@ class HLN_be(BasicNewsRecipe):
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\noverride_css=" p {text-indent: 0cm; margin-top: 0em; margin-bottom: 0.5em} "' html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\noverride_css=" p {text-indent: 0cm; margin-top: 0em; margin-bottom: 0.5em} "'
extra_css = '''
body{font-family:"Verdana",sans-serif; font-size:80%;}
.h1{font-family:"Verdana",sans-serif; font-size:large; font-weight:bold;}
.captionEmbeddedMasterObject{font-style:italic; font-size:80%;}
.gen_footnote3{font-size:80%; color: #666666;}
'''
keep_only_tags = [dict(name='div', attrs={'class':'art_box2'})] keep_only_tags = [dict(name='div', attrs={'class':'art_box2'})]
remove_tags = [ remove_tags = [
dict(name=['embed','object']) dict(name=['embed','object'])

View File

@ -6,7 +6,7 @@ __license__ = 'GPL v3'
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>' __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
import sys, os, textwrap, subprocess, shutil, tempfile, atexit, stat import sys, os, textwrap, subprocess, shutil, tempfile, atexit, stat, shlex
from setup import Command, islinux, basenames, modules, functions, \ from setup import Command, islinux, basenames, modules, functions, \
__appname__, __version__ __appname__, __version__
@ -149,7 +149,9 @@ class Develop(Command):
src = os.path.join(self.SRC, 'calibre', 'devices', 'linux_mount_helper.c') src = os.path.join(self.SRC, 'calibre', 'devices', 'linux_mount_helper.c')
dest = os.path.join(self.staging_bindir, 'calibre-mount-helper') dest = os.path.join(self.staging_bindir, 'calibre-mount-helper')
self.info('Installing mount helper to '+ dest) self.info('Installing mount helper to '+ dest)
p = subprocess.Popen(['gcc', '-Wall', '-pedantic', src, '-o', dest]) cflags = os.environ.get('OVERRIDE_CFLAGS', '-Wall -pedantic')
cflags = shlex.split(cflags)
p = subprocess.Popen(['gcc']+cflags+[src, '-o', dest])
ret = p.wait() ret = p.wait()
if ret != 0: if ret != 0:
return warn() return warn()

View File

@ -6,7 +6,13 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
import sys, re, os, shutil, subprocess, stat, glob, zipfile, plistlib import sys, re, os, shutil, subprocess, stat, glob, zipfile, plistlib
from setup import __version__ as VERSION, __appname__ as APPNAME, SRC, Command, \ from setup import __version__ as VERSION, __appname__ as APPNAME, SRC, Command, \
scripts, basenames, functions as main_functions, modules as main_modules scripts, basenames, functions as main_functions, modules as main_modules
from setuptools import setup
try:
from setuptools import setup
except:
setup
class setup:
pass
try: try:
from py2app.build_app import py2app from py2app.build_app import py2app

View File

@ -36,4 +36,12 @@ class ESLICK(USBMS):
SUPPORTS_SUB_DIRS = True SUPPORTS_SUB_DIRS = True
def windows_sort_drives(self, drives):
main = drives.get('main', None)
card = drives.get('carda', None)
if card and main and card < main:
drives['main'] = card
drives['carda'] = main
return drives

View File

@ -188,7 +188,7 @@ class MobiMLizer(object):
bstate.vpadding = bstate.vmargin = 0 bstate.vpadding = bstate.vmargin = 0
if tag not in TABLE_TAGS: if tag not in TABLE_TAGS:
wrapper.attrib['height'] = self.mobimlize_measure(vspace) wrapper.attrib['height'] = self.mobimlize_measure(vspace)
para.attrib['width'] = self.mobimlize_measure(indent) para.attrib['width'] = self.mobimlize_measure(indent)
elif tag == 'table' and vspace > 0: elif tag == 'table' and vspace > 0:
vspace = int(round(vspace / self.profile.fbase)) vspace = int(round(vspace / self.profile.fbase))
while vspace > 0: while vspace > 0:

View File

@ -489,6 +489,9 @@ class MobiReader(object):
mobi_version = self.book_header.mobi_version mobi_version = self.book_header.mobi_version
for i, tag in enumerate(root.iter(etree.Element)): for i, tag in enumerate(root.iter(etree.Element)):
tag.attrib.pop('xmlns', '') tag.attrib.pop('xmlns', '')
for x in tag.attrib:
if ':' in x:
del tag.attrib[x]
if tag.tag in ('country-region', 'place', 'placetype', 'placename', if tag.tag in ('country-region', 'place', 'placetype', 'placename',
'state', 'city', 'street', 'address', 'content'): 'state', 'city', 'street', 'address', 'content'):
tag.tag = 'div' if tag.tag == 'content' else 'span' tag.tag = 'div' if tag.tag == 'content' else 'span'

View File

@ -188,6 +188,16 @@ class Stylizer(object):
%(text, item.href)) %(text, item.href))
for elem in matches: for elem in matches:
self.style(elem)._update_cssdict(cssdict) self.style(elem)._update_cssdict(cssdict)
for elem in xpath(tree, '//h:img[@width or @height]'):
base = elem.get('style', '').strip()
if base:
base += ';'
for prop in ('width', 'height'):
val = elem.get(prop, False)
if val:
base += '%s: %s;'%(prop, val)
del elem.attrib[prop]
elem.set('style', base)
for elem in xpath(tree, '//h:*[@style]'): for elem in xpath(tree, '//h:*[@style]'):
self.style(elem)._apply_style_attr() self.style(elem)._apply_style_attr()

View File

@ -72,7 +72,7 @@ class Tokenize:
return line return line
def __compile_expressions(self): def __compile_expressions(self):
self.__ms_hex_exp = re.compile(r"\\\'(..)") self.__ms_hex_exp = re.compile(r"\\\'(..)")
self.__utf_exp = re.compile(r"\\u(-?\d{3,6})") self.__utf_exp = re.compile(r"\\u(-?\d{3,6}) {0,1}")
self.__splitexp = re.compile(r"(\\[\\{}]|{|}|\\[^\s\\{}&]+(?:\s)?)") self.__splitexp = re.compile(r"(\\[\\{}]|{|}|\\[^\s\\{}&]+(?:\s)?)")
self.__par_exp = re.compile(r'\\$') self.__par_exp = re.compile(r'\\$')
self.__mixed_exp = re.compile(r"(\\[a-zA-Z]+\d+)(\D+)") self.__mixed_exp = re.compile(r"(\\[a-zA-Z]+\d+)(\D+)")

View File

@ -453,6 +453,12 @@ class ConfigDialog(QDialog, Ui_Dialog):
self.delete_news.setEnabled) self.delete_news.setEnabled)
self.setup_conversion_options() self.setup_conversion_options()
self.opt_worker_limit.setValue(config['worker_limit']) self.opt_worker_limit.setValue(config['worker_limit'])
self.connect(self.button_open_config_dir, SIGNAL('clicked()'),
self.open_config_dir)
def open_config_dir(self):
from calibre.utils.config import config_dir
QDesktopServices.openUrl(QUrl.fromLocalFile(config_dir))
def create_symlinks(self): def create_symlinks(self):
from calibre.utils.osx_symlinks import create_symlinks from calibre.utils.osx_symlinks import create_symlinks

View File

@ -616,13 +616,20 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0" colspan="2"> <item row="3" column="0" colspan="2">
<widget class="QPushButton" name="button_osx_symlinks"> <widget class="QPushButton" name="button_osx_symlinks">
<property name="text"> <property name="text">
<string>&amp;Install command line tools</string> <string>&amp;Install command line tools</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0" colspan="2">
<widget class="QPushButton" name="button_open_config_dir">
<property name="text">
<string>Open calibre &amp;configuration directory</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="page_4"> <widget class="QWidget" name="page_4">

View File

@ -14,7 +14,7 @@ from PyQt4.Qt import QDialog, QApplication, SIGNAL, Qt, QTime, QObject, QMenu, \
from calibre.gui2.dialogs.scheduler_ui import Ui_Dialog from calibre.gui2.dialogs.scheduler_ui import Ui_Dialog
from calibre.gui2.search_box import SearchBox2 from calibre.gui2.search_box import SearchBox2
from calibre.gui2 import config as gconf from calibre.gui2 import config as gconf, error_dialog
from calibre.web.feeds.recipes.model import RecipeModel from calibre.web.feeds.recipes.model import RecipeModel
from calibre.ptempfile import PersistentTemporaryFile from calibre.ptempfile import PersistentTemporaryFile
@ -36,6 +36,7 @@ class SchedulerDialog(QDialog, Ui_Dialog):
self.connect(self.recipe_model, SIGNAL('searched(PyQt_PyObject)'), self.connect(self.recipe_model, SIGNAL('searched(PyQt_PyObject)'),
self.search_done) self.search_done)
self.search.setFocus(Qt.OtherFocusReason) self.search.setFocus(Qt.OtherFocusReason)
self.commit_on_change = True
self.recipes.setModel(self.recipe_model) self.recipes.setModel(self.recipe_model)
self.detail_box.setVisible(False) self.detail_box.setVisible(False)
@ -55,6 +56,10 @@ class SchedulerDialog(QDialog, Ui_Dialog):
self.old_news.setValue(gconf['oldest_news']) self.old_news.setValue(gconf['oldest_news'])
def break_cycles(self): def break_cycles(self):
self.disconnect(self.recipe_model, SIGNAL('searched(PyQt_PyObject)'),
self.search_done)
self.disconnect(self.recipe_model, SIGNAL('searched(PyQt_PyObject)'),
self.search.search_done)
self.recipe_model = None self.recipe_model = None
def search_done(self, *args): def search_done(self, *args):
@ -68,25 +73,32 @@ class SchedulerDialog(QDialog, Ui_Dialog):
self.last_downloaded.setVisible(enabled) self.last_downloaded.setVisible(enabled)
def current_changed(self, current, previous): def current_changed(self, current, previous):
if previous.isValid(): if self.commit_on_change:
self.commit(urn=getattr(previous.internalPointer(), 'urn', None)) if previous.isValid():
if not self.commit(urn=getattr(previous.internalPointer(),
'urn', None)):
self.commit_on_change = False
self.recipes.setCurrentIndex(previous)
else:
self.commit_on_change = True
urn = self.current_urn urn = self.current_urn
if urn is not None: if urn is not None:
self.initialize_detail_box(urn) self.initialize_detail_box(urn)
def accept(self): def accept(self):
self.commit() if not self.commit():
return False
return QDialog.accept(self) return QDialog.accept(self)
def download_clicked(self): def download_clicked(self):
self.commit() self.commit()
if self.current_urn: if self.commit() and self.current_urn:
self.emit(SIGNAL('download(PyQt_PyObject)'), self.current_urn) self.emit(SIGNAL('download(PyQt_PyObject)'), self.current_urn)
def download_all_clicked(self): def download_all_clicked(self):
self.commit() if self.commit() and self.commit():
self.emit(SIGNAL('download(PyQt_PyObject)'), None) self.emit(SIGNAL('download(PyQt_PyObject)'), None)
@property @property
def current_urn(self): def current_urn(self):
@ -97,10 +109,15 @@ class SchedulerDialog(QDialog, Ui_Dialog):
def commit(self, urn=None): def commit(self, urn=None):
urn = self.current_urn if urn is None else urn urn = self.current_urn if urn is None else urn
if not self.detail_box.isVisible() or urn is None: if not self.detail_box.isVisible() or urn is None:
return return True
if self.account.isVisible(): if self.account.isVisible():
un, pw = map(unicode, (self.username.text(), self.password.text())) un, pw = map(unicode, (self.username.text(), self.password.text()))
if not un and not pw and self.schedule.isChecked():
error_dialog(self, _('Need username and password'),
_('You must provide a username and/or password to '
'use this news source.'), show=True)
return False
self.recipe_model.set_account_info(urn, un.strip(), pw.strip()) self.recipe_model.set_account_info(urn, un.strip(), pw.strip())
if self.schedule.isChecked(): if self.schedule.isChecked():
@ -122,6 +139,7 @@ class SchedulerDialog(QDialog, Ui_Dialog):
custom_tags = unicode(self.custom_tags.text()).strip() custom_tags = unicode(self.custom_tags.text()).strip()
custom_tags = [x.strip() for x in custom_tags.split(',')] custom_tags = [x.strip() for x in custom_tags.split(',')]
self.recipe_model.customize_recipe(urn, add_title_tag, custom_tags) self.recipe_model.customize_recipe(urn, add_title_tag, custom_tags)
return True
def initialize_detail_box(self, urn): def initialize_detail_box(self, urn):
self.detail_box.setVisible(True) self.detail_box.setVisible(True)

View File

@ -1621,12 +1621,13 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
try: try:
os.makedirs(self.library_path) os.makedirs(self.library_path)
except: except:
self.library_path = os.path.expanduser('~/Library') self.library_path = os.path.expanduser('~/CalibreLibrary')
error_dialog(self, _('Invalid library location'), error_dialog(self, _('Invalid library location'),
_('Could not access %s. Using %s as the library.')% _('Could not access %s. Using %s as the library.')%
(repr(self.library_path), repr(self.library_path)) (repr(self.library_path), repr(self.library_path))
).exec_() ).exec_()
os.makedirs(self.library_path) if not os.path.exists(self.library_path):
os.makedirs(self.library_path)
def read_settings(self): def read_settings(self):

View File

@ -140,8 +140,8 @@ class PostInstall:
for f in os.listdir('.'): for f in os.listdir('.'):
if os.stat(f).st_uid == 0: if os.stat(f).st_uid == 0:
os.rmdir(f) if os.path.isdir(f) else os.unlink(f) os.rmdir(f) if os.path.isdir(f) else os.unlink(f)
if os.stat(config_dir).st_uid == 0: if os.stat(config_dir).st_uid == 0:
os.rmdir(config_dir) os.rmdir(config_dir)
if warn is None and self.warnings: if warn is None and self.warnings:
self.info('There were %d warnings'%len(self.warnings)) self.info('There were %d warnings'%len(self.warnings))

View File

@ -21,7 +21,7 @@ What formats does |app| support conversion to/from?
It can convert every input format in the following list, to every output format. It can convert every input format in the following list, to every output format.
*Input Formats:* CBZ, CBR, CBC, EPUB, FB2, HTML, LIT, LRF, MOBI, ODT, PDF, PRC**, PDB, PML, RB, RTF, TCR, TXT *Input Formats:* CBZ, CBR, CBC, EPUB, FB2, HTML, LIT, LRF, MOBI, ODT, PDF, PRC**, PDB, PML, RB, RTF, TCR, TXT
*Output Formats:* EPUB, FB2, OEB, LIT, LRF, MOBI, PDB, PML, RB, PDF, TXT *Output Formats:* EPUB, FB2, OEB, LIT, LRF, MOBI, PDB, PML, RB, PDF, TCR, TXT
** PRC is a generic format, |app| supports PRC files with TextRead and MOBIBook headers ** PRC is a generic format, |app| supports PRC files with TextRead and MOBIBook headers

File diff suppressed because it is too large Load Diff

View File

@ -5,8 +5,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre 0.6.18\n" "Project-Id-Version: calibre 0.6.18\n"
"POT-Creation-Date: 2009-10-17 10:21+MDT\n" "POT-Creation-Date: 2009-10-19 18:10+MDT\n"
"PO-Revision-Date: 2009-10-17 10:21+MDT\n" "PO-Revision-Date: 2009-10-19 18:10+MDT\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: LANGUAGE\n" "Language-Team: LANGUAGE\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -60,8 +60,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:154 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:154
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:588 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:591
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:775 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:886 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:886
@ -110,7 +110,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:106
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:139
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:431 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:431
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:152 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:391
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:404
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:876 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:876
@ -521,7 +521,7 @@ msgid "There is insufficient free space on the storage card"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:713 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:713
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:214 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:218
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1006 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1010 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1010
@ -1601,13 +1601,13 @@ msgid "Sidebar"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:22 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:22 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:22
msgid "Normally calibre treats blank lines as paragraph markers. With this option it will assume that every line represents a paragraph instead." msgid "Normally calibre treats blank lines as paragraph markers. With this option it will assume that every line represents a paragraph instead."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:26 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:26 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:26
msgid "Normally calibre treats blank lines as paragraph markers. With this option it will assume that every line starting with an indent (either a tab or 2+ spaces) represents a paragraph. Paragraphs end when the next line that starts with an indent is reached." msgid "Normally calibre treats blank lines as paragraph markers. With this option it will assume that every line starting with an indent (either a tab or 2+ spaces) represents a paragraph. Paragraphs end when the next line that starts with an indent is reached."
msgstr "" msgstr ""
@ -1826,6 +1826,14 @@ msgstr ""
msgid "This RTF file has a feature calibre does not support. Convert it to HTML first and then try it." msgid "This RTF file has a feature calibre does not support. Convert it to HTML first and then try it."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23
msgid "Specify the character encoding of the output document. The default is utf-8."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27
msgid "Speciy the compression level to use. Scale 1 - 10. 1 being the lowest compression but the fastest and 10 being the highest compression but the slowest."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32
msgid "Run the text input through the markdown pre-processor. To learn more about markdown see" msgid "Run the text input through the markdown pre-processor. To learn more about markdown see"
msgstr "" msgstr ""
@ -2176,12 +2184,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:44 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:44
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:62 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:62
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:471 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:474
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:483 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:486
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:484 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:487
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:500 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375
@ -3206,126 +3214,126 @@ msgstr ""
msgid "new email address" msgid "new email address"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:461 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:467
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:791 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:797
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1045 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1045
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
msgid "Error" msgid "Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:462 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
msgid "Failed to install command line tools." msgid "Failed to install command line tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:465 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:471
msgid "Command line tools installed" msgid "Command line tools installed"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:466 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:472
msgid "Command line tools installed in" msgid "Command line tools installed in"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:467 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:473
msgid "If you move calibre.app, you have to re-install the command line tools." msgid "If you move calibre.app, you have to re-install the command line tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:518 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524
msgid "No valid plugin path" msgid "No valid plugin path"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:519 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525
msgid "%s is not a valid plugin path" msgid "%s is not a valid plugin path"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:528
msgid "Choose plugin" msgid "Choose plugin"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:540
msgid "Plugin cannot be disabled" msgid "Plugin cannot be disabled"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541
msgid "The plugin: %s cannot be disabled" msgid "The plugin: %s cannot be disabled"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:544 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550
msgid "Plugin not customizable" msgid "Plugin not customizable"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:545 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551
msgid "Plugin: %s does not need customization" msgid "Plugin: %s does not need customization"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:575
msgid "Customize %s" msgid "Customize %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:579 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:585
msgid "Cannot remove builtin plugin" msgid "Cannot remove builtin plugin"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:580 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:586
msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgid " cannot be removed. It is a builtin plugin. Try disabling it instead."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:613 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:619
msgid "Error log:" msgid "Error log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:620 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:626
msgid "Access log:" msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:654
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:589 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:589
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:678
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:503 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:503
msgid "Select location for books" msgid "Select location for books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:680 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:686
msgid "Invalid size" msgid "Invalid size"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:681 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:687
msgid "The size %s is invalid. must be of the form widthxheight" msgid "The size %s is invalid. must be of the form widthxheight"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:732 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:737 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:743
msgid "Invalid database location" msgid "Invalid database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:733 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:739
msgid "Invalid database location " msgid "Invalid database location "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:734 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:740
msgid "<br>Must be a directory." msgid "<br>Must be a directory."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:744
msgid "Invalid database location.<br>Cannot write to " msgid "Invalid database location.<br>Cannot write to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:772 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:778
msgid "Checking database integrity" msgid "Checking database integrity"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:792 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:798
msgid "Failed to check database integrity" msgid "Failed to check database integrity"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:797 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:803
msgid "Some inconsistencies found" msgid "Some inconsistencies found"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:798 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804
msgid "The following books had formats listed in the database that are not actually available. The entries for the formats have been removed. You should check them manually. This can happen if you manipulate the files in the library folder directly." msgid "The following books had formats listed in the database that are not actually available. The entries for the formats have been removed. You should check them manually. This can happen if you manipulate the files in the library folder directly."
msgstr "" msgstr ""
@ -3409,256 +3417,260 @@ msgstr ""
msgid "&Saving books" msgid "&Saving books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:468 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:471
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173
msgid "Preferences" msgid "Preferences"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:469 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:472
msgid "&Location of ebooks (The ebooks are stored in folders sorted by author and metadata is stored in the file metadata.db)" msgid "&Location of ebooks (The ebooks are stored in folders sorted by author and metadata is stored in the file metadata.db)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:470 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:473
msgid "Browse for the new database location" msgid "Browse for the new database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:472 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:475
msgid "Show notification when &new version is available" msgid "Show notification when &new version is available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:473 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:476
msgid "Default network &timeout:" msgid "Default network &timeout:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:474 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:477
msgid "Set the default timeout for network fetches (i.e. anytime we go out to the internet to get information)" msgid "Set the default timeout for network fetches (i.e. anytime we go out to the internet to get information)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:475 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:478
msgid " seconds" msgid " seconds"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:476 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:479
msgid "Choose &language (requires restart):" msgid "Choose &language (requires restart):"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:477 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:480
msgid "Normal" msgid "Normal"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:478 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:481
msgid "High" msgid "High"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:479 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:482
msgid "Low" msgid "Low"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:480 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:483
msgid "Job &priority:" msgid "Job &priority:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:481 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:484
msgid "Preferred &output format:" msgid "Preferred &output format:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:485
msgid "Preferred &input format order:" msgid "Preferred &input format order:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:485 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:488
msgid "Use &Roman numerals for series number" msgid "Use &Roman numerals for series number"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:486 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:489
msgid "Enable system &tray icon (needs restart)" msgid "Enable system &tray icon (needs restart)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:487 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490
msgid "Show &notifications in system tray" msgid "Show &notifications in system tray"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:488 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491
msgid "Show cover &browser in a separate window (needs restart)" msgid "Show cover &browser in a separate window (needs restart)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:489 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492
msgid "Search as you type" msgid "Search as you type"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493
msgid "Automatically send downloaded &news to ebook reader" msgid "Automatically send downloaded &news to ebook reader"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494
msgid "&Delete news from library when it is automatically sent to reader" msgid "&Delete news from library when it is automatically sent to reader"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495
msgid "&Number of covers to show in browse mode (needs restart):" msgid "&Number of covers to show in browse mode (needs restart):"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496
msgid "Toolbar" msgid "Toolbar"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497
msgid "Large" msgid "Large"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498
msgid "Medium" msgid "Medium"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499
msgid "Small" msgid "Small"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:500
msgid "&Button size in toolbar" msgid "&Button size in toolbar"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501
msgid "Show &text in toolbar buttons" msgid "Show &text in toolbar buttons"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502
msgid "Select visible &columns in library view" msgid "Select visible &columns in library view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505
msgid "Use internal &viewer for:" msgid "Use internal &viewer for:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506
msgid "Add an email address to which to send books" msgid "Add an email address to which to send books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507
msgid "&Add email" msgid "&Add email"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508
msgid "Make &default" msgid "Make &default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509
msgid "&Remove email" msgid "&Remove email"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510
msgid "calibre can send your books to you (or your reader) by email" msgid "calibre can send your books to you (or your reader) by email"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511
msgid "&Maximum number of waiting worker processes (needs restart):" msgid "&Maximum number of waiting worker processes (needs restart):"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512
msgid "&Check database integrity" msgid "&Check database integrity"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513
msgid "&Install command line tools" msgid "&Install command line tools"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514
msgid "Open calibre &configuration directory"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515
msgid "calibre contains a network server that allows you to access your book collection using a browser from anywhere in the world. Any changes to the settings will only take effect after a server restart." msgid "calibre contains a network server that allows you to access your book collection using a browser from anywhere in the world. Any changes to the settings will only take effect after a server restart."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516
msgid "Server &port:" msgid "Server &port:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117
msgid "&Username:" msgid "&Username:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119
msgid "&Password:" msgid "&Password:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519
msgid "If you leave the password blank, anyone will be able to access your book collection using the web interface." msgid "If you leave the password blank, anyone will be able to access your book collection using the web interface."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520
msgid "The maximum size (widthxheight) for displayed covers. Larger covers are resized. " msgid "The maximum size (widthxheight) for displayed covers. Larger covers are resized. "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521
msgid "Max. &cover size:" msgid "Max. &cover size:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212
msgid "&Show password" msgid "&Show password"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523
msgid "Max. &OPDS items per query:" msgid "Max. &OPDS items per query:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524
msgid "&Start Server" msgid "&Start Server"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525
msgid "St&op Server" msgid "St&op Server"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526
msgid "&Test Server" msgid "&Test Server"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527
msgid "Run server &automatically on startup" msgid "Run server &automatically on startup"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528
msgid "View &server logs" msgid "View &server logs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46
msgid "" msgid ""
"<p>Remember to leave calibre running as the server only runs as long as calibre is running.\n" "<p>Remember to leave calibre running as the server only runs as long as calibre is running.\n"
"<p>Stanza should see your calibre collection automatically. If not, try adding the URL http://myhostname:8080 as a new catalog in the Stanza reader on your iPhone. Here myhostname should be the fully qualified hostname or the IP address of the computer calibre is running on." "<p>Stanza should see your calibre collection automatically. If not, try adding the URL http://myhostname:8080 as a new catalog in the Stanza reader on your iPhone. Here myhostname should be the fully qualified hostname or the IP address of the computer calibre is running on."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531
msgid "Here you can customize the behavior of Calibre by controlling what plugins it uses." msgid "Here you can customize the behavior of Calibre by controlling what plugins it uses."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532
msgid "Enable/&Disable plugin" msgid "Enable/&Disable plugin"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533
msgid "&Customize plugin" msgid "&Customize plugin"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534
msgid "&Remove plugin" msgid "&Remove plugin"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535
msgid "Add new plugin" msgid "Add new plugin"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536
msgid "Plugin &file:" msgid "Plugin &file:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538
msgid "&Add" msgid "&Add"
msgstr "" msgstr ""
@ -3990,28 +4002,28 @@ msgstr ""
msgid "Aborting..." msgid "Aborting..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:155
msgid "Created by: " msgid "Created by: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:162
msgid "Last downloaded: never" msgid "Last downloaded: never"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:177
msgid "%d days, %d hours and %d minutes ago" msgid "%d days, %d hours and %d minutes ago"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:175 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:179
msgid "Last downloaded" msgid "Last downloaded"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:195 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190
msgid "Schedule news download" msgid "Schedule news download"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:198 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:202
msgid "Add a custom news source" msgid "Add a custom news source"
msgstr "" msgstr ""
@ -4993,87 +5005,87 @@ msgstr ""
msgid "Could not access %s. Using %s as the library." msgid "Could not access %s. Using %s as the library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1673 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1674
msgid "is the result of the efforts of many volunteers from all over the world. If you find it useful, please consider donating to support its development." msgid "is the result of the efforts of many volunteers from all over the world. If you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1697 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1698
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1700 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1701
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" Quitting may cause corruption on the device.<br>\n" " Quitting may cause corruption on the device.<br>\n"
" Are you sure you want to quit?" " Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1704 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1705
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1755 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1756
msgid "will keep running in the system tray. To close it, choose <b>Quit</b> in the context menu of the system tray." msgid "will keep running in the system tray. To close it, choose <b>Quit</b> in the context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1774 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1775
msgid "<span style=\"color:red; font-weight:bold\">Latest version: <a href=\"%s\">%s</a></span>" msgid "<span style=\"color:red; font-weight:bold\">Latest version: <a href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1782 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1783
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1783 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1784
msgid "%s has been updated to version %s. See the <a href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. Visit the download page?" msgid "%s has been updated to version %s. See the <a href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1801 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1802
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1803 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1804
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1805 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1806
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1807 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1808
msgid "Do not check for updates" msgid "Do not check for updates"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1855 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1856
msgid "If you are sure it is not running" msgid "If you are sure it is not running"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1857 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1858
msgid "Cannot Start " msgid "Cannot Start "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1858 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1859
msgid "%s is already running." msgid "%s is already running."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1861 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1862
msgid "may be running in the system tray, in the" msgid "may be running in the system tray, in the"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1863 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1864
msgid "upper right region of the screen." msgid "upper right region of the screen."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1865 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1866
msgid "lower right region of the screen." msgid "lower right region of the screen."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1868 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1869
msgid "try rebooting your computer." msgid "try rebooting your computer."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1870 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1871
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1882 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1883
msgid "try deleting the file" msgid "try deleting the file"
msgstr "" msgstr ""
@ -6421,71 +6433,75 @@ msgstr ""
msgid "Unknown News Source" msgid "Unknown News Source"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:588 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:507
msgid "Download finished" msgid "The \"%s\" recipe needs a username and password."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:590 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:590
msgid "Download finished"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:592
msgid "Failed to download the following articles:" msgid "Failed to download the following articles:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:596 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:598
msgid "Failed to download parts of the following articles:" msgid "Failed to download parts of the following articles:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:598 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:600
msgid " from " msgid " from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:600 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:602
msgid "\tFailed links:" msgid "\tFailed links:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:681 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:683
msgid "Could not fetch article. Run with -vv to see the reason" msgid "Could not fetch article. Run with -vv to see the reason"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:702 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:704
msgid "Fetching feeds..." msgid "Fetching feeds..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:706 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:708
msgid "Got feeds from index page" msgid "Got feeds from index page"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:714
msgid "Trying to download cover..." msgid "Trying to download cover..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:766 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:768
msgid "Starting download [%d thread(s)]..." msgid "Starting download [%d thread(s)]..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:782 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:784
msgid "Feeds downloaded to %s" msgid "Feeds downloaded to %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:792 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:794
msgid "Could not download cover: %s" msgid "Could not download cover: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:799 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:801
msgid "Downloading cover from %s" msgid "Downloading cover from %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:925 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:927
msgid "Untitled Article" msgid "Untitled Article"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:996 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:998
msgid "Article downloaded: %s" msgid "Article downloaded: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1007 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1009
msgid "Article download failed: %s" msgid "Article download failed: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1024 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1026
msgid "Fetching feed" msgid "Fetching feed"
msgstr "" msgstr ""
@ -6495,12 +6511,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:170 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:172
msgid "Scheduled" msgid "Scheduled"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:171 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:173
msgid "Custom" msgid "Custom"
msgstr "" msgstr ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -164,6 +164,8 @@ class RecipeModel(QAbstractItemModel, SearchQueryParser):
return cls(*args) return cls(*args)
def ok(urn): def ok(urn):
if restrict_to_urns is None:
return False
return not restrict_to_urns or urn in restrict_to_urns return not restrict_to_urns or urn in restrict_to_urns
new_root = factory(NewsTreeItem, None) new_root = factory(NewsTreeItem, None)
@ -230,6 +232,8 @@ class RecipeModel(QAbstractItemModel, SearchQueryParser):
def search(self, query, refinement): def search(self, query, refinement):
try: try:
results = self.parse(unicode(query)) results = self.parse(unicode(query))
if not results:
results = None
except ParseException: except ParseException:
results = [] results = []
self.do_refresh(restrict_to_urns=results) self.do_refresh(restrict_to_urns=results)