class CDLookupDialog(PicardDialog): def __init__(self, releases, disc, parent=None): PicardDialog.__init__(self, parent) self.releases = releases self.disc = disc self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.release_list.setSortingEnabled(True) self.ui.release_list.setHeaderLabels([ _("Album"), _("Artist"), _("Date"), _("Country"), _("Labels"), _("Catalog #s"), _("Barcode") ]) if self.releases: for release in self.releases: labels, catalog_numbers = label_info_from_node( release.label_info_list[0]) date = release.date[ 0].text if "date" in release.children else "" country = release.country[ 0].text if "country" in release.children else "" barcode = release.barcode[ 0].text if "barcode" in release.children else "" item = QtWidgets.QTreeWidgetItem(self.ui.release_list) item.setText(0, release.title[0].text) item.setText( 1, artist_credit_from_node(release.artist_credit[0])[0]) item.setText(2, date) item.setText(3, country) item.setText(4, ", ".join(labels)) item.setText(5, ", ".join(catalog_numbers)) item.setText(6, barcode) item.setData(0, QtCore.Qt.UserRole, release.id) self.ui.release_list.setCurrentItem( self.ui.release_list.topLevelItem(0)) self.ui.ok_button.setEnabled(True) for i in range(self.ui.release_list.columnCount() - 1): self.ui.release_list.resizeColumnToContents(i) # Sort by descending date, then ascending country self.ui.release_list.sortByColumn(3, QtCore.Qt.AscendingOrder) self.ui.release_list.sortByColumn(2, QtCore.Qt.DescendingOrder) self.ui.lookup_button.clicked.connect(self.lookup) def accept(self): release_id = self.ui.release_list.currentItem().data( 0, QtCore.Qt.UserRole) self.tagger.load_album(release_id, discid=self.disc.id) QtWidgets.QDialog.accept(self) def lookup(self): lookup = self.tagger.get_file_lookup() lookup.discLookup(self.disc.submission_url) QtWidgets.QDialog.accept(self)
class CDLookupDialog(QtGui.QDialog): def __init__(self, releases, disc, parent=None): QtGui.QDialog.__init__(self, parent) self.releases = releases self.disc = disc self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.release_list.setHeaderLabels([ _(u"Album"), _(u"Artist"), _(u"Labels"), _(u"Catalog #s"), _(u"Barcode") ]) if self.releases: for release in self.releases: labels, catalog_numbers = label_info_from_node( release.label_info_list[0]) barcode = release.barcode[ 0].text if "barcode" in release.children else "" item = QtGui.QTreeWidgetItem(self.ui.release_list) item.setText(0, release.title[0].text) item.setText( 1, artist_credit_from_node(release.artist_credit[0], self.config)[0]) item.setText(2, ", ".join(labels)) item.setText(3, ", ".join(catalog_numbers)) item.setText(4, barcode) item.setData(0, QtCore.Qt.UserRole, QtCore.QVariant(release.id)) self.ui.release_list.setCurrentItem( self.ui.release_list.topLevelItem(0)) self.ui.ok_button.setEnabled(True) self.ui.release_list.resizeColumnToContents(0) self.ui.release_list.resizeColumnToContents(1) self.ui.release_list.resizeColumnToContents(4) self.connect(self.ui.lookup_button, QtCore.SIGNAL("clicked()"), self.lookup) def accept(self): release_id = str(self.ui.release_list.currentItem().data( 0, QtCore.Qt.UserRole).toString()) self.tagger.load_album(release_id, discid=self.disc.id) QtGui.QDialog.accept(self) def lookup(self): lookup = self.tagger.get_file_lookup() lookup.discLookup(self.disc.submission_url) QtGui.QDialog.accept(self)
class CDLookupDialog(QtGui.QDialog): def __init__(self, releases, disc, parent=None): QtGui.QDialog.__init__(self, parent) self.releases = releases self.disc = disc self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.release_list.setSortingEnabled(True) self.ui.release_list.setHeaderLabels([_(u"Album"), _(u"Artist"), _(u"Date"), _(u"Country"), _(u"Labels"), _(u"Catalog #s"), _(u"Barcode")]) if self.releases: for release in self.releases: labels, catalog_numbers = label_info_from_node(release.label_info_list[0]) date = release.date[0].text if "date" in release.children else "" country = release.country[0].text if "country" in release.children else "" barcode = release.barcode[0].text if "barcode" in release.children else "" item = QtGui.QTreeWidgetItem(self.ui.release_list) item.setText(0, release.title[0].text) item.setText(1, artist_credit_from_node(release.artist_credit[0])[0]) item.setText(2, date) item.setText(3, country) item.setText(4, ", ".join(labels)) item.setText(5, ", ".join(catalog_numbers)) item.setText(6, barcode) item.setData(0, QtCore.Qt.UserRole, QtCore.QVariant(release.id)) self.ui.release_list.setCurrentItem(self.ui.release_list.topLevelItem(0)) self.ui.ok_button.setEnabled(True) for i in range(self.ui.release_list.columnCount() - 1): self.ui.release_list.resizeColumnToContents(i) # Sort by descending date, then ascending country self.ui.release_list.sortByColumn(3, QtCore.Qt.AscendingOrder) self.ui.release_list.sortByColumn(2, QtCore.Qt.DescendingOrder) self.ui.lookup_button.clicked.connect(self.lookup) def accept(self): release_id = str(self.ui.release_list.currentItem().data(0, QtCore.Qt.UserRole).toString()) self.tagger.load_album(release_id, discid=self.disc.id) QtGui.QDialog.accept(self) def lookup(self): lookup = self.tagger.get_file_lookup() lookup.discLookup(self.disc.submission_url) QtGui.QDialog.accept(self)
class CDLookupDialog(QtGui.QDialog): def __init__(self, releases, disc, parent=None): QtGui.QDialog.__init__(self, parent) self.releases = releases self.disc = disc self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.release_list.setHeaderLabels([_(u"Album"), _(u"Artist"), _(u"Labels"), _(u"Catalog #s"), _(u"Barcode")]) if self.releases: for release in self.releases: labels, catalog_numbers = label_info_from_node(release.label_info_list[0]) barcode = release.barcode[0].text if "barcode" in release.children else "" item = QtGui.QTreeWidgetItem(self.ui.release_list) item.setText(0, release.title[0].text) item.setText(1, artist_credit_from_node(release.artist_credit[0], self.config)[0]) item.setText(2, ", ".join(labels)) item.setText(3, ", ".join(catalog_numbers)) item.setText(4, barcode) item.setData(0, QtCore.Qt.UserRole, QtCore.QVariant(release.id)) self.ui.release_list.setCurrentItem(self.ui.release_list.topLevelItem(0)) self.ui.ok_button.setEnabled(True) self.ui.release_list.resizeColumnToContents(0) self.ui.release_list.resizeColumnToContents(1) self.ui.release_list.resizeColumnToContents(4) self.connect(self.ui.lookup_button, QtCore.SIGNAL("clicked()"), self.lookup) def accept(self): release_id = str(self.ui.release_list.currentItem().data(0, QtCore.Qt.UserRole).toString()) self.tagger.load_album(release_id, discid=self.disc.id) QtGui.QDialog.accept(self) def lookup(self): lookup = self.tagger.get_file_lookup() lookup.discLookup(self.disc.submission_url) QtGui.QDialog.accept(self)
class CDLookupDialog(PicardDialog): defaultsize = QtCore.QSize(720, 360) autorestore = False dialog_header_state = "cdlookupdialog_header_state" options = [ config.Option("persist", dialog_header_state, QtCore.QByteArray()) ] def __init__(self, releases, disc, parent=None): super().__init__(parent) self.releases = releases self.disc = disc self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.release_list.setSortingEnabled(True) self.ui.release_list.setAlternatingRowColors(True) self.ui.release_list.setHeaderLabels([_("Album"), _("Artist"), _("Date"), _("Country"), _("Labels"), _("Catalog #s"), _("Barcode")]) if self.releases: def myjoin(l): return "\n".join(l) selected = None for release in self.releases: labels, catalog_numbers = label_info_from_node(release['label-info']) dates, countries = release_dates_and_countries_from_node(release) barcode = release['barcode'] if "barcode" in release else "" item = QtWidgets.QTreeWidgetItem(self.ui.release_list) if disc.mcn and compare_barcodes(barcode, disc.mcn): selected = item item.setText(0, release['title']) item.setText(1, artist_credit_from_node(release['artist-credit'])[0]) item.setText(2, myjoin(dates)) item.setText(3, myjoin(countries)) item.setText(4, myjoin(labels)) item.setText(5, myjoin(catalog_numbers)) item.setText(6, barcode) item.setData(0, QtCore.Qt.UserRole, release['id']) self.ui.release_list.setCurrentItem(selected or self.ui.release_list.topLevelItem(0)) self.ui.ok_button.setEnabled(True) for i in range(self.ui.release_list.columnCount() - 1): self.ui.release_list.resizeColumnToContents(i) # Sort by descending date, then ascending country self.ui.release_list.sortByColumn(3, QtCore.Qt.AscendingOrder) self.ui.release_list.sortByColumn(2, QtCore.Qt.DescendingOrder) self.ui.lookup_button.clicked.connect(self.lookup) self.restore_geometry() self.restore_header_state() self.finished.connect(self.save_header_state) def accept(self): release_id = self.ui.release_list.currentItem().data(0, QtCore.Qt.UserRole) self.tagger.load_album(release_id, discid=self.disc.id) super().accept() def lookup(self): lookup = self.tagger.get_file_lookup() lookup.disc_lookup(self.disc.submission_url) super().accept() @restore_method def restore_header_state(self): if self.ui.release_list: header = self.ui.release_list.header() state = config.persist[self.dialog_header_state] if state: header.restoreState(state) log.debug("restore_state: %s" % self.dialog_header_state) def save_header_state(self): if self.ui.release_list: state = self.ui.release_list.header().saveState() config.persist[self.dialog_header_state] = state log.debug("save_state: %s" % self.dialog_header_state)
class CDLookupDialog(PicardDialog): autorestore = False dialog_header_state = "cdlookupdialog_header_state" options = [ config.Option("persist", dialog_header_state, QtCore.QByteArray()) ] def __init__(self, releases, disc, parent=None): super().__init__(parent) self.releases = releases self.disc = disc self.ui = Ui_Dialog() self.ui.setupUi(self) release_list = self.ui.release_list release_list.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) release_list.setSortingEnabled(True) release_list.setAlternatingRowColors(True) release_list.setHeaderLabels([_("Album"), _("Artist"), _("Date"), _("Country"), _("Labels"), _("Catalog #s"), _("Barcode")]) self.ui.submit_button.setIcon(QtGui.QIcon(":/images/cdrom.png")) if self.releases: def myjoin(l): return "\n".join(l) self.ui.results_view.setCurrentIndex(0) selected = None for release in self.releases: labels, catalog_numbers = label_info_from_node(release['label-info']) dates, countries = release_dates_and_countries_from_node(release) barcode = release['barcode'] if "barcode" in release else "" item = QtWidgets.QTreeWidgetItem(release_list) if disc.mcn and compare_barcodes(barcode, disc.mcn): selected = item item.setText(0, release['title']) item.setText(1, artist_credit_from_node(release['artist-credit'])[0]) item.setText(2, myjoin(dates)) item.setText(3, myjoin(countries)) item.setText(4, myjoin(labels)) item.setText(5, myjoin(catalog_numbers)) item.setText(6, barcode) item.setData(0, QtCore.Qt.UserRole, release['id']) release_list.setCurrentItem(selected or release_list.topLevelItem(0)) self.ui.ok_button.setEnabled(True) for i in range(release_list.columnCount() - 1): release_list.resizeColumnToContents(i) # Sort by descending date, then ascending country release_list.sortByColumn(3, QtCore.Qt.AscendingOrder) release_list.sortByColumn(2, QtCore.Qt.DescendingOrder) else: self.ui.results_view.setCurrentIndex(1) self.ui.lookup_button.clicked.connect(self.lookup) self.ui.submit_button.clicked.connect(self.lookup) self.restore_geometry() self.restore_header_state() self.finished.connect(self.save_header_state) def accept(self): release_list = self.ui.release_list for index in release_list.selectionModel().selectedRows(): release_id = release_list.itemFromIndex(index).data(0, QtCore.Qt.UserRole) self.tagger.load_album(release_id, discid=self.disc.id) super().accept() def lookup(self): lookup = self.tagger.get_file_lookup() lookup.disc_lookup(self.disc.submission_url) super().accept() @restore_method def restore_header_state(self): if self.ui.release_list: header = self.ui.release_list.header() state = config.persist[self.dialog_header_state] if state: header.restoreState(state) log.debug("restore_state: %s" % self.dialog_header_state) def save_header_state(self): if self.ui.release_list: state = self.ui.release_list.header().saveState() config.persist[self.dialog_header_state] = state log.debug("save_state: %s" % self.dialog_header_state)
class CDLookupDialog(PicardDialog): dialog_window_size = "cdlookupdialog_window_size" dialog_header_state = "cdlookupdialog_header_state" options = [ config.Option("persist", dialog_window_size, QtCore.QSize(720, 360)), config.Option("persist", dialog_header_state, QtCore.QByteArray()) ] def __init__(self, releases, disc, parent=None): PicardDialog.__init__(self, parent) self.releases = releases self.disc = disc self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.release_list.setSortingEnabled(True) self.ui.release_list.setAlternatingRowColors(True) self.ui.release_list.setHeaderLabels([ _("Album"), _("Artist"), _("Date"), _("Country"), _("Labels"), _("Catalog #s"), _("Barcode") ]) self.restore_state() if self.releases: def myjoin(l): return "\n".join(l) for release in self.releases: labels, catalog_numbers = label_info_from_node( release['label-info']) dates, countries = release_dates_and_countries_from_node( release) barcode = release['barcode'] if "barcode" in release else "" item = QtWidgets.QTreeWidgetItem(self.ui.release_list) item.setText(0, release['title']) item.setText( 1, artist_credit_from_node(release['artist-credit'])[0]) item.setText(2, myjoin(dates)) item.setText(3, myjoin(countries)) item.setText(4, myjoin(labels)) item.setText(5, myjoin(catalog_numbers)) item.setText(6, barcode) item.setData(0, QtCore.Qt.UserRole, release['id']) self.ui.release_list.setCurrentItem( self.ui.release_list.topLevelItem(0)) self.ui.ok_button.setEnabled(True) for i in range(self.ui.release_list.columnCount() - 1): self.ui.release_list.resizeColumnToContents(i) # Sort by descending date, then ascending country self.ui.release_list.sortByColumn(3, QtCore.Qt.AscendingOrder) self.ui.release_list.sortByColumn(2, QtCore.Qt.DescendingOrder) self.ui.lookup_button.clicked.connect(self.lookup) self.restore_header_state() def save_and_accept(self): self.save_state() QtWidgets.QDialog.accept(self) def accept(self): release_id = self.ui.release_list.currentItem().data( 0, QtCore.Qt.UserRole) self.tagger.load_album(release_id, discid=self.disc.id) self.save_and_accept() def lookup(self): lookup = self.tagger.get_file_lookup() lookup.disc_lookup(self.disc.submission_url) self.save_and_accept() def reject(self): self.save_state() QtWidgets.QDialog.reject(self) def restore_state(self): size = config.persist[self.dialog_window_size] if size: self.resize(size) log.debug("restore_state: %s" % self.dialog_window_size) def restore_header_state(self): header = self.ui.release_list.header() state = config.persist[self.dialog_header_state] if state: header.restoreState(state) log.debug("restore_state: %s" % self.dialog_header_state) def save_state(self): if self.ui.release_list: self.save_header_state() log.debug("save_state: %s" % self.dialog_window_size) config.persist[self.dialog_window_size] = self.size() def save_header_state(self): state = self.ui.release_list.header().saveState() config.persist[self.dialog_header_state] = state log.debug("save_state: %s" % self.dialog_header_state)