def load_glade_file_get_widgets_and_connect_signals(
    glade_file, root_widget, widget_holder=None, signal_recipient=None ):
    glade_xml = XML(glade_file, root_widget)

    if signal_recipient != None:
        glade_xml.signal_autoconnect( signal_recipient )

    for widget in glade_xml.get_widget_prefix(""):
        if isinstance(widget_holder, dict):
            widget_holder[get_widget_name(widget)] = widget
        else:
            setattr( widget_holder, get_widget_name(widget), widget )