home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_816 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  4.1 KB  |  101 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __license__ = 'GPL 3'
  5. __copyright__ = '2009, John Schember <john@nachtimwald.com>'
  6. __docformat__ = 'restructuredtext en'
  7. from calibre.utils.config import Config, ConfigProxy
  8.  
  9. class DeviceConfig(object):
  10.     HELP_MESSAGE = _('Configure Device')
  11.     EXTRA_CUSTOMIZATION_MESSAGE = None
  12.     EXTRA_CUSTOMIZATION_DEFAULT = None
  13.     SUPPORTS_SUB_DIRS = False
  14.     MUST_READ_METADATA = False
  15.     SUPPORTS_USE_AUTHOR_SORT = False
  16.     SAVE_TEMPLATE = None
  17.     
  18.     def _default_save_template(cls):
  19.         config = config
  20.         import calibre.library.save_to_disk
  21.         if cls.SAVE_TEMPLATE:
  22.             return cls.SAVE_TEMPLATE
  23.         return config().parse().send_template
  24.  
  25.     _default_save_template = classmethod(_default_save_template)
  26.     
  27.     def _config_base_name(cls):
  28.         klass = None if isinstance(cls, type) else cls.__class__
  29.         return klass.__name__
  30.  
  31.     _config_base_name = classmethod(_config_base_name)
  32.     
  33.     def _config(cls):
  34.         name = cls._config_base_name()
  35.         c = Config('device_drivers_%s' % name, _('settings for device drivers'))
  36.         c.add_opt('format_map', default = cls.FORMATS, help = _('Ordered list of formats the device will accept'))
  37.         c.add_opt('use_subdirs', default = True, help = _('Place files in sub directories if the device supports them'))
  38.         c.add_opt('read_metadata', default = True, help = _('Read metadata from files on device'))
  39.         c.add_opt('use_author_sort', default = False, help = _('Use author sort instead of author'))
  40.         c.add_opt('save_template', default = cls._default_save_template(), help = _('Template to control how books are saved'))
  41.         c.add_opt('extra_customization', default = cls.EXTRA_CUSTOMIZATION_DEFAULT, help = _('Extra customization'))
  42.         return c
  43.  
  44.     _config = classmethod(_config)
  45.     
  46.     def _configProxy(cls):
  47.         return ConfigProxy(cls._config())
  48.  
  49.     _configProxy = classmethod(_configProxy)
  50.     
  51.     def config_widget(cls):
  52.         ConfigWidget = ConfigWidget
  53.         import calibre.gui2.device_drivers.configwidget
  54.         cw = ConfigWidget(cls.settings(), cls.FORMATS, cls.SUPPORTS_SUB_DIRS, cls.MUST_READ_METADATA, cls.SUPPORTS_USE_AUTHOR_SORT, cls.EXTRA_CUSTOMIZATION_MESSAGE)
  55.         return cw
  56.  
  57.     config_widget = classmethod(config_widget)
  58.     
  59.     def save_settings(cls, config_widget):
  60.         proxy = cls._configProxy()
  61.         proxy['format_map'] = config_widget.format_map()
  62.         if cls.SUPPORTS_SUB_DIRS:
  63.             proxy['use_subdirs'] = config_widget.use_subdirs()
  64.         
  65.         if not cls.MUST_READ_METADATA:
  66.             proxy['read_metadata'] = config_widget.read_metadata()
  67.         
  68.         if cls.SUPPORTS_USE_AUTHOR_SORT:
  69.             proxy['use_author_sort'] = config_widget.use_author_sort()
  70.         
  71.         if cls.EXTRA_CUSTOMIZATION_MESSAGE:
  72.             ec = unicode(config_widget.opt_extra_customization.text()).strip()
  73.             if not ec:
  74.                 ec = None
  75.             
  76.             proxy['extra_customization'] = ec
  77.         
  78.         st = unicode(config_widget.opt_save_template.text())
  79.         proxy['save_template'] = st
  80.  
  81.     save_settings = classmethod(save_settings)
  82.     
  83.     def settings(cls):
  84.         return cls._config().parse()
  85.  
  86.     settings = classmethod(settings)
  87.     
  88.     def save_template(cls):
  89.         st = cls.settings().save_template
  90.         if st:
  91.             return st
  92.         return cls._default_save_template()
  93.  
  94.     save_template = classmethod(save_template)
  95.     
  96.     def customization_help(cls, gui = False):
  97.         return cls.HELP_MESSAGE
  98.  
  99.     customization_help = classmethod(customization_help)
  100.  
  101.