Beispiel #1
0
	def show_popup_for_path_(self, path, x, y, button, time):
		node_iter = self.get_model().get_iter(path)
		node = self.get_model().get_value(node_iter, 3)

		actions = node.actions()
		if len(actions) == 0:
			return

		menu = gtk.Menu()

		def activate_item(menuitem, func):
			func()

		for action in actions:
			if action is Node.SEPARATOR:
				menu.append(gtk.SeparatorMenuItem())
				continue

			(func, label, icon) = action

			item = gtk.ImageMenuItem()
			item.set_label(label)

			if icon is not None:
				item.set_image(gtk.image_new_from_gicon(icon, gtk.ICON_SIZE_MENU))
				item.set_always_show_image(True)

			item.connect('activate', activate_item, func)
			menu.append(item)

		menu.show_all()

		def pos_func(menu):
			return (int(x), int(y), True)
		menu.popup(None, None, pos_func, button, time)
Beispiel #2
0
	def __init__(self, folder):
		'''
		Constructor. GUI
		'''
		self.folder = folder
		
		gtk.Window.__init__(self)
		self.set_modal(True)
		self.set_default_size(500,200)
		self.set_title('Share folder through NFS')
		mainVBox = gtk.VBox(False, 10)
		mainHBox = gtk.HBox(False, 10)
		
		self.fileLabel = gtk.Label('file')
		infoVBox = gtk.VBox(False, 10)
		infoVBox.pack_start(gtk.Label('Share this folder through NFS'), False, False, 10)
		infoVBox.pack_start(self.fileLabel, True, True, 10)
		
		image = gtk.image_new_from_gicon(gio.ThemedIcon('folder-remote'),gtk.ICON_SIZE_DIALOG)
		mainHBox.pack_start(image, False, False, 30)
		mainHBox.pack_start(infoVBox, True, True, 10)
		
		self.shareCheckBtn = gtk.CheckButton('Share this folder')
		self.writeCheckBtn = gtk.CheckButton('Allow other users to create, update and delete files')
		mainVBox.set_border_width(10)
		self.okBtn = gtk.Button('', gtk.STOCK_OK)
		self.cancelBtn = gtk.Button('', gtk.STOCK_CANCEL)
		btnBox = gtk.HButtonBox()
		btnBox.add(self.okBtn)
		btnBox.add(self.cancelBtn)
		btnBox.set_layout(gtk.BUTTONBOX_END)
		btnBox.set_spacing(10)
		
		mainVBox.pack_start(mainHBox, True, True)
		mainVBox.pack_start(self.shareCheckBtn, False, False)
		mainVBox.pack_start(self.writeCheckBtn, False, False)
		mainVBox.pack_start(gtk.HSeparator(), False, False)
		mainVBox.pack_start(btnBox, False, False)		
		
		self.shareCheckBtn.connect('toggled', self.on_shareCheckBtn_toggled)
		self.writeCheckBtn.connect('toggled', self.on_writeCheckBtn_toggled)
		self.okBtn.connect('clicked', self.on_okBtn_clicked)
		self.cancelBtn.connect('clicked', self.on_cancelBtn_clicked)		
		self.connect('destroy', self.on_cancelBtn_clicked)
		
		self.add(mainVBox)
		
		self.es = ExportsSharing(self.folder)
		self.shareCheckBtn.set_active(self.es.isShared())
		self.writeCheckBtn.set_active(self.es.isWritable())
		self.fileLabel.set_label(self.folder)
		self.on_cb_toggled()