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()
class Properties:
    interface = None
    use_list = None
    window = None
    policy = None

    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()

    def show(self):
        self.window.show()

    def destroy(self):
        self.window.destroy()

    def shade_compile(self):
        self.compile_button.set_sensitive(
            have_source_for(self.policy, self.interface))

    def update_list(self):
        ranked_items = self.policy.solver.details.get(self.interface, None)
        if ranked_items is None:
            # The Solver didn't get this far, but we should still display them!
            ranked_items = [
                (impl, _("(solve aborted before here)"))
                for impl in self.interface.implementations.values()
            ]
            ranked_items.sort()
        self.use_list.set_items(ranked_items)
	def __init__(self, policy, interface, compile, 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(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, 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(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()
Example #4
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()
class Properties:
	interface = None
	use_list = None
	window = None
	policy = None

	def __init__(self, policy, interface, compile, 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(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, 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(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()

	def show(self):
		self.window.show()

	def destroy(self):
		self.window.destroy()
	
	def shade_compile(self):
		self.compile_button.set_sensitive(have_source_for(self.policy, self.interface))
	
	def update_list(self):
		ranked_items = self.policy.solver.details.get(self.interface, None)
		if ranked_items is None:
			# The Solver didn't get this far, but we should still display them!
			ranked_items = [(impl, _("(solve aborted before here)"))
					for impl in self.interface.implementations.values()]
		# Always sort by version
		ranked_items.sort()
		self.use_list.set_items(ranked_items)