diff --git a/picard/cluster.py b/picard/cluster.py
index 496cbc208..9016b0606 100644
--- a/picard/cluster.py
+++ b/picard/cluster.py
@@ -143,7 +143,7 @@ class Cluster(QtCore.QObject, Item):
total += similarity2(a, b) * self.comparison_weights['title']
a = self.metadata['artist']
- b = artist_credit_from_node(release.artist_credit[0])[0]
+ b = artist_credit_from_node(release.artist_credit[0], self.config)[0]
total += similarity2(a, b) * self.comparison_weights['artist']
a = len(self.files)
diff --git a/picard/file.py b/picard/file.py
index 52d731593..f993794c1 100644
--- a/picard/file.py
+++ b/picard/file.py
@@ -454,7 +454,7 @@ class File(LockableObject, Item):
if 'artist' in self.metadata:
a = self.metadata['artist']
- b = artist_credit_from_node(track.artist_credit[0])[0]
+ b = artist_credit_from_node(track.artist_credit[0], self.config)[0]
parts.append((similarity2(a, b), 4))
total += 4
diff --git a/picard/mbxml.py b/picard/mbxml.py
index e3e55adfa..b00146cf0 100644
--- a/picard/mbxml.py
+++ b/picard/mbxml.py
@@ -105,13 +105,14 @@ def _set_artist_item(m, release, albumname, name, value):
m[name] = value
-def artist_credit_from_node(node):
+def artist_credit_from_node(node, config=None):
artist = ""
artistsort = ""
+ standardize_name = config and config.setting["standardize_artists"]
for credit in node.name_credit:
a = credit.artist[0]
artistsort += a.sort_name[0].text
- if 'name' in credit.children:
+ if 'name' in credit.children and not standardize_name:
artist += credit.name[0].text
else:
artist += a.name[0].text
@@ -121,10 +122,10 @@ def artist_credit_from_node(node):
return (artist, artistsort)
-def artist_credit_to_metadata(node, m=None, release=None):
+def artist_credit_to_metadata(node, m=None, release=None, config=None):
ids = [n.artist[0].id for n in node.name_credit]
_set_artist_item(m, release, 'musicbrainz_albumartistid', 'musicbrainz_artistid', ids)
- artist, artistsort = artist_credit_from_node(node)
+ artist, artistsort = artist_credit_from_node(node, config)
_set_artist_item(m, release, 'albumartist', 'artist', artist)
_set_artist_item(m, release, 'albumartistsort', 'artistsort', artistsort)
@@ -133,17 +134,19 @@ def track_to_metadata(node, track, config=None):
m = track.metadata
recording_to_metadata(node.recording[0], track, config)
# overwrite with data we have on the track
+ standardize_title = config and config.setting["standardize_tracks"]
+ standardize_artist = config and config.setting["standardize_artists"]
for name, nodes in node.children.iteritems():
if not nodes:
continue
- if name == 'title':
+ if name == 'title' and not standardize_title:
m['title'] = nodes[0].text
if name == 'position':
m['tracknumber'] = nodes[0].text
elif name == 'length' and nodes[0].text:
m.length = int(nodes[0].text)
- elif name == 'artist_credit':
- artist_credit_to_metadata(nodes[0], m)
+ elif name == 'artist_credit' and not standardize_artist:
+ artist_credit_to_metadata(nodes[0], m, config=config)
def recording_to_metadata(node, track, config=None):
@@ -158,7 +161,7 @@ def recording_to_metadata(node, track, config=None):
elif name == 'length' and nodes[0].text:
m.length = int(nodes[0].text)
elif name == 'artist_credit':
- artist_credit_to_metadata(nodes[0], m)
+ artist_credit_to_metadata(nodes[0], m, config=config)
if name == 'relation_list':
_relations_to_metadata(nodes, m, config)
elif name == 'release_list' and nodes[0].count != '0':
@@ -176,6 +179,7 @@ def recording_to_metadata(node, track, config=None):
def release_to_metadata(node, m, config=None, album=None):
"""Make metadata dict from a XML 'release' node."""
m['musicbrainz_albumid'] = node.attribs['id']
+ standardize_title = config and config.setting["standardize_releases"]
for name, nodes in node.children.iteritems():
if not nodes:
@@ -183,14 +187,16 @@ def release_to_metadata(node, m, config=None, album=None):
if name == 'release_group':
if 'type' in nodes[0].attribs:
m['releasetype'] = nodes[0].type.lower()
+ if standardize_title:
+ m['album'] = nodes[0].title[0].text
elif name == 'status':
m['releasestatus'] = nodes[0].text.lower()
- elif name == 'title':
+ elif name == 'title' and not standardize_title:
m['album'] = nodes[0].text
elif name == 'asin':
m['asin'] = nodes[0].text
elif name == 'artist_credit':
- artist_credit_to_metadata(nodes[0], m, True)
+ artist_credit_to_metadata(nodes[0], m, True, config=config)
elif name == 'date':
m['date'] = nodes[0].text
elif name == 'country':
diff --git a/picard/ui/cdlookup.py b/picard/ui/cdlookup.py
index ca7c57c45..7eb155e80 100644
--- a/picard/ui/cdlookup.py
+++ b/picard/ui/cdlookup.py
@@ -34,7 +34,7 @@ class CDLookupDialog(QtGui.QDialog):
for release in self.releases:
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(1, artist_credit_from_node(release.artist_credit[0], self.config)[0])
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)
diff --git a/picard/ui/itemviews.py b/picard/ui/itemviews.py
index 60d3d4ff9..3a62e83de 100644
--- a/picard/ui/itemviews.py
+++ b/picard/ui/itemviews.py
@@ -497,9 +497,15 @@ class BaseTreeView(QtGui.QTreeWidget):
files.append(filename)
elif url.scheme() == "http":
path = unicode(url.path())
- match = re.search(r"release/([0-9a-z\-]{36})", path)
- if match:
- self.tagger.load_album(match.group(1))
+ match = re.search(r"/(release|recording)/([0-9a-z\-]{36})", path)
+ if not match:
+ continue
+ entity = match.group(1)
+ mbid = match.group(2)
+ if entity == "release":
+ self.tagger.load_album(mbid)
+ elif entity == "recording":
+ self.tagger.load_nat(mbid)
if files:
self.tagger.add_files(files)
diff --git a/picard/ui/options/metadata.py b/picard/ui/options/metadata.py
index 4a3636979..31120ff30 100644
--- a/picard/ui/options/metadata.py
+++ b/picard/ui/options/metadata.py
@@ -41,6 +41,9 @@ class MetadataOptionsPage(OptionsPage):
BoolOption("setting", "track_ars", False),
BoolOption("setting", "folksonomy_tags", False),
BoolOption("setting", "convert_punctuation", False),
+ BoolOption("setting", "standardize_tracks", False),
+ BoolOption("setting", "standardize_releases", False),
+ BoolOption("setting", "standardize_artists", False),
]
def __init__(self, parent=None):
@@ -58,6 +61,9 @@ class MetadataOptionsPage(OptionsPage):
self.ui.folksonomy_tags.setChecked(self.config.setting["folksonomy_tags"])
self.ui.va_name.setText(self.config.setting["va_name"])
self.ui.nat_name.setText(self.config.setting["nat_name"])
+ self.ui.standardize_tracks.setChecked(self.config.setting["standardize_tracks"])
+ self.ui.standardize_releases.setChecked(self.config.setting["standardize_releases"])
+ self.ui.standardize_artists.setChecked(self.config.setting["standardize_artists"])
def save(self):
self.config.setting["translate_artist_names"] = self.ui.translate_artist_names.isChecked()
@@ -67,6 +73,9 @@ class MetadataOptionsPage(OptionsPage):
self.config.setting["folksonomy_tags"] = self.ui.folksonomy_tags.isChecked()
self.config.setting["va_name"] = self.ui.va_name.text()
self.config.setting["nat_name"] = self.ui.nat_name.text()
+ self.config.setting["standardize_tracks"] = self.ui.standardize_tracks.isChecked()
+ self.config.setting["standardize_releases"] = self.ui.standardize_releases.isChecked()
+ self.config.setting["standardize_artists"] = self.ui.standardize_artists.isChecked()
def set_va_name_default(self):
self.ui.va_name.setText(self.options[0].default)
diff --git a/picard/ui/ui_options_metadata.py b/picard/ui/ui_options_metadata.py
index 112cbe6e4..e802ce136 100644
--- a/picard/ui/ui_options_metadata.py
+++ b/picard/ui/ui_options_metadata.py
@@ -2,8 +2,8 @@
# Form implementation generated from reading ui file 'ui/options_metadata.ui'
#
-# Created: Sun Apr 10 19:32:51 2011
-# by: PyQt4 UI code generator 4.7.4
+# Created: Fri Jun 3 19:41:05 2011
+# by: PyQt4 UI code generator 4.8.4
#
# WARNING! All changes made in this file will be lost!
@@ -12,59 +12,189 @@ from PyQt4 import QtCore, QtGui
class Ui_MetadataOptionsPage(object):
def setupUi(self, MetadataOptionsPage):
MetadataOptionsPage.setObjectName("MetadataOptionsPage")
- MetadataOptionsPage.resize(423, 445)
+ MetadataOptionsPage.resize(423, 485)
self.verticalLayout = QtGui.QVBoxLayout(MetadataOptionsPage)
+ self.verticalLayout.setContentsMargins(-1, 0, -1, -1)
self.verticalLayout.setObjectName("verticalLayout")
+ self.verticalLayout_2 = QtGui.QVBoxLayout()
+ self.verticalLayout_2.setSpacing(0)
+ self.verticalLayout_2.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
+ self.verticalLayout_2.setContentsMargins(-1, 0, -1, -1)
+ self.verticalLayout_2.setObjectName("verticalLayout_2")
self.rename_files = QtGui.QGroupBox(MetadataOptionsPage)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Maximum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.rename_files.sizePolicy().hasHeightForWidth())
+ self.rename_files.setSizePolicy(sizePolicy)
+ self.rename_files.setMinimumSize(QtCore.QSize(397, 135))
+ font = QtGui.QFont()
+ self.rename_files.setFont(font)
+ self.rename_files.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.rename_files.setObjectName("rename_files")
- self.gridLayout = QtGui.QGridLayout(self.rename_files)
- self.gridLayout.setSpacing(2)
- self.gridLayout.setObjectName("gridLayout")
self.translate_artist_names = QtGui.QCheckBox(self.rename_files)
+ self.translate_artist_names.setGeometry(QtCore.QRect(13, 34, 380, 21))
self.translate_artist_names.setObjectName("translate_artist_names")
- self.gridLayout.addWidget(self.translate_artist_names, 0, 0, 1, 2)
self.convert_punctuation = QtGui.QCheckBox(self.rename_files)
+ self.convert_punctuation.setGeometry(QtCore.QRect(13, 51, 332, 21))
self.convert_punctuation.setObjectName("convert_punctuation")
- self.gridLayout.addWidget(self.convert_punctuation, 1, 0, 1, 2)
self.release_ars = QtGui.QCheckBox(self.rename_files)
+ self.release_ars.setGeometry(QtCore.QRect(13, 68, 182, 21))
self.release_ars.setObjectName("release_ars")
- self.gridLayout.addWidget(self.release_ars, 2, 0, 1, 2)
self.track_ars = QtGui.QCheckBox(self.rename_files)
+ self.track_ars.setGeometry(QtCore.QRect(13, 85, 170, 21))
self.track_ars.setObjectName("track_ars")
- self.gridLayout.addWidget(self.track_ars, 3, 0, 1, 2)
self.folksonomy_tags = QtGui.QCheckBox(self.rename_files)
+ self.folksonomy_tags.setGeometry(QtCore.QRect(13, 102, 215, 21))
self.folksonomy_tags.setObjectName("folksonomy_tags")
- self.gridLayout.addWidget(self.folksonomy_tags, 4, 0, 1, 2)
- self.verticalLayout.addWidget(self.rename_files)
+ self.verticalLayout_2.addWidget(self.rename_files)
self.rename_files_2 = QtGui.QGroupBox(MetadataOptionsPage)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Maximum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.rename_files_2.sizePolicy().hasHeightForWidth())
+ self.rename_files_2.setSizePolicy(sizePolicy)
+ self.rename_files_2.setMinimumSize(QtCore.QSize(397, 152))
+ self.rename_files_2.setFlat(False)
self.rename_files_2.setObjectName("rename_files_2")
- self.gridlayout = QtGui.QGridLayout(self.rename_files_2)
- self.gridlayout.setMargin(9)
+ self.label_5 = QtGui.QLabel(self.rename_files_2)
+ self.label_5.setGeometry(QtCore.QRect(13, 115, 80, 17))
+ self.label_5.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.label_5.setObjectName("label_5")
+ self.label_3 = QtGui.QLabel(self.rename_files_2)
+ self.label_3.setGeometry(QtCore.QRect(13, 65, 71, 17))
+ self.label_3.setLayoutDirection(QtCore.Qt.LeftToRight)
+ self.label_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.label_3.setObjectName("label_3")
+ self.standardize_releases = QtGui.QRadioButton(self.rename_files_2)
+ self.standardize_releases.setGeometry(QtCore.QRect(243, 90, 19, 18))
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.standardize_releases.sizePolicy().hasHeightForWidth())
+ self.standardize_releases.setSizePolicy(sizePolicy)
+ self.standardize_releases.setText((""))
+ self.standardize_releases.setObjectName("standardize_releases")
+ self.buttonGroup_2 = QtGui.QButtonGroup(MetadataOptionsPage)
+ self.buttonGroup_2.setObjectName("buttonGroup_2")
+ self.buttonGroup_2.addButton(self.standardize_releases)
+ self.label_2 = QtGui.QLabel(self.rename_files_2)
+ self.label_2.setGeometry(QtCore.QRect(212, 34, 88, 17))
+ font = QtGui.QFont()
+ font.setWeight(75)
+ font.setBold(True)
+ self.label_2.setFont(font)
+ self.label_2.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_2.setObjectName("label_2")
+ self.standardize_artists = QtGui.QRadioButton(self.rename_files_2)
+ self.standardize_artists.setGeometry(QtCore.QRect(243, 115, 19, 18))
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.standardize_artists.sizePolicy().hasHeightForWidth())
+ self.standardize_artists.setSizePolicy(sizePolicy)
+ self.standardize_artists.setText((""))
+ self.standardize_artists.setObjectName("standardize_artists")
+ self.buttonGroup_3 = QtGui.QButtonGroup(MetadataOptionsPage)
+ self.buttonGroup_3.setObjectName("buttonGroup_3")
+ self.buttonGroup_3.addButton(self.standardize_artists)
+ self.label = QtGui.QLabel(self.rename_files_2)
+ self.label.setGeometry(QtCore.QRect(103, 34, 79, 17))
+ font = QtGui.QFont()
+ font.setWeight(75)
+ font.setBold(True)
+ self.label.setFont(font)
+ self.label.setAlignment(QtCore.Qt.AlignCenter)
+ self.label.setObjectName("label")
+ self.label_4 = QtGui.QLabel(self.rename_files_2)
+ self.label_4.setGeometry(QtCore.QRect(13, 90, 83, 17))
+ self.label_4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.label_4.setObjectName("label_4")
+ self.artists_on_cover = QtGui.QRadioButton(self.rename_files_2)
+ self.artists_on_cover.setGeometry(QtCore.QRect(129, 115, 19, 18))
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.artists_on_cover.sizePolicy().hasHeightForWidth())
+ self.artists_on_cover.setSizePolicy(sizePolicy)
+ self.artists_on_cover.setText((""))
+ self.artists_on_cover.setChecked(True)
+ self.artists_on_cover.setObjectName("artists_on_cover")
+ self.buttonGroup_3.addButton(self.artists_on_cover)
+ self.releases_on_cover = QtGui.QRadioButton(self.rename_files_2)
+ self.releases_on_cover.setGeometry(QtCore.QRect(129, 90, 19, 18))
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.releases_on_cover.sizePolicy().hasHeightForWidth())
+ self.releases_on_cover.setSizePolicy(sizePolicy)
+ self.releases_on_cover.setText((""))
+ self.releases_on_cover.setChecked(True)
+ self.releases_on_cover.setObjectName("releases_on_cover")
+ self.buttonGroup_2.addButton(self.releases_on_cover)
+ self.standardize_tracks = QtGui.QRadioButton(self.rename_files_2)
+ self.standardize_tracks.setEnabled(True)
+ self.standardize_tracks.setGeometry(QtCore.QRect(243, 65, 19, 18))
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.standardize_tracks.sizePolicy().hasHeightForWidth())
+ self.standardize_tracks.setSizePolicy(sizePolicy)
+ self.standardize_tracks.setMinimumSize(QtCore.QSize(0, 0))
+ self.standardize_tracks.setText((""))
+ self.standardize_tracks.setObjectName("standardize_tracks")
+ self.buttonGroup = QtGui.QButtonGroup(MetadataOptionsPage)
+ self.buttonGroup.setObjectName("buttonGroup")
+ self.buttonGroup.addButton(self.standardize_tracks)
+ self.tracks_on_cover = QtGui.QRadioButton(self.rename_files_2)
+ self.tracks_on_cover.setGeometry(QtCore.QRect(129, 65, 19, 18))
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.tracks_on_cover.sizePolicy().hasHeightForWidth())
+ self.tracks_on_cover.setSizePolicy(sizePolicy)
+ self.tracks_on_cover.setLayoutDirection(QtCore.Qt.LeftToRight)
+ self.tracks_on_cover.setText((""))
+ self.tracks_on_cover.setIconSize(QtCore.QSize(16, 16))
+ self.tracks_on_cover.setChecked(True)
+ self.tracks_on_cover.setObjectName("tracks_on_cover")
+ self.buttonGroup.addButton(self.tracks_on_cover)
+ self.verticalLayout_2.addWidget(self.rename_files_2)
+ self.rename_files_3 = QtGui.QGroupBox(MetadataOptionsPage)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Maximum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.rename_files_3.sizePolicy().hasHeightForWidth())
+ self.rename_files_3.setSizePolicy(sizePolicy)
+ self.rename_files_3.setMinimumSize(QtCore.QSize(397, 0))
+ self.rename_files_3.setObjectName("rename_files_3")
+ self.gridlayout = QtGui.QGridLayout(self.rename_files_3)
self.gridlayout.setSpacing(2)
self.gridlayout.setObjectName("gridlayout")
- self.label_3 = QtGui.QLabel(self.rename_files_2)
- self.label_3.setObjectName("label_3")
- self.gridlayout.addWidget(self.label_3, 0, 0, 1, 2)
- self.label_4 = QtGui.QLabel(self.rename_files_2)
- self.label_4.setObjectName("label_4")
- self.gridlayout.addWidget(self.label_4, 2, 0, 1, 2)
- self.nat_name = QtGui.QLineEdit(self.rename_files_2)
+ self.label_6 = QtGui.QLabel(self.rename_files_3)
+ self.label_6.setObjectName("label_6")
+ self.gridlayout.addWidget(self.label_6, 0, 0, 1, 2)
+ self.label_7 = QtGui.QLabel(self.rename_files_3)
+ self.label_7.setObjectName("label_7")
+ self.gridlayout.addWidget(self.label_7, 2, 0, 1, 2)
+ self.nat_name = QtGui.QLineEdit(self.rename_files_3)
self.nat_name.setObjectName("nat_name")
self.gridlayout.addWidget(self.nat_name, 3, 0, 1, 1)
- self.nat_name_default = QtGui.QPushButton(self.rename_files_2)
+ self.nat_name_default = QtGui.QPushButton(self.rename_files_3)
self.nat_name_default.setObjectName("nat_name_default")
self.gridlayout.addWidget(self.nat_name_default, 3, 1, 1, 1)
- self.va_name_default = QtGui.QPushButton(self.rename_files_2)
+ self.va_name_default = QtGui.QPushButton(self.rename_files_3)
self.va_name_default.setObjectName("va_name_default")
self.gridlayout.addWidget(self.va_name_default, 1, 1, 1, 1)
- self.va_name = QtGui.QLineEdit(self.rename_files_2)
+ self.va_name = QtGui.QLineEdit(self.rename_files_3)
self.va_name.setObjectName("va_name")
self.gridlayout.addWidget(self.va_name, 1, 0, 1, 1)
- self.verticalLayout.addWidget(self.rename_files_2)
- spacerItem1 = QtGui.QSpacerItem(261, 16, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
- self.verticalLayout.addItem(spacerItem1)
- self.label_3.setBuddy(self.va_name_default)
- self.label_4.setBuddy(self.nat_name_default)
+ self.verticalLayout_2.addWidget(self.rename_files_3)
+ self.verticalLayout.addLayout(self.verticalLayout_2)
+ spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.MinimumExpanding)
+ self.verticalLayout.addItem(spacerItem)
+ self.label_6.setBuddy(self.va_name_default)
+ self.label_7.setBuddy(self.nat_name_default)
self.retranslateUi(MetadataOptionsPage)
QtCore.QMetaObject.connectSlotsByName(MetadataOptionsPage)
@@ -74,14 +204,21 @@ class Ui_MetadataOptionsPage(object):
MetadataOptionsPage.setTabOrder(self.nat_name, self.nat_name_default)
def retranslateUi(self, MetadataOptionsPage):
- self.rename_files.setTitle(_("Metadata"))
+ self.rename_files.setTitle(_("MetadataOptionsPage"))
self.translate_artist_names.setText(_("Translate foreign artist names to English where possible"))
self.convert_punctuation.setText(_("Convert Unicode punctuation characters to ASCII"))
self.release_ars.setText(_("Use release relationships"))
self.track_ars.setText(_("Use track relationships"))
self.folksonomy_tags.setText(_("Use folksonomy tags as genre"))
- self.rename_files_2.setTitle(_("Custom Fields"))
- self.label_3.setText(_("Various artists:"))
- self.label_4.setText(_("Non-album tracks:"))
+ self.rename_files_2.setTitle(_("Standardization"))
+ self.label_5.setText(_("Artist names"))
+ self.label_3.setText(_("Track titles"))
+ self.label_2.setText(_("Standardized"))
+ self.label.setText(_("As on cover"))
+ self.label_4.setText(_("Release titles"))
+ self.rename_files_3.setTitle(_("Custom Fields"))
+ self.label_6.setText(_("Various artists:"))
+ self.label_7.setText(_("Non-album tracks:"))
self.nat_name_default.setText(_("Default"))
self.va_name_default.setText(_("Default"))
+
diff --git a/ui/options_metadata.ui b/ui/options_metadata.ui
index 699981ee4..79b11fa3a 100644
--- a/ui/options_metadata.ui
+++ b/ui/options_metadata.ui
@@ -7,118 +7,470 @@
0
0
423
- 445
+ 485
+
+ 0
+
-
-
-
- Metadata
+
+
+ 0
-
-
- 2
-
-
-
+
+ QLayout::SetDefaultConstraint
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 397
+ 135
+
+
+
+
+ false
+
+
+
+ Metadata
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
+
+
+
+ 13
+ 34
+ 380
+ 21
+
+
Translate foreign artist names to English where possible
-
- -
+
+
+ 13
+ 51
+ 332
+ 21
+
+
Convert Unicode punctuation characters to ASCII
-
- -
+
+
+ 13
+ 68
+ 182
+ 21
+
+
Use release relationships
-
- -
+
+
+ 13
+ 85
+ 170
+ 21
+
+
Use track relationships
-
- -
+
+
+ 13
+ 102
+ 215
+ 21
+
+
Use folksonomy tags as genre
-
-
-
-
- -
-
-
- Custom Fields
-
-
-
- 2
-
-
-
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 397
+ 152
+
+
+
+ Standardization
+
+
+ false
+
+
+
+
+ 13
+ 115
+ 80
+ 17
+
+
+
+ Artist names
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
-
- Various artists:
+
+
+ 13
+ 65
+ 71
+ 17
+
-
- va_name_default
+
+ Qt::LeftToRight
+
+
+ Track titles
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+
+
+ 243
+ 90
+ 19
+ 18
+
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ buttonGroup_2
+
+
+
+
+
+ 212
+ 34
+ 88
+ 17
+
+
+
+
+ 75
+ true
+
+
+
+ Standardized
+
+
+ Qt::AlignCenter
+
+
+
+
+
+ 243
+ 115
+ 19
+ 18
+
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ buttonGroup_3
+
+
+
+
+
+ 103
+ 34
+ 79
+ 17
+
+
+
+
+ 75
+ true
+
+
+
+ As on cover
+
+
+ Qt::AlignCenter
-
- -
-
- Non-album tracks:
+
+
+ 13
+ 90
+ 83
+ 17
+
-
- nat_name_default
+
+ Release titles
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
- -
-
-
- -
-
-
- Default
+
+
+
+ 129
+ 115
+ 19
+ 18
+
-
-
- -
-
-
- Default
+
+
+ 0
+ 0
+
+
+
+
+
+ true
+
+
+ buttonGroup_3
+
-
- -
-
-
-
-
+
+
+
+ 129
+ 90
+ 19
+ 18
+
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ true
+
+
+ buttonGroup_2
+
+
+
+
+ true
+
+
+
+ 243
+ 65
+ 19
+ 18
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ buttonGroup
+
+
+
+
+
+ 129
+ 65
+ 19
+ 18
+
+
+
+
+ 0
+ 0
+
+
+
+ Qt::LeftToRight
+
+
+
+
+
+
+ 16
+ 16
+
+
+
+ true
+
+
+ buttonGroup
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 397
+ 0
+
+
+
+ Custom Fields
+
+
+
+ 2
+
+
-
+
+
+ Various artists:
+
+
+ va_name_default
+
+
+
+ -
+
+
+ Non-album tracks:
+
+
+ nat_name_default
+
+
+
+ -
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+
+
+
+
-
-
+
Qt::Vertical
+
+ QSizePolicy::MinimumExpanding
+
- 261
- 16
+ 20
+ 40
@@ -134,4 +486,9 @@
+
+
+
+
+