def filter=(filter)
if filter.empty?
clear_filter
return
end
@filter_string = filter
visible_path = Hash.new(false)
@gtk_tree_store.each do |model,path,iter|
if iter[NAME] and iter[TYPE] == TYPE_FILE
if iter[VISIBLE] = iter[NAME].index(@filter_string)
begin
visible_path[path.to_s] = true
end while path.up!
end
else
iter[VISIBLE] = true
if iter[TYPE] == TYPE_SEPARATOR
visible_path[path.to_s] = true
end
end
end
@gtk_tree_store.each do |model,path,iter|
if not visible_path[path.to_s]
iter[VISIBLE] = false
if iter[TYPE] == TYPE_DIRECTORY and Config[:file_directory_separator]
if iter.next!
iter[VISIBLE] = false
end
end
end
end
@gtk_filtered_tree_model.refilter
@gtk_tree_view.expand_all if Config[:files_auto_expand_on_filter]
end