diff --git a/picard/const/__init__.py b/picard/const/__init__.py index bb99efbb1..2713ed5ff 100644 --- a/picard/const/__init__.py +++ b/picard/const/__init__.py @@ -79,18 +79,19 @@ DOCS_BASE_URL = "https://picard-docs.musicbrainz.org/" + DOCS_VERSION + DOCS_LAN # URLs PICARD_URLS = { - 'home': "https://picard.musicbrainz.org/", - 'documentation': DOCS_BASE_URL + '/', - 'troubleshooting': DOCS_BASE_URL + '/troubleshooting/troubleshooting.html', - 'doc_options': DOCS_BASE_URL + '/config/configuration.html', - 'doc_scripting': DOCS_BASE_URL + '/extending/scripting.html', - 'doc_cover_art_types': "https://musicbrainz.org/doc/Cover_Art/Types", - 'plugins': "https://picard.musicbrainz.org/plugins/", - 'forum': "https://community.metabrainz.org/c/picard", - 'donate': "https://metabrainz.org/donate", - 'chromaprint': "https://acoustid.org/chromaprint#download", - 'acoustid_apikey': "https://acoustid.org/api-key", - 'acoustid_track': "https://acoustid.org/track/", + 'home': "https://picard.musicbrainz.org/", + 'documentation': DOCS_BASE_URL + '/', + 'troubleshooting': DOCS_BASE_URL + '/troubleshooting/troubleshooting.html', + 'doc_options': DOCS_BASE_URL + '/config/configuration.html', + 'doc_scripting': DOCS_BASE_URL + '/extending/scripting.html', + 'doc_tags_from_filenames': DOCS_BASE_URL + '/usage/tags_from_file_names.html', + 'doc_cover_art_types': "https://musicbrainz.org/doc/Cover_Art/Types", + 'plugins': "https://picard.musicbrainz.org/plugins/", + 'forum': "https://community.metabrainz.org/c/picard", + 'donate': "https://metabrainz.org/donate", + 'chromaprint': "https://acoustid.org/chromaprint#download", + 'acoustid_apikey': "https://acoustid.org/api-key", + 'acoustid_track': "https://acoustid.org/track/", } # Various Artists MBID diff --git a/picard/ui/tagsfromfilenames.py b/picard/ui/tagsfromfilenames.py index 4eb090f09..d25e7e3f6 100644 --- a/picard/ui/tagsfromfilenames.py +++ b/picard/ui/tagsfromfilenames.py @@ -3,7 +3,7 @@ # Picard, the next-generation MusicBrainz tagger # # Copyright (C) 2006-2007 Lukáš Lalinský -# Copyright (C) 2009, 2014, 2019-2020 Philipp Wolfer +# Copyright (C) 2009, 2014, 2019-2021 Philipp Wolfer # Copyright (C) 2012-2013 Michael Wiencek # Copyright (C) 2014, 2017 Sophist-UK # Copyright (C) 2016-2017 Sambhav Kothari @@ -37,6 +37,7 @@ from picard.config import ( get_config, ) from picard.script.parser import normalize_tagname +from picard.util import webbrowser2 from picard.util.tags import display_tag_name from picard.ui import PicardDialog @@ -128,10 +129,12 @@ class TagsFromFileNamesDialog(PicardDialog): selected_index = items.index(tff_format) self.ui.format.addItems(items) self.ui.format.setCurrentIndex(selected_index) + self.ui.buttonbox.addButton(StandardButton(StandardButton.HELP), QtWidgets.QDialogButtonBox.HelpRole) 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.buttonbox.helpRequested.connect(self.help) self.ui.preview.clicked.connect(self.preview) self.ui.files.setHeaderLabels([_("File Name")]) self.files = files @@ -165,3 +168,6 @@ class TagsFromFileNamesDialog(PicardDialog): config = get_config() config.persist["tags_from_filenames_format"] = self.ui.format.currentText() super().accept() + + def help(self): + webbrowser2.goto('doc_tags_from_filenames')