I think that self.show_captions may not be working here because of Boolean vs. StringyBoolean. When the value for show_captions gets sent back from the MetadataEditor, it's actually a String. StringyBoolean will convert it properly to a bool upon access.