Merge branch 'PICARD-19' of https://github.com/weisslj/picard into weisslj-PICARD-19

This commit is contained in:
Michael Wiencek
2012-04-15 14:32:02 -05:00
4 changed files with 29 additions and 6 deletions

View File

@@ -129,11 +129,14 @@ class File(LockableObject, Item):
self.orig_metadata.copy(self.metadata)
def copy_metadata(self, metadata):
self.saved_metadata['musicip_puid'] = self.metadata['musicip_puid']
self.saved_metadata['acoustid_id'] = self.metadata['acoustid_id']
exceptions = ['musicip_puid', 'acoustid_id']
if self.config.setting['preserved_tags']:
exceptions.extend(re.split(r'\s+', self.config.setting['preserved_tags']))
for tag in exceptions:
self.saved_metadata[tag] = self.metadata[tag]
self.metadata.copy(metadata)
self.metadata['musicip_puid'] = self.saved_metadata.pop('musicip_puid')
self.metadata['acoustid_id'] = self.saved_metadata.pop('acoustid_id')
for tag in exceptions:
self.metadata[tag] = self.saved_metadata.pop(tag)
def has_error(self):
return self.state == File.ERROR

View File

@@ -33,6 +33,7 @@ class TagsOptionsPage(OptionsPage):
options = [
BoolOption("setting", "clear_existing_tags", False),
TextOption("setting", "preserved_tags", ""),
BoolOption("setting", "write_id3v1", True),
BoolOption("setting", "write_id3v23", True),
TextOption("setting", "id3v2_encoding", "utf-16"),
@@ -62,6 +63,7 @@ class TagsOptionsPage(OptionsPage):
self.ui.enc_utf8.setChecked(True)
self.ui.remove_ape_from_mp3.setChecked(self.config.setting["remove_ape_from_mp3"])
self.ui.remove_id3_from_flac.setChecked(self.config.setting["remove_id3_from_flac"])
self.ui.preserved_tags.setText(self.config.setting["preserved_tags"])
self.update_encodings()
def save(self):
@@ -77,6 +79,7 @@ class TagsOptionsPage(OptionsPage):
self.config.setting["id3v2_encoding"] = "utf-8"
self.config.setting["remove_ape_from_mp3"] = self.ui.remove_ape_from_mp3.isChecked()
self.config.setting["remove_id3_from_flac"] = self.ui.remove_id3_from_flac.isChecked()
self.config.setting["preserved_tags"] = unicode(self.ui.preserved_tags.text())
self.tagger.window.enable_tag_saving_action.setChecked(not self.config.setting["dont_write_tags"])
def update_encodings(self):

View File

@@ -2,8 +2,8 @@
# Form implementation generated from reading ui file 'ui/options_tags.ui'
#
# Created: Thu Sep 15 13:39:09 2011
# by: PyQt4 UI code generator 4.8.3
# Created: Tue Mar 20 01:27:07 2012
# by: PyQt4 UI code generator 4.9.1
#
# WARNING! All changes made in this file will be lost!
@@ -40,6 +40,12 @@ class Ui_TagsOptionsPage(object):
self.remove_ape_from_mp3 = QtGui.QCheckBox(self.rename_files)
self.remove_ape_from_mp3.setObjectName(_fromUtf8("remove_ape_from_mp3"))
self.vboxlayout1.addWidget(self.remove_ape_from_mp3)
self.preserved_tags_label = QtGui.QLabel(self.rename_files)
self.preserved_tags_label.setObjectName(_fromUtf8("preserved_tags_label"))
self.vboxlayout1.addWidget(self.preserved_tags_label)
self.preserved_tags = QtGui.QLineEdit(self.rename_files)
self.preserved_tags.setObjectName(_fromUtf8("preserved_tags"))
self.vboxlayout1.addWidget(self.preserved_tags)
self.vboxlayout.addWidget(self.rename_files)
self.rename_files_2 = QtGui.QGroupBox(TagsOptionsPage)
self.rename_files_2.setObjectName(_fromUtf8("rename_files_2"))
@@ -106,6 +112,7 @@ class Ui_TagsOptionsPage(object):
self.clear_existing_tags.setText(_("Clear existing tags"))
self.remove_id3_from_flac.setText(_("Remove ID3 tags from FLAC files"))
self.remove_ape_from_mp3.setText(_("Remove APEv2 tags from MP3 files"))
self.preserved_tags_label.setText(_("Preserve these tags from being cleared or overwritten with MusicBrainz data:"))
self.rename_files_2.setTitle(_("Tag compatibility"))
self.groupBox.setTitle(_("ID3v2 version"))
self.write_id3v24.setText(_("2.4"))

View File

@@ -57,6 +57,16 @@
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="preserved_tags_label">
<property name="text">
<string>Preserve these tags from being cleared or overwritten with MusicBrainz data:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="preserved_tags" />
</item>
</layout>
</widget>
</item>