Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PICARD-872: Optionnaly use language from release for tracks without work language #526

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions picard/mbxml.py
Expand Up @@ -278,6 +278,8 @@ def track_to_metadata(node, track):
m.length = int(nodes[0].text)
elif name == 'artist_credit':
artist_credit_to_metadata(nodes[0], m)
if config.setting["language_from_release"] and 'language' not in m and '~releaselanguage' in m:
m.add_unique("language", m['~releaselanguage'])
m['~length'] = format_time(m.length)


Expand Down
3 changes: 3 additions & 0 deletions picard/ui/options/metadata.py
Expand Up @@ -41,6 +41,7 @@ class MetadataOptionsPage(OptionsPage):
config.BoolOption("setting", "folksonomy_tags", False),
config.BoolOption("setting", "convert_punctuation", True),
config.BoolOption("setting", "standardize_artists", False),
config.BoolOption("setting", "language_from_release", False),
]

def __init__(self, parent=None):
Expand Down Expand Up @@ -70,6 +71,7 @@ def load(self):
self.ui.va_name.setText(config.setting["va_name"])
self.ui.nat_name.setText(config.setting["nat_name"])
self.ui.standardize_artists.setChecked(config.setting["standardize_artists"])
self.ui.language_from_release.setChecked(config.setting["language_from_release"])

def save(self):
config.setting["translate_artist_names"] = self.ui.translate_artist_names.isChecked()
Expand All @@ -85,6 +87,7 @@ def save(self):
if self.tagger.nats is not None:
self.tagger.nats.update()
config.setting["standardize_artists"] = self.ui.standardize_artists.isChecked()
config.setting["language_from_release"] = self.ui.language_from_release.isChecked()

def set_va_name_default(self):
self.ui.va_name.setText(self.options[0].default)
Expand Down
7 changes: 6 additions & 1 deletion picard/ui/ui_options_metadata.py
Expand Up @@ -36,6 +36,9 @@ def setupUi(self, MetadataOptionsPage):
self.standardize_artists = QtGui.QCheckBox(self.metadata_groupbox)
self.standardize_artists.setObjectName(_fromUtf8("standardize_artists"))
self.verticalLayout_3.addWidget(self.standardize_artists)
self.language_from_release = QtGui.QCheckBox(self.metadata_groupbox)
self.language_from_release.setObjectName(_fromUtf8("language_from_release"))
self.verticalLayout_3.addWidget(self.language_from_release)
self.convert_punctuation = QtGui.QCheckBox(self.metadata_groupbox)
self.convert_punctuation.setObjectName(_fromUtf8("convert_punctuation"))
self.verticalLayout_3.addWidget(self.convert_punctuation)
Expand Down Expand Up @@ -88,7 +91,8 @@ def setupUi(self, MetadataOptionsPage):
QtCore.QMetaObject.connectSlotsByName(MetadataOptionsPage)
MetadataOptionsPage.setTabOrder(self.translate_artist_names, self.artist_locale)
MetadataOptionsPage.setTabOrder(self.artist_locale, self.standardize_artists)
MetadataOptionsPage.setTabOrder(self.standardize_artists, self.convert_punctuation)
MetadataOptionsPage.setTabOrder(self.standardize_artists, self.language_from_release)
MetadataOptionsPage.setTabOrder(self.language_from_release, self.convert_punctuation)
MetadataOptionsPage.setTabOrder(self.convert_punctuation, self.release_ars)
MetadataOptionsPage.setTabOrder(self.release_ars, self.track_ars)
MetadataOptionsPage.setTabOrder(self.track_ars, self.folksonomy_tags)
Expand All @@ -101,6 +105,7 @@ def retranslateUi(self, MetadataOptionsPage):
self.metadata_groupbox.setTitle(_("Metadata"))
self.translate_artist_names.setText(_("Translate artist names to this locale where possible:"))
self.standardize_artists.setText(_("Use standardized artist names"))
self.language_from_release.setText(_("Use the release language as fallback for tracks"))
self.convert_punctuation.setText(_("Convert Unicode punctuation characters to ASCII"))
self.release_ars.setText(_("Use release relationships"))
self.track_ars.setText(_("Use track relationships"))
Expand Down
1 change: 1 addition & 0 deletions test/test_mbxml.py
Expand Up @@ -16,6 +16,7 @@
"standardize_tracks": False,
"standardize_artists": False,
"standardize_releases": False,
"language_from_release": False,
"translate_artist_names": False
}

Expand Down
8 changes: 8 additions & 0 deletions ui/options_metadata.ui
Expand Up @@ -49,6 +49,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="language_from_release">
<property name="text">
<string>Use the release language as fallback for tracks</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="convert_punctuation">
<property name="text">
Expand Down Expand Up @@ -166,6 +173,7 @@
<tabstop>translate_artist_names</tabstop>
<tabstop>artist_locale</tabstop>
<tabstop>standardize_artists</tabstop>
<tabstop>language_from_release</tabstop>
<tabstop>convert_punctuation</tabstop>
<tabstop>release_ars</tabstop>
<tabstop>track_ars</tabstop>
Expand Down