~ubuntu-branches/debian/sid/calibre/sid

« back to all changes in this revision

Viewing changes to src/calibre/gui2/catalog/catalog_epub_mobi.py

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2014-05-14 18:17:50 UTC
  • mfrom: (1.5.10)
  • Revision ID: package-import@ubuntu.com-20140514181750-xyrxqa47dbw0qfhu
Tags: 1.36.0+dfsg-1
* New upstream release:
  - Fixes editing of metadata (Closes: #741638)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
from catalog_epub_mobi_ui import Ui_Form
19
19
from PyQt4.Qt import (Qt, QAbstractItemView, QCheckBox, QComboBox,
20
 
        QDoubleSpinBox, QIcon, QInputDialog, QLineEdit, QObject, QRadioButton,
 
20
        QDoubleSpinBox, QIcon, QInputDialog, QLineEdit, QRadioButton,
21
21
        QSize, QSizePolicy, QTableWidget, QTableWidgetItem, QTextEdit, QToolButton,
22
 
        QUrl, QVBoxLayout, QWidget,
23
 
        SIGNAL)
 
22
        QUrl, QVBoxLayout, QWidget)
24
23
 
25
24
class PluginWidget(QWidget,Ui_Form):
26
25
 
818
817
        open_url(QUrl('http://manual.calibre-ebook.com/catalogs.html'))
819
818
 
820
819
class CheckableTableWidgetItem(QTableWidgetItem):
 
820
 
821
821
    '''
822
822
    Borrowed from kiwidude
823
823
    '''
824
824
 
825
825
    def __init__(self, checked=False, is_tristate=False):
826
826
        QTableWidgetItem.__init__(self, '')
827
 
        self.setFlags(Qt.ItemFlags(Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled ))
 
827
        self.setFlags(Qt.ItemFlags(Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled))
828
828
        if is_tristate:
829
829
            self.setFlags(self.flags() | Qt.ItemIsTristate)
830
830
        if checked:
847
847
 
848
848
class NoWheelComboBox(QComboBox):
849
849
 
850
 
    def wheelEvent (self, event):
 
850
    def wheelEvent(self, event):
851
851
        # Disable the mouse wheel on top of the combo box changing selection as plays havoc in a grid
852
852
        event.ignore()
853
853
 
854
854
class ComboBox(NoWheelComboBox):
855
855
    # Caller is responsible for providing the list in the preferred order
 
856
 
856
857
    def __init__(self, parent, items, selected_text,insert_blank=True):
857
858
        NoWheelComboBox.__init__(self, parent)
858
859
        self.populate_combo(items, selected_text, insert_blank)
868
869
            self.setCurrentIndex(0)
869
870
 
870
871
class GenericRulesTable(QTableWidget):
 
872
 
871
873
    '''
872
874
    Generic methods for managing rows in a QTableWidget
873
875
    '''
888
890
        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum)
889
891
        sizePolicy.setHorizontalStretch(0)
890
892
        sizePolicy.setVerticalStretch(0)
891
 
        #sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth())
 
893
        # sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth())
892
894
        self.setSizePolicy(sizePolicy)
893
895
        self.setMaximumSize(QSize(16777215, self.MAXIMUM_TABLE_HEIGHT))
894
896
 
903
905
        self._init_controls()
904
906
 
905
907
        # Hook check_box changes
906
 
        QObject.connect(self, SIGNAL('cellChanged(int,int)'), self.enabled_state_changed)
 
908
        self.cellChanged.connect(self.enabled_state_changed)
907
909
 
908
910
    def _init_controls(self):
909
911
        # Add the control set
1163
1165
 
1164
1166
class ExclusionRules(GenericRulesTable):
1165
1167
 
1166
 
    COLUMNS = { 'ENABLED':{'ordinal': 0, 'name': ''},
 
1168
    COLUMNS = {'ENABLED':{'ordinal': 0, 'name': ''},
1167
1169
                'NAME':   {'ordinal': 1, 'name': _('Name')},
1168
1170
                'FIELD':  {'ordinal': 2, 'name': _('Field')},
1169
1171
                'PATTERN':  {'ordinal': 3, 'name': _('Value')},}
1175
1177
        self._initialize()
1176
1178
 
1177
1179
    def _init_table_widget(self):
1178
 
        header_labels = [self.COLUMNS[index]['name'] \
 
1180
        header_labels = [self.COLUMNS[index]['name']
1179
1181
            for index in sorted(self.COLUMNS.keys(), key=lambda c: self.COLUMNS[c]['ordinal'])]
1180
1182
        self.setColumnCount(len(header_labels))
1181
1183
        self.setHorizontalHeaderLabels(header_labels)
1254
1256
 
1255
1257
class PrefixRules(GenericRulesTable):
1256
1258
 
1257
 
    COLUMNS = { 'ENABLED':{'ordinal': 0, 'name': ''},
 
1259
    COLUMNS = {'ENABLED':{'ordinal': 0, 'name': ''},
1258
1260
                'NAME':   {'ordinal': 1, 'name': _('Name')},
1259
1261
                'PREFIX': {'ordinal': 2, 'name': _('Prefix')},
1260
1262
                'FIELD':  {'ordinal': 3, 'name': _('Field')},
1267
1269
        self._initialize()
1268
1270
 
1269
1271
    def _init_table_widget(self):
1270
 
        header_labels = [self.COLUMNS[index]['name'] \
 
1272
        header_labels = [self.COLUMNS[index]['name']
1271
1273
            for index in sorted(self.COLUMNS.keys(), key=lambda c: self.COLUMNS[c]['ordinal'])]
1272
1274
        self.setColumnCount(len(header_labels))
1273
1275
        self.setHorizontalHeaderLabels(header_labels)