def load_filters_xml(services): """ Load filters document and save filters nodes as FilterInfo objects in array. Save them also as array of tuples of names and arrays of FilterInfo objects that represent named groups of filters as displayd to user. """ _load_icons() print "Loading filters..." global filters_doc filters_doc = xml.dom.minidom.parse(respaths.FILTERS_XML_DOC) load_groups = {} filter_nodes = filters_doc.getElementsByTagName(FILTER) for f_node in filter_nodes: filter_info = FilterInfo(f_node) if filter_info.mlt_drop_version != "": if editorstate.mlt_version_is_equal_or_greater(filter_info.mlt_drop_version): print filter_info.name + " dropped, MLT version too high for this filter." continue if filter_info.mlt_min_version != "": if not editorstate.mlt_version_is_equal_or_greater(filter_info.mlt_min_version): print filter_info.name + " dropped, MLT version too low for this filter." continue if (not filter_info.mlt_service_id in services) and len(services) > 0: print "MLT service " + filter_info.mlt_service_id + " not found." global not_found_filters not_found_filters.append(filter_info) continue if filter_info.mlt_service_id == "volume": # we need this filter to do mutes so save reference to it global _volume_filter_info _volume_filter_info = filter_info # Add filter compositor filters or filter groups if filter_info.group == COMPOSITOR_FILTER_GROUP: global compositor_filters compositor_filters[filter_info.name] = filter_info else: translated_group_name = _translate_group_name(filter_info.group) try: group = load_groups[translated_group_name] group.append(filter_info) except: load_groups[translated_group_name] = [filter_info] # We used translated group names as keys in load_groups # Now we sort them and use them to place data in groups array in the same # order as it will be presented to user, so selection indexes in gui components will match # group array indexes here. sorted_keys = sorted(load_groups.keys()) global groups for gkey in sorted_keys: group = load_groups[gkey] add_group = sorted(group, key=lambda finfo: translations.get_filter_name(finfo.name)) groups.append((gkey, add_group))
def load_filters_xml(services): """ Load filters document and save filters nodes as FilterInfo objects in array. Save them also as array of tuples of names and arrays of FilterInfo objects that represent named groups of filters as displayd to user. """ _load_icons() print "Loading filters..." global filters_doc filters_doc = xml.dom.minidom.parse(respaths.FILTERS_XML_DOC) load_groups = {} filter_nodes = filters_doc.getElementsByTagName(FILTER) for f_node in filter_nodes: filter_info = FilterInfo(f_node) if filter_info.mlt_drop_version != "": if editorstate.mlt_version_is_equal_or_greater(filter_info.mlt_drop_version): print filter_info.name + " dropped, MLT version too high for this filter." continue if filter_info.mlt_min_version != "": if not editorstate.mlt_version_is_equal_or_greater(filter_info.mlt_min_version): print filter_info.name + " dropped, MLT version too low for this filter." continue if (not filter_info.mlt_service_id in services) and len(services) > 0: print "MLT service " + filter_info.mlt_service_id + " not found." global not_found_filters not_found_filters.append(filter_info) continue if filter_info.mlt_service_id == "volume": # we need this filter to do mutes so save reference to it global _volume_filter_info _volume_filter_info = filter_info # Add filter compositor filters or filter groups if filter_info.group == COMPOSITOR_FILTER_GROUP: global compositor_filters compositor_filters[filter_info.name] = filter_info else: translated_group_name = _translate_group_name(filter_info.group) try: group = load_groups[translated_group_name] group.append(filter_info) except: load_groups[translated_group_name] = [filter_info] # We used translated group names as keys in load_groups # Now we sort them and use them to place data in groups array in the same # order as it will be presented to user, so selection indexes in gui components will match # group array indexes here. sorted_keys = sorted(load_groups.keys()) global groups for gkey in sorted_keys: group = load_groups[gkey] add_group = sorted(group, key=lambda finfo: translations.get_filter_name(finfo.name) ) groups.append((gkey, add_group))
def get_filter_mask_start_filters_data(): filter_names = [] filter_msgs = [] for key in _filter_mask_filters: f_info = _filter_mask_filters[key] if f_info.mlt_service_id == "mask_apply": continue filter_names.append( translations.get_filter_name(f_info.filter_mask_filter)) filter_msgs.append(f_info.filter_mask_filter) return (filter_names, filter_msgs)
def __init__(self, filter_object): name = translations.get_filter_name(filter_object.info.name) self.filter_name_label = Gtk.Label(label="<b>" + name + "</b>") self.filter_name_label.set_use_markup(True) self.icon = Gtk.Image.new_from_pixbuf(filter_object.info.get_icon()) hbox = Gtk.HBox(False, 0) hbox.pack_start(guiutils.pad_label(4, 5), False, False, 0) hbox.pack_start(self.icon, False, False, 0) hbox.pack_start(self.filter_name_label, False, False, 0) hbox.pack_start(Gtk.Label(), True, True, 0) self.widget = hbox
def _alpha_filter_add_maybe_info(filter_info): if editorpersistance.prefs.show_alpha_info_message == True: dialogs.alpha_info_msg(_alpha_info_dialog_cb, translations.get_filter_name(filter_info.name))
def _alpha_filter_add_maybe_info(filter_info): if editorpersistance.prefs.show_alpha_info_message == True and \ editorstate. current_sequence().compositing_mode != appconsts.COMPOSITING_MODE_STANDARD_FULL_TRACK: dialogs.alpha_info_msg(_alpha_info_dialog_cb, translations.get_filter_name(filter_info.name))