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']) date = release['date'] if "date" in release else "" country = release['country'] if "country" in release else "" 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, 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 __init__(self, default_page=None, parent=None): PicardDialog.__init__(self, parent) from picard.ui.ui_options import Ui_Dialog self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.buttonbox.addButton(StandardButton(StandardButton.OK), QtGui.QDialogButtonBox.AcceptRole) self.ui.buttonbox.addButton(StandardButton(StandardButton.CANCEL), QtGui.QDialogButtonBox.RejectRole) self.ui.buttonbox.addButton(StandardButton(StandardButton.HELP), QtGui.QDialogButtonBox.HelpRole) self.ui.buttonbox.accepted.connect(self.accept) self.ui.buttonbox.rejected.connect(self.reject) self.ui.buttonbox.helpRequested.connect(self.help) self.pages = [] for Page in page_classes: page = Page(self.ui.pages_stack) self.pages.append(page) self.item_to_page = {} self.page_to_item = {} self.default_item = None self.add_pages(None, default_page, self.ui.pages_tree) self.ui.pages_tree.setHeaderLabels([""]) self.ui.pages_tree.header().hide() self.ui.pages_tree.itemSelectionChanged.connect(self.switch_page) self.restoreWindowState() for page in self.pages: page.load() self.ui.pages_tree.setCurrentItem(self.default_item)
def __init__(self, files, parent=None): PicardDialog.__init__(self, parent) self.ui = Ui_TagsFromFileNamesDialog() self.ui.setupUi(self) items = [ "%artist%/%album%/%tracknumber% %title%", "%artist%/%album%/%tracknumber% - %title%", "%artist%/%album - %tracknumber% - %title%", ] format = config.persist["tags_from_filenames_format"] if format and format not in items: items.insert(0, format) self.ui.format.addItems(items) self.ui.buttonbox.addButton(StandardButton(StandardButton.OK), QtGui.QDialogButtonBox.AcceptRole) self.ui.buttonbox.addButton(StandardButton(StandardButton.CANCEL), QtGui.QDialogButtonBox.RejectRole) self.ui.buttonbox.accepted.connect(self.accept) self.ui.buttonbox.rejected.connect(self.reject) self.ui.preview.clicked.connect(self.preview) self.ui.files.setHeaderLabels([_("File Name")]) self.restoreWindowState() self.files = files self.items = [] for file in files: item = QtGui.QTreeWidgetItem(self.ui.files) item.setText(0, os.path.basename(file.filename)) self.items.append(item) self._tag_re = re.compile("(%\w+%)")
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([_(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, 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 __init__(self, window, tag): PicardDialog.__init__(self, window) self.ui = Ui_EditTagDialog() self.ui.setupUi(self) self.window = window self.value_list = self.ui.value_list self.metadata_box = window.metadata_box self.tag = tag self.modified_tags = {} self.different = False self.default_tags = sorted( set(list(TAG_NAMES.keys()) + self.metadata_box.tag_diff.tag_names)) if len(self.metadata_box.files) == 1: current_file = list(self.metadata_box.files)[0] self.default_tags = list(filter(lambda x: current_file.supports_tag(x), self.default_tags)) tag_names = self.ui.tag_names tag_names.editTextChanged.connect(self.tag_changed) tag_names.addItem("") visible_tags = [tn for tn in self.default_tags if not tn.startswith("~")] tag_names.addItems(visible_tags) self.completer = QtWidgets.QCompleter(visible_tags, tag_names) self.completer.setCompletionMode(QtWidgets.QCompleter.PopupCompletion) tag_names.setCompleter(self.completer) self.tag_changed(tag) self.value_selection_changed() self.ui.edit_value.clicked.connect(self.edit_value) self.ui.add_value.clicked.connect(self.add_value) self.ui.remove_value.clicked.connect(self.remove_value) self.value_list.itemChanged.connect(self.value_edited) self.value_list.itemSelectionChanged.connect(self.value_selection_changed)
def __init__(self, obj, parent=None): PicardDialog.__init__(self, parent) self.obj = obj self.ui = Ui_InfoDialog() self.display_existing_artwork = False if isinstance(obj, File) and isinstance(obj.parent, Track) or \ isinstance(obj, Track): # Display existing artwork only if selected object is track object # or linked to a track object self.display_existing_artwork = True self.ui.setupUi(self) self.ui.buttonBox.accepted.connect(self.accept) self.ui.buttonBox.rejected.connect(self.reject) # Add the ArtworkTable to the ui self.ui.artwork_table = ArtworkTable(self.display_existing_artwork) self.ui.artwork_table.setObjectName("artwork_table") self.ui.vboxlayout1.addWidget(self.ui.artwork_table) if self.display_existing_artwork: self.resize(665, 436) self.setTabOrder(self.ui.tabWidget, self.ui.artwork_table) self.setTabOrder(self.ui.artwork_table, self.ui.buttonBox) self.setWindowTitle(_("Info")) self.artwork_table = self.ui.artwork_table self._display_tabs()
def __init__(self, window, tag): PicardDialog.__init__(self, window) self.ui = Ui_EditTagDialog() self.ui.setupUi(self) self.window = window self.value_list = self.ui.value_list self.metadata_box = window.metadata_box self.tag = tag self.modified_tags = {} self.different = False self.default_tags = sorted( set(TAG_NAMES.keys() + self.metadata_box.tag_diff.tag_names)) if len(self.metadata_box.files) == 1: current_file = list(self.metadata_box.files)[0] self.default_tags = filter(lambda x: current_file.supports_tag(x), self.default_tags) tag_names = self.ui.tag_names tag_names.editTextChanged.connect(self.tag_changed) tag_names.addItem("") visible_tags = [ tn for tn in self.default_tags if not tn.startswith("~") ] tag_names.addItems(visible_tags) self.completer = QtGui.QCompleter(visible_tags, tag_names) self.completer.setCompletionMode(QtGui.QCompleter.PopupCompletion) tag_names.setCompleter(self.completer) self.tag_changed(tag) self.value_selection_changed() self.ui.edit_value.clicked.connect(self.edit_value) self.ui.add_value.clicked.connect(self.add_value) self.ui.remove_value.clicked.connect(self.remove_value) self.value_list.itemChanged.connect(self.value_edited) self.value_list.itemSelectionChanged.connect( self.value_selection_changed)
def __init__(self, default_page=None, parent=None): PicardDialog.__init__(self, parent) from picard.ui.ui_options import Ui_Dialog self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.reset_all_button = QtWidgets.QPushButton( _("&Restore all Defaults")) self.ui.reset_all_button.setToolTip( _("Reset all of Picard's settings")) self.ui.reset_button = QtWidgets.QPushButton(_("Restore &Defaults")) self.ui.reset_button.setToolTip( _("Reset all settings for current option page")) ok = StandardButton(StandardButton.OK) ok.setText(_("Make It So!")) self.ui.buttonbox.addButton(ok, QtWidgets.QDialogButtonBox.AcceptRole) self.ui.buttonbox.addButton(StandardButton(StandardButton.CANCEL), QtWidgets.QDialogButtonBox.RejectRole) self.ui.buttonbox.addButton(StandardButton(StandardButton.HELP), QtWidgets.QDialogButtonBox.HelpRole) self.ui.buttonbox.addButton(self.ui.reset_all_button, QtWidgets.QDialogButtonBox.ActionRole) self.ui.buttonbox.addButton(self.ui.reset_button, QtWidgets.QDialogButtonBox.ActionRole) self.ui.buttonbox.accepted.connect(self.accept) self.ui.buttonbox.rejected.connect(self.reject) self.ui.reset_all_button.clicked.connect(self.confirm_reset_all) self.ui.reset_button.clicked.connect(self.confirm_reset) self.ui.buttonbox.helpRequested.connect(self.help) self.pages = [] for Page in page_classes: page = Page(self.ui.pages_stack) self.pages.append(page) self.item_to_page = {} self.page_to_item = {} self.default_item = None self.add_pages(None, default_page, self.ui.pages_tree) # work-around to set optimal option pane width self.ui.pages_tree.expandAll() max_page_name = self.ui.pages_tree.sizeHintForColumn( 0) + 2 * self.ui.pages_tree.frameWidth() self.ui.pages_tree.collapseAll() self.ui.pages_tree.setMinimumWidth(max_page_name) self.ui.pages_tree.setHeaderLabels([""]) self.ui.pages_tree.header().hide() self.ui.pages_tree.itemSelectionChanged.connect(self.switch_page) self.restoreWindowState() for page in self.pages: page.load() self.ui.pages_tree.setCurrentItem(self.default_item)
def __init__(self, obj, parent=None): PicardDialog.__init__(self, parent) self.obj = obj self.ui = Ui_InfoDialog() self.ui.setupUi(self) self.ui.buttonBox.accepted.connect(self.accept) self.ui.buttonBox.rejected.connect(self.reject) self.setWindowTitle(_("Info")) self._display_tabs()
def __init__(self, authenticator, proxy, parent=None): PicardDialog.__init__(self, parent) self._authenticator = authenticator self._proxy = proxy self.ui = Ui_PasswordDialog() self.ui.setupUi(self) self.ui.info_text.setText(_("The proxy %s requires you to login. Please enter your username and password.") % config.setting["proxy_server_host"]) self.ui.username.setText(config.setting["proxy_username"]) self.ui.password.setText(config.setting["proxy_password"]) self.ui.buttonbox.accepted.connect(self.set_proxy_password)
def __init__(self, authenticator, reply, parent=None): PicardDialog.__init__(self, parent) self._authenticator = authenticator self.ui = Ui_PasswordDialog() self.ui.setupUi(self) self.ui.info_text.setText( _("The server %s requires you to login. Please enter your username and password.") % reply.url().host()) self.ui.username.setText(reply.url().userName()) self.ui.password.setText(reply.url().password()) self.ui.buttonbox.accepted.connect(self.set_new_password)
def __init__(self, authenticator, reply, parent=None): PicardDialog.__init__(self, parent) self._authenticator = authenticator self.ui = Ui_PasswordDialog() self.ui.setupUi(self) self.ui.info_text.setText( _("The server %s requires you to login. Please enter your username and password." ) % reply.url().host()) self.ui.username.setText(reply.url().userName()) self.ui.password.setText(reply.url().password()) self.ui.buttonbox.accepted.connect(self.set_new_password)
def __init__(self, authenticator, proxy, parent=None): PicardDialog.__init__(self, parent) self._authenticator = authenticator self._proxy = proxy self.ui = Ui_PasswordDialog() self.ui.setupUi(self) self.ui.info_text.setText( _("The proxy %s requires you to login. Please enter your username and password." ) % config.setting["proxy_server_host"]) self.ui.username.setText(config.setting["proxy_username"]) self.ui.password.setText(config.setting["proxy_password"]) self.ui.buttonbox.accepted.connect(self.set_proxy_password)
def __init__(self, title, logger, w=740, h=340, parent=None): PicardDialog.__init__(self, parent) self.logger = logger self.setWindowFlags(QtCore.Qt.Window) self.resize(w, h) self.setWindowTitle(title) self.doc = QtGui.QTextDocument(self) self.textCursor = QtGui.QTextCursor(self.doc) self.browser = QtWidgets.QTextBrowser(self) self.browser.setDocument(self.doc) self.vbox = QtWidgets.QVBoxLayout(self) self.vbox.addWidget(self.browser) self._display()
def __init__(self, title, logger, w=740, h=340, parent=None): PicardDialog.__init__(self, parent) self.logger = logger self.setWindowFlags(QtCore.Qt.Window) self.resize(w, h) self.setWindowTitle(title) self.doc = QtGui.QTextDocument(self) self.textCursor = QtGui.QTextCursor(self.doc) self.browser = QtGui.QTextBrowser(self) self.browser.setDocument(self.doc) vbox = QtGui.QHBoxLayout(self) vbox.addWidget(self.browser) self._display()
def __init__(self, default_page=None, parent=None): PicardDialog.__init__(self, parent) from picard.ui.ui_options import Ui_Dialog self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.reset_all_button = QtGui.QPushButton(_("&Restore all Defaults")) self.ui.reset_all_button.setToolTip(_("Reset all of Picard's settings")) self.ui.reset_button = QtGui.QPushButton(_("Restore &Defaults")) self.ui.reset_button.setToolTip(_("Reset all settings for current option page")) self.ui.buttonbox.addButton(StandardButton(StandardButton.OK), QtGui.QDialogButtonBox.AcceptRole) self.ui.buttonbox.addButton(StandardButton(StandardButton.CANCEL), QtGui.QDialogButtonBox.RejectRole) self.ui.buttonbox.addButton(StandardButton(StandardButton.HELP), QtGui.QDialogButtonBox.HelpRole) self.ui.buttonbox.addButton(self.ui.reset_all_button, QtGui.QDialogButtonBox.ActionRole) self.ui.buttonbox.addButton(self.ui.reset_button, QtGui.QDialogButtonBox.ActionRole) self.ui.buttonbox.accepted.connect(self.accept) self.ui.buttonbox.rejected.connect(self.reject) self.ui.reset_all_button.clicked.connect(self.confirm_reset_all) self.ui.reset_button.clicked.connect(self.confirm_reset) self.ui.buttonbox.helpRequested.connect(self.help) self.pages = [] for Page in page_classes: page = Page(self.ui.pages_stack) self.pages.append(page) self.item_to_page = {} self.page_to_item = {} self.default_item = None self.add_pages(None, default_page, self.ui.pages_tree) # work-around to set optimal option pane width self.ui.pages_tree.expandAll() max_page_name = self.ui.pages_tree.sizeHintForColumn(0) + 2*self.ui.pages_tree.frameWidth() self.ui.pages_tree.collapseAll() self.ui.pages_tree.setMinimumWidth(max_page_name) self.ui.pages_tree.setHeaderLabels([""]) self.ui.pages_tree.header().hide() self.ui.pages_tree.itemSelectionChanged.connect(self.switch_page) self.restoreWindowState() for page in self.pages: page.load() self.ui.pages_tree.setCurrentItem(self.default_item)
def __init__(self, obj, parent=None): PicardDialog.__init__(self, parent) self.obj = obj self.ui = Ui_InfoDialog() self.display_existing_artwork = False if isinstance(obj, File) and isinstance(obj.parent, Track) or \ isinstance(obj, Track): #Display existing artwork only if selected object is track object #or linked to a track object self.display_existing_artwork = True self.ui.setupUi(self, self.display_existing_artwork) self.ui.buttonBox.accepted.connect(self.accept) self.ui.buttonBox.rejected.connect(self.reject) self.setWindowTitle(_("Info")) self.artwork_table = self.ui.artwork_table self._display_tabs()
def __init__(self, authenticator, reply, parent=None): PicardDialog.__init__(self, parent) self._authenticator = authenticator self.ui = Ui_PasswordDialog() self.ui.setupUi(self) self.ui.info_text.setText( _("The server %s requires you to login. Please enter your username and password.") % reply.url().host()) # TODO: Implement proper password storage for arbitrary servers if self._is_musicbrainz_server(reply.url().host()): self.ui.save_authentication.setChecked(config.persist["save_authentication"]) self.ui.username.setText(config.setting["username"]) self.ui.password.setText(config.setting["password"]) else: self.ui.username.setText(reply.url().userName()) self.ui.password.setText(reply.url().password()) self.ui.save_authentication.setChecked(False) self.ui.save_authentication.hide() self.ui.buttonbox.accepted.connect(self.set_new_password)
def __init__(self, obj, parent=None): PicardDialog.__init__(self, parent) self.obj = obj self.images = [] self.existing_images = [] self.ui = Ui_InfoDialog() self.display_existing_artwork = False if (isinstance(obj, File) and isinstance(obj.parent, Track) or isinstance(obj, Track) or (isinstance(obj, Album) and obj.get_num_total_files() > 0)): # Display existing artwork only if selected object is track object # or linked to a track object or it's an album with files if (getattr(obj, 'orig_metadata', None) is not None and obj.orig_metadata.images and obj.orig_metadata.images != obj.metadata.images): self.display_existing_artwork = True self.existing_images = obj.orig_metadata.images if obj.metadata.images: self.images = obj.metadata.images if not self.images and self.existing_images: self.images = self.existing_images self.existing_images = [] self.display_existing_artwork = False self.ui.setupUi(self) self.ui.buttonBox.accepted.connect(self.accept) self.ui.buttonBox.rejected.connect(self.reject) # Add the ArtworkTable to the ui self.ui.artwork_table = ArtworkTable(self.display_existing_artwork) self.ui.artwork_table.setObjectName("artwork_table") self.ui.vboxlayout1.addWidget(self.ui.artwork_table) if self.display_existing_artwork: self.resize(665, 436) self.setTabOrder(self.ui.tabWidget, self.ui.artwork_table) self.setTabOrder(self.ui.artwork_table, self.ui.buttonBox) self.setWindowTitle(_("Info")) self.artwork_table = self.ui.artwork_table self._display_tabs()
def __init__(self, authenticator, reply, parent=None): PicardDialog.__init__(self, parent) self._authenticator = authenticator self.ui = Ui_PasswordDialog() self.ui.setupUi(self) self.ui.info_text.setText( _("The server %s requires you to login. Please enter your username and password." ) % reply.url().host()) # TODO: Implement proper password storage for arbitrary servers if self._is_musicbrainz_server(reply.url().host()): self.ui.save_authentication.setChecked( config.persist["save_authentication"]) self.ui.username.setText(config.setting["username"]) self.ui.password.setText(config.setting["password"]) else: self.ui.username.setText(reply.url().userName()) self.ui.password.setText(reply.url().password()) self.ui.save_authentication.setChecked(False) self.ui.save_authentication.hide() self.ui.buttonbox.accepted.connect(self.set_new_password)
def __init__(self, files, parent=None): PicardDialog.__init__(self, parent) self.ui = Ui_TagsFromFileNamesDialog() self.ui.setupUi(self) items = [ "%artist%/%album%/%title%", "%artist%/%album%/%tracknumber% %title%", "%artist%/%album%/%tracknumber% - %title%", "%artist%/%album% - %tracknumber% - %title%", "%artist% - %album%/%title%", "%artist% - %album%/%tracknumber% %title%", "%artist% - %album%/%tracknumber% - %title%", ] format = config.persist["tags_from_filenames_format"] if format not in items: selected_index = 0 if format: items.insert(0, format) else: selected_index = items.index(format) self.ui.format.addItems(items) self.ui.format.setCurrentIndex(selected_index) self.ui.buttonbox.addButton(StandardButton(StandardButton.OK), QtWidgets.QDialogButtonBox.AcceptRole) self.ui.buttonbox.addButton(StandardButton(StandardButton.CANCEL), QtWidgets.QDialogButtonBox.RejectRole) self.ui.buttonbox.accepted.connect(self.accept) self.ui.buttonbox.rejected.connect(self.reject) self.ui.preview.clicked.connect(self.preview) self.ui.files.setHeaderLabels([_("File Name")]) self.restoreWindowState() self.files = files self.items = [] for file in files: item = QtWidgets.QTreeWidgetItem(self.ui.files) item.setText(0, os.path.basename(file.filename)) self.items.append(item) self._tag_re = re.compile(r"(%\w+%)") self.numeric_tags = ('tracknumber', 'totaltracks', 'discnumber', 'totaldiscs')
def __init__(self, parent, accept_button_title): PicardDialog.__init__(self, parent) self.search_results = [] self.table = None self.setupUi(accept_button_title) self.restore_state()
def __init__(self, parent=None): PicardDialog.__init__(self, parent) self.search_results = [] self.table = None self.setupUi() self.restore_state()