Beispiel #1
0
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))
Beispiel #2
0
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)
Beispiel #4
0
    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
Beispiel #5
0
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:
        dialogs.alpha_info_msg(_alpha_info_dialog_cb, translations.get_filter_name(filter_info.name))
Beispiel #7
0
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))