mirror of
https://github.com/fergalmoran/picard.git
synced 2026-02-28 02:23:58 +00:00
Merge pull request #516 from samj1912/supporttags
PICARD-253: Show only supported tags in UI
This commit is contained in:
@@ -204,6 +204,9 @@ class APEv2File(File):
|
||||
else:
|
||||
return name.title()
|
||||
|
||||
def supports_tag(self, name):
|
||||
return bool(name)
|
||||
|
||||
|
||||
class MusepackFile(APEv2File):
|
||||
|
||||
|
||||
@@ -419,11 +419,7 @@ class ID3File(File):
|
||||
del tags[real_name]
|
||||
|
||||
def supports_tag(self, name):
|
||||
return (name in self.__rtranslate
|
||||
or name in self.__rtranslate_freetext
|
||||
or name.startswith('performer:')
|
||||
or name.startswith('lyrics:') or name == 'lyrics'
|
||||
or name in self.__other_supported_tags)
|
||||
return ((name and not name.startswith("~")) or name == "~rating")
|
||||
|
||||
def _get_tag_name(self, name):
|
||||
if name in self.__rtranslate:
|
||||
|
||||
@@ -260,6 +260,9 @@ class VCommentFile(File):
|
||||
else:
|
||||
return name
|
||||
|
||||
def supports_tag(self, name):
|
||||
return bool(name)
|
||||
|
||||
|
||||
class FLACFile(VCommentFile):
|
||||
|
||||
|
||||
@@ -37,6 +37,10 @@ class EditTagDialog(PicardDialog):
|
||||
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("")
|
||||
|
||||
@@ -462,12 +462,17 @@ class MetadataBox(QtGui.QTableWidget):
|
||||
self.setRowCount(0)
|
||||
return
|
||||
|
||||
self.setRowCount(len(result.tag_names))
|
||||
|
||||
orig_flags = QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled
|
||||
new_flags = orig_flags | QtCore.Qt.ItemIsEditable
|
||||
if len(self.files) == 1:
|
||||
current_file = list(self.files)[0]
|
||||
display_tags = filter(lambda x: current_file.supports_tag(x),
|
||||
result.tag_names)
|
||||
else:
|
||||
display_tags = result.tag_names
|
||||
self.setRowCount(len(display_tags))
|
||||
|
||||
for i, name in enumerate(result.tag_names):
|
||||
for i, name in enumerate(display_tags):
|
||||
length = name == "~length"
|
||||
tag_item = self.item(i, 0)
|
||||
orig_item = self.item(i, 1)
|
||||
|
||||
Reference in New Issue
Block a user