def __init__(self, parent=None, status=None): QWidget.__init__(self, parent) self.receives = [(SELECTIONCHANGED, self.fill)] self.emits = [] self.picwidget = PicWidget() vbox = QVBoxLayout() vbox.addWidget(self.picwidget) hbox = QHBoxLayout() hbox.addStrut(1) vbox.addLayout(hbox) self.setLayout(vbox) status['images'] = self.images self._audios = [] self._status = status self._readOnly = None
def __init__(self, parent=None, row=None, files=None, preview_mode=False, artwork=True, status=None): if status is None: status = {'cover_pattern': 'folder'} self.status = status QDialog.__init__(self, parent) winsettings('extendedtags', self) self.get_fieldlist = [] self.previewMode = preview_mode add = QColor.fromRgb(255, 255, 0) edit = QColor.fromRgb(0, 255, 0) remove = QColor.fromRgb(255, 0, 0) self._colors = {ADD: QBrush(add), EDIT: QBrush(edit), REMOVE: QBrush(remove)} self.table = QTableWidget(0, 2, self) self.table.setVerticalHeader(VerticalHeader()) self.table.verticalHeader().setVisible(False) self.table.setSortingEnabled(True) self.table.setSelectionBehavior(QAbstractItemView.SelectRows) self.table.setHorizontalHeaderLabels([ translate('Extended Tags', 'Field'), translate('Extended Tags', 'Value')]) header = self.table.horizontalHeader() header.setVisible(True) header.setSortIndicatorShown(True) header.setStretchLastSection(True) header.setSortIndicator(0, Qt.AscendingOrder) self.piclabel = PicWidget(buttons=True) self.piclabel.imageChanged.connect( self._imageChanged) if not isinstance(self.piclabel.removepic, QAction): self.piclabel.removepic.clicked.connect( self.removePic) else: self.piclabel.removepic.triggered.connect(self.removePic) if row and row >= 0 and files: buttons = MoveButtons(files, row) buttons.indexChanged.connect(self._prevnext) buttons.setVisible(True) else: buttons = MoveButtons([], row) buttons.setVisible(False) self._files = files self.okcancel = OKCancel() self.okcancel.insertWidget(0, buttons) self._reset = QToolButton() self._reset.setToolTip(translate('Extended Tags', 'Resets the selected fields to their original value.')) self._reset.setIcon(get_icon('edit-undo', ':/undo.png')) self._reset.clicked.connect(self.resetFields) self.listbuttons = ListButtons() self.listbuttons.layout().addWidget(self._reset) self.listbuttons.moveupButton.hide() self.listbuttons.movedownButton.hide() listframe = QFrame() listframe.setFrameStyle(QFrame.Box) hbox = QHBoxLayout() hbox.addWidget(self.table, 1) hbox.addLayout(self.listbuttons, 0) listframe.setLayout(hbox) layout = QVBoxLayout() if artwork: imageframe = QFrame() imageframe.setFrameStyle(QFrame.Box) vbox = QVBoxLayout() vbox.setContentsMargins(0, 0, 0, 0) vbox.addWidget(self.piclabel) vbox.addStretch() vbox.addStrut(0) imageframe.setLayout(vbox) hbox = QHBoxLayout() hbox.addWidget(listframe, 1) hbox.addSpacing(4) hbox.addWidget(imageframe) hbox.addStrut(1) layout.addLayout(hbox) else: layout.addWidget(listframe) layout.addLayout(self.okcancel) self.setLayout(layout) self.okcancel.cancel.connect(self.closeMe) self.table.itemDoubleClicked.connect(self.editField) self.table.itemSelectionChanged.connect(self._checkListBox) self.okcancel.ok.connect(self.okClicked) self.listbuttons.edit.connect(self.editField) self.listbuttons.addButton.clicked.connect(self.addField) self.listbuttons.removeButton.clicked.connect(self.removeField) self.listbuttons.duplicate.connect(self.duplicate) self.setMinimumSize(450, 350) self.canceled = False self.filechanged = False if row and row >= 0 and files: self._prevnext(row) else: self.loadFiles(files)