1
# -*- coding: utf-8 -*-
4
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
5
__docformat__ = 'restructuredtext en'
7
from PyQt4.Qt import QWidget, QListWidgetItem, Qt, QVariant, SIGNAL
9
from calibre.gui2.device_drivers.configwidget_ui import Ui_ConfigWidget
11
class ConfigWidget(QWidget, Ui_ConfigWidget):
13
def __init__(self, settings, all_formats, supports_subdirs,
16
QWidget.__init__(self)
17
Ui_ConfigWidget.__init__(self)
20
self.settings = settings
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)
30
self.connect(self.column_up, SIGNAL('clicked()'), self.up_column)
31
self.connect(self.column_down, SIGNAL('clicked()'), self.down_column)
34
self.opt_use_subdirs.setChecked(self.settings.use_subdirs)
36
self.opt_use_subdirs.hide()
37
if not must_read_metadata:
38
self.opt_read_metadata.setChecked(self.settings.read_metadata)
40
self.opt_read_metadata.hide()
43
idx = self.columns.currentRow()
45
self.columns.insertItem(idx-1, self.columns.takeItem(idx))
46
self.columns.setCurrentRow(idx-1)
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)
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]
58
def use_subdirs(self):
59
return self.opt_use_subdirs.isChecked()
61
def read_metadata(self):
62
return self.opt_read_metadata.isChecked()