mirror of
https://github.com/fergalmoran/picard.git
synced 2026-01-28 19:33:59 +00:00
PICARD-259: Have file metadata available when manually running script
Ensure that file metadata is also available to script when being run on a track manually after loading. If clear_existing_tags is present tags that would be deleted are not available. Technical variables are always available.
This commit is contained in:
@@ -248,6 +248,8 @@ class File(QtCore.QObject, Item):
|
||||
saved_metadata[tag] = values
|
||||
deleted_tags = self.metadata.deleted_tags
|
||||
self.metadata.copy(metadata)
|
||||
for info in FILE_INFO_TAGS:
|
||||
metadata[info] = self.orig_metadata[info]
|
||||
if preserve_deleted:
|
||||
for tag in deleted_tags:
|
||||
del self.metadata[tag]
|
||||
|
||||
@@ -174,9 +174,14 @@ class Track(DataObject, Item):
|
||||
return
|
||||
# Run the scripts for the file to allow usage of
|
||||
# file specific metadata and variables
|
||||
metadata = Metadata(self.orig_metadata)
|
||||
metadata_proxy = MultiMetadataProxy(metadata, file.metadata)
|
||||
self.run_scripts(metadata_proxy)
|
||||
if config.setting["clear_existing_tags"]:
|
||||
metadata = Metadata(self.orig_metadata)
|
||||
metadata_proxy = MultiMetadataProxy(metadata, file.metadata)
|
||||
self.run_scripts(metadata_proxy)
|
||||
else:
|
||||
metadata = Metadata(file.metadata)
|
||||
metadata.update(self.orig_metadata)
|
||||
self.run_scripts(metadata)
|
||||
# Apply changes to the track's metadata done manually after the scripts ran
|
||||
meta_diff = self.metadata.diff(self.scripted_metadata)
|
||||
metadata.update(meta_diff)
|
||||
|
||||
Reference in New Issue
Block a user