예제 #1
0
	def show_popup_menu(self, details, bev):
		iface_uri = details['interface']
		iface_name = details['name']
		have_source = details['may-compile']

		from zeroinstall.gui import bugs

		iface = self.config.iface_cache.get_interface(iface_uri)

		global menu		# Fix GC problem in PyGObject
		menu = gtk.Menu()
		for label, cb in [(_('Show Feeds'), lambda: properties.edit(self.driver, iface, iface_name, self.compile)),
				  (_('Show Versions'), lambda: properties.edit(self.driver, iface, iface_name, self.compile, show_versions = True)),
				  (_('Report a Bug...'), lambda: bugs.report_bug(self.driver, iface))]:
			item = gtk.MenuItem()
			item.set_label(label)
			if cb:
				item.connect('activate', lambda item, cb=cb: cb())
			else:
				item.set_sensitive(False)
			item.show()
			menu.append(item)

		item = gtk.MenuItem()
		item.set_label(_('Compile'))
		item.show()
		menu.append(item)
		if have_source:
			compile_menu = gtk.Menu()
			item.set_submenu(compile_menu)

			item = gtk.MenuItem()
			item.set_label(_('Automatic'))
			item.connect('activate', lambda item: self.compile(iface, autocompile = True))
			item.show()
			compile_menu.append(item)

			item = gtk.MenuItem()
			item.set_label(_('Manual...'))
			item.connect('activate', lambda item: self.compile(iface, autocompile = False))
			item.show()
			compile_menu.append(item)
		else:
			item.set_sensitive(False)

		if gtk.pygtk_version >= (2, 90):
			menu.popup(None, None, None, None, bev.button, bev.time)
		else:
			menu.popup(None, None, None, bev.button, bev.time)
예제 #2
0
		def button_press(tree_view, bev):
			pos = tree_view.get_path_at_pos(int(bev.x), int(bev.y))
			if not pos:
				return False
			path, col, x, y = pos

			if (bev.button == 3 or (bev.button < 4 and col is menu_column)) \
			   and bev.type == gtk.gdk.BUTTON_PRESS:
				selection.select_path(path)
				details = self.model[path][InterfaceBrowser.DETAILS]
				self.show_popup_menu(details, bev)
				return True
			if bev.button != 1 or bev.type != gtk.gdk._2BUTTON_PRESS:
				return False
			details = self.model[path][InterfaceBrowser.DETAILS]
			iface_uri = details['interface']
			iface = self.config.iface_cache.get_interface(iface_uri)
			properties.edit(driver, iface, details['name'], self.compile, show_versions = True)