~ubuntu-branches/ubuntu/karmic/calibre/karmic

« back to all changes in this revision

Viewing changes to src/calibre/gui2/device_drivers/configwidget.py

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2009-07-30 12:49:41 UTC
  • mfrom: (1.3.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090730124941-qjdsmri25zt8zocn
Tags: 0.6.3+dfsg-0ubuntu1
* New upstream release. Please see http://calibre.kovidgoyal.net/new_in_6/
  for the list of new features and changes.
* remove_postinstall.patch: Update for new version.
* build_debug.patch: Does not apply any more, disable for now. Might not be
  necessary any more.
* debian/copyright: Fix reference to versionless GPL.
* debian/rules: Drop obsolete dh_desktop call.
* debian/rules: Add workaround for weird Python 2.6 setuptools behaviour of
  putting compiled .so files into src/calibre/plugins/calibre/plugins
  instead of src/calibre/plugins.
* debian/rules: Drop hal fdi moving, new upstream version does not use hal
  any more. Drop hal dependency, too.
* debian/rules: Install udev rules into /lib/udev/rules.d.
* Add debian/calibre.preinst: Remove unmodified
  /etc/udev/rules.d/95-calibre.rules on upgrade.
* debian/control: Bump Python dependencies to 2.6, since upstream needs
  it now.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- coding: utf-8 -*-
 
2
 
 
3
__license__ = 'GPL 3'
 
4
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
 
5
__docformat__ = 'restructuredtext en'
 
6
 
 
7
from PyQt4.Qt import QWidget, QListWidgetItem, Qt, QVariant, SIGNAL
 
8
 
 
9
from calibre.gui2.device_drivers.configwidget_ui import Ui_ConfigWidget
 
10
 
 
11
class ConfigWidget(QWidget, Ui_ConfigWidget):
 
12
 
 
13
    def __init__(self, settings, all_formats, supports_subdirs,
 
14
        must_read_metadata):
 
15
 
 
16
        QWidget.__init__(self)
 
17
        Ui_ConfigWidget.__init__(self)
 
18
        self.setupUi(self)
 
19
        
 
20
        self.settings = settings
 
21
        
 
22
        format_map = settings.format_map
 
23
        disabled_formats = list(set(all_formats).difference(format_map))
 
24
        for format in format_map + disabled_formats:
 
25
            item = QListWidgetItem(format, self.columns)
 
26
            item.setData(Qt.UserRole, QVariant(format))
 
27
            item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsUserCheckable|Qt.ItemIsSelectable)
 
28
            item.setCheckState(Qt.Checked if format in format_map else Qt.Unchecked)
 
29
 
 
30
        self.connect(self.column_up, SIGNAL('clicked()'), self.up_column)
 
31
        self.connect(self.column_down, SIGNAL('clicked()'), self.down_column)
 
32
 
 
33
        if supports_subdirs:
 
34
            self.opt_use_subdirs.setChecked(self.settings.use_subdirs)
 
35
        else:
 
36
            self.opt_use_subdirs.hide()
 
37
        if not must_read_metadata:
 
38
            self.opt_read_metadata.setChecked(self.settings.read_metadata)
 
39
        else:
 
40
            self.opt_read_metadata.hide()
 
41
 
 
42
    def up_column(self):
 
43
        idx = self.columns.currentRow()
 
44
        if idx > 0:
 
45
            self.columns.insertItem(idx-1, self.columns.takeItem(idx))
 
46
            self.columns.setCurrentRow(idx-1)
 
47
 
 
48
    def down_column(self):
 
49
        idx = self.columns.currentRow()
 
50
        if idx < self.columns.count()-1:
 
51
            self.columns.insertItem(idx+1, self.columns.takeItem(idx))
 
52
            self.columns.setCurrentRow(idx+1)
 
53
 
 
54
    def format_map(self):
 
55
        formats = [unicode(self.columns.item(i).data(Qt.UserRole).toString()) for i in range(self.columns.count()) if self.columns.item(i).checkState()==Qt.Checked]
 
56
        return formats
 
57
 
 
58
    def use_subdirs(self):
 
59
        return self.opt_use_subdirs.isChecked()
 
60
 
 
61
    def read_metadata(self):
 
62
        return self.opt_read_metadata.isChecked()