Use preferred output format and input format order when converting via gui.

This commit is contained in:
John Schember 2009-07-05 10:38:57 -04:00
parent 74dc8d5b1d
commit a3361e36f6
4 changed files with 12 additions and 17 deletions

View File

@ -20,10 +20,6 @@ def supported_input_formats():
fmts.add(x) fmts.add(x)
return fmts return fmts
INPUT_FORMAT_PREFERENCES = ['cbr', 'cbz', 'cbc', 'lit', 'mobi', 'prc', 'azw', 'fb2', 'html',
'rtf', 'pdf', 'txt', 'pdb']
OUTPUT_FORMAT_PREFERENCES = ['epub', 'mobi', 'lit', 'pdf', 'pdb', 'txt']
class OptionValues(object): class OptionValues(object):
pass pass

View File

@ -11,7 +11,6 @@ ORG_NAME = 'KovidsBrain'
APP_UID = 'libprs500' APP_UID = 'libprs500'
from calibre import islinux, iswindows from calibre import islinux, iswindows
from calibre.startup import get_lang from calibre.startup import get_lang
from calibre.customize.ui import all_input_formats
from calibre.utils.config import Config, ConfigProxy, dynamic from calibre.utils.config import Config, ConfigProxy, dynamic
import calibre.resources as resources import calibre.resources as resources
from calibre.ebooks.metadata.meta import get_metadata, metadata_from_formats from calibre.ebooks.metadata.meta import get_metadata, metadata_from_formats
@ -49,7 +48,8 @@ def _config():
help=_('Defaults for conversion to LRF')) help=_('Defaults for conversion to LRF'))
c.add_opt('LRF_ebook_viewer_options', default=None, c.add_opt('LRF_ebook_viewer_options', default=None,
help=_('Options for the LRF ebook viewer')) help=_('Options for the LRF ebook viewer'))
c.add_opt('internally_viewed_formats', default=all_input_formats(), c.add_opt('internally_viewed_formats', default=['LRF', 'EPUB', 'LIT',
'MOBI', 'PRC', 'HTML', 'FB2', 'PDB', 'RB'],
help=_('Formats that are viewed using the internal viewer')) help=_('Formats that are viewed using the internal viewer'))
c.add_opt('input_format_order', default=['EPUB', 'MOBI', 'PRC', 'LIT', c.add_opt('input_format_order', default=['EPUB', 'MOBI', 'PRC', 'LIT',
'HTML', 'FB2', 'PDB', 'RB'], 'HTML', 'FB2', 'PDB', 'RB'],

View File

@ -15,7 +15,8 @@ from calibre.gui2.convert.page_setup import PageSetupWidget
from calibre.gui2.convert.structure_detection import StructureDetectionWidget from calibre.gui2.convert.structure_detection import StructureDetectionWidget
from calibre.gui2.convert.toc import TOCWidget from calibre.gui2.convert.toc import TOCWidget
from calibre.gui2.convert import GuiRecommendations from calibre.gui2.convert import GuiRecommendations
from calibre.ebooks.conversion.plumber import Plumber, OUTPUT_FORMAT_PREFERENCES from calibre.ebooks.conversion.plumber import Plumber
from calibre.utils.config import prefs
from calibre.utils.logging import Log from calibre.utils.logging import Log
class BulkConfig(Config): class BulkConfig(Config):
@ -102,7 +103,7 @@ class BulkConfig(Config):
preferred_output_format = preferred_output_format if \ preferred_output_format = preferred_output_format if \
preferred_output_format and preferred_output_format \ preferred_output_format and preferred_output_format \
in output_formats else sort_formats_by_preference(output_formats, in output_formats else sort_formats_by_preference(output_formats,
OUTPUT_FORMAT_PREFERENCES)[0] prefs['output_format'])[0]
self.output_formats.addItems(list(map(QString, [x.upper() for x in self.output_formats.addItems(list(map(QString, [x.upper() for x in
output_formats]))) output_formats])))
self.output_formats.setCurrentIndex(output_formats.index(preferred_output_format)) self.output_formats.setCurrentIndex(output_formats.index(preferred_output_format))
@ -117,4 +118,3 @@ class BulkConfig(Config):
self._recommendations = recs self._recommendations = recs
ResizableDialog.accept(self) ResizableDialog.accept(self)

View File

@ -10,7 +10,7 @@ import sys, cPickle
from PyQt4.Qt import QString, SIGNAL, QAbstractListModel, Qt, QVariant, QFont from PyQt4.Qt import QString, SIGNAL, QAbstractListModel, Qt, QVariant, QFont
from calibre.gui2 import ResizableDialog, NONE from calibre.gui2 import ResizableDialog, NONE, config
from calibre.ebooks.conversion.config import GuiRecommendations, save_specifics, \ from calibre.ebooks.conversion.config import GuiRecommendations, save_specifics, \
load_specifics load_specifics
from calibre.gui2.convert.single_ui import Ui_Dialog from calibre.gui2.convert.single_ui import Ui_Dialog
@ -20,11 +20,10 @@ from calibre.gui2.convert.page_setup import PageSetupWidget
from calibre.gui2.convert.structure_detection import StructureDetectionWidget from calibre.gui2.convert.structure_detection import StructureDetectionWidget
from calibre.gui2.convert.toc import TOCWidget from calibre.gui2.convert.toc import TOCWidget
from calibre.ebooks.conversion.plumber import Plumber, supported_input_formats
from calibre.ebooks.conversion.plumber import Plumber, supported_input_formats, \
INPUT_FORMAT_PREFERENCES, OUTPUT_FORMAT_PREFERENCES
from calibre.customize.ui import available_output_formats from calibre.customize.ui import available_output_formats
from calibre.customize.conversion import OptionRecommendation from calibre.customize.conversion import OptionRecommendation
from calibre.utils.config import prefs
from calibre.utils.logging import Log from calibre.utils.logging import Log
class NoSupportedInputFormats(Exception): class NoSupportedInputFormats(Exception):
@ -33,11 +32,11 @@ class NoSupportedInputFormats(Exception):
def sort_formats_by_preference(formats, prefs): def sort_formats_by_preference(formats, prefs):
def fcmp(x, y): def fcmp(x, y):
try: try:
x = prefs.index(x) x = prefs.index(x.upper())
except ValueError: except ValueError:
x = sys.maxint x = sys.maxint
try: try:
y = prefs.index(y) y = prefs.index(y.upper())
except ValueError: except ValueError:
y = sys.maxint y = sys.maxint
return cmp(x, y) return cmp(x, y)
@ -206,11 +205,11 @@ class Config(ResizableDialog, Ui_Dialog):
preferred_input_format = preferred_input_format if \ preferred_input_format = preferred_input_format if \
preferred_input_format in input_formats else \ preferred_input_format in input_formats else \
sort_formats_by_preference(input_formats, sort_formats_by_preference(input_formats,
INPUT_FORMAT_PREFERENCES)[0] config['input_format_order'])[0]
preferred_output_format = preferred_output_format if \ preferred_output_format = preferred_output_format if \
preferred_output_format in output_formats else \ preferred_output_format in output_formats else \
sort_formats_by_preference(output_formats, sort_formats_by_preference(output_formats,
OUTPUT_FORMAT_PREFERENCES)[0] prefs['output_format'])[0]
self.input_formats.addItems(list(map(QString, [x.upper() for x in self.input_formats.addItems(list(map(QString, [x.upper() for x in
input_formats]))) input_formats])))
self.output_formats.addItems(list(map(QString, [x.upper() for x in self.output_formats.addItems(list(map(QString, [x.upper() for x in