def __init__(self, policy, interface, show_versions=False):
        self.policy = policy

        widgets = Template('interface_properties')

        self.interface = interface

        window = widgets.get_widget('interface_properties')
        self.window = window
        window.set_title(_('Properties for %s') % interface.get_name())
        window.set_default_size(-1, gtk.gdk.screen_height() / 3)

        self.compile_button = widgets.get_widget('compile')
        self.compile_button.connect(
            'clicked', lambda b: compile.compile(policy, interface))
        window.set_default_response(gtk.RESPONSE_CANCEL)

        def response(dialog, resp):
            if resp == gtk.RESPONSE_CANCEL:
                window.destroy()
            elif resp == gtk.RESPONSE_HELP:
                properties_help.display()

        window.connect('response', response)

        notebook = widgets.get_widget('interface_notebook')
        assert notebook

        feeds = Feeds(policy, interface, widgets)

        stability = widgets.get_widget('preferred_stability')
        stability.set_active(0)
        if interface.stability_policy:
            i = [stable, testing, developer].index(interface.stability_policy)
            i += 1
            if i == 0:
                warn(_("Unknown stability policy %s"),
                     interface.stability_policy)
        else:
            i = 0
        stability.set_active(i)

        def set_stability_policy(combo):
            i = stability.get_active()
            if i == 0:
                new_stability = None
            else:
                name = stability.get_model()[i][0].lower()
                new_stability = stability_levels[name]
            interface.set_stability_policy(new_stability)
            writer.save_interface(interface)
            policy.recalculate()

        stability.connect('changed', set_stability_policy)

        self.use_list = ImplementationList(policy, interface, widgets)

        self.update_list()

        feeds.tv.grab_focus()

        def updated():
            self.update_list()
            feeds.updated()
            self.shade_compile()

        window.connect('destroy', lambda s: policy.watchers.remove(updated))
        policy.watchers.append(updated)
        self.shade_compile()

        if show_versions:
            notebook.next_page()
示例#2
0
    def __init__(self, driver, interface, compile, show_versions=False):
        self.driver = driver

        widgets = Template('interface_properties')

        self.interface = interface

        window = widgets.get_widget('interface_properties')
        self.window = window
        window.set_title(_('Properties for %s') % interface.get_name())
        window.set_default_size(-1, gtk.gdk.screen_height() / 3)

        self.compile_button = widgets.get_widget('compile')
        self.compile_button.connect('clicked', lambda b: compile(interface))
        window.set_default_response(gtk.RESPONSE_CANCEL)

        def response(dialog, resp):
            if resp == gtk.RESPONSE_CANCEL:
                window.destroy()
            elif resp == gtk.RESPONSE_HELP:
                properties_help.display()

        window.connect('response', response)

        notebook = widgets.get_widget('interface_notebook')
        assert notebook

        target_arch = self.driver.solver.get_arch_for(driver.requirements,
                                                      interface=interface)
        feeds = Feeds(driver.config, target_arch, interface, widgets)

        stability = widgets.get_widget('preferred_stability')
        stability.set_active(0)
        if interface.stability_policy:
            i = [stable, testing, developer].index(interface.stability_policy)
            i += 1
            if i == 0:
                warn(_("Unknown stability policy %s"),
                     interface.stability_policy)
        else:
            i = 0
        stability.set_active(i)

        def set_stability_policy(combo, stability=stability):  # (pygtk bug?)
            i = stability.get_active()
            if i == 0:
                new_stability = None
            else:
                name = ['stable', 'testing', 'developer'][i - 1]
                new_stability = stability_levels[name]
            interface.set_stability_policy(new_stability)
            writer.save_interface(interface)
            import main
            main.recalculate()

        stability.connect('changed', set_stability_policy)

        self.use_list = ImplementationList(driver, interface, widgets)

        self.update_list()

        feeds.tv.grab_focus()

        def updated():
            self.update_list()
            feeds.updated()
            self.shade_compile()

        window.connect('destroy', lambda s: driver.watchers.remove(updated))
        driver.watchers.append(updated)
        self.shade_compile()

        if show_versions:
            notebook.next_page()