Added new getUserItemPath function
Renamed "Edit" to "Prop" throughout to indicate Properties of the menu item Added code in to copy the .desktop file in the /usr directory structure to the user's local directory before editing properties Updated menuPopup function to include the new functionality as well
This commit is contained in:
		
							parent
							
								
									5f419d81f7
								
							
						
					
					
						commit
						18a491a38c
					
				| @ -73,6 +73,20 @@ gettext.install("mintmenu", "/usr/share/linuxmint/locale") | ||||
| # | ||||
| #xdg.Menu.parse = xdgParsePatched | ||||
| 
 | ||||
| # Helper function for retrieving the user's location for storing new or modified menu items | ||||
| def getUserItemPath(): | ||||
| 	item_dir = None | ||||
| 
 | ||||
| 	if os.environ.has_key('XDG_DATA_HOME'): | ||||
| 		item_dir = os.path.join(os.environ['XDG_DATA_HOME'], 'applications') | ||||
| 	else: | ||||
| 		item_dir = os.path.join(os.environ['HOME'], '.local', 'share', 'applications') | ||||
| 
 | ||||
| 	if not os.path.isdir(item_dir): | ||||
| 		os.makedirs(item_dir) | ||||
| 
 | ||||
| 	return item_dir | ||||
| 
 | ||||
| class Menu: | ||||
| 	def __init__( self, MenuToLookup ): | ||||
| 		self.tree = gmenu.lookup_tree( MenuToLookup ) | ||||
| @ -633,7 +647,7 @@ class pluginclass( object ): | ||||
| 				mTree = gtk.glade.XML( self.gladefile, "favoritesMenu" ) | ||||
| 				#i18n | ||||
| 				launchMenuItem = gtk.MenuItem(_("Launch")) | ||||
| 				editMenuItem = gtk.MenuItem(_("Edit")) | ||||
| 				propsMenuItem = gtk.MenuItem(_("Properties")) | ||||
| 				removeFromFavMenuItem = gtk.MenuItem(_("Remove from favorites")) | ||||
| 				startupMenuItem = gtk.CheckMenuItem(_("Launch when I log in")) | ||||
| 				separator = gtk.SeparatorMenuItem() | ||||
| @ -642,13 +656,13 @@ class pluginclass( object ): | ||||
| 				 | ||||
| 
 | ||||
| 				launchMenuItem.connect( "activate", self.onLaunchApp, widget) | ||||
| 				editMenuItem.connect( "activate", self.onEditApp, widget) | ||||
| 				propsMenuItem.connect( "activate", self.onPropsApp, widget) | ||||
| 				removeFromFavMenuItem.connect( "activate", self.onFavoritesRemove, widget ) | ||||
| 				insertSpaceMenuItem.connect( "activate", self.onFavoritesInsertSpace, widget, insertBefore ) | ||||
| 				insertSeparatorMenuItem.connect( "activate", self.onFavoritesInsertSeparator, widget, insertBefore ) | ||||
| 
 | ||||
| 				mTree.get_widget("favoritesMenu").append(launchMenuItem) | ||||
| 				mTree.get_widget("favoritesMenu").append(editMenuItem) | ||||
| 				mTree.get_widget("favoritesMenu").append(propsMenuItem) | ||||
| 				mTree.get_widget("favoritesMenu").append(removeFromFavMenuItem) | ||||
| 				mTree.get_widget("favoritesMenu").append(startupMenuItem) | ||||
| 				mTree.get_widget("favoritesMenu").append(separator)				 | ||||
| @ -687,11 +701,13 @@ class pluginclass( object ): | ||||
| 
 | ||||
| 			#i18n | ||||
| 			launchMenuItem = gtk.MenuItem(_("Launch")) | ||||
| 			propsMenuItem = gtk.MenuItem(_("Properties")) | ||||
| 			favoriteMenuItem = gtk.CheckMenuItem(_("Show in my favorites")) | ||||
| 			startupMenuItem = gtk.CheckMenuItem(_("Launch when I log in")) | ||||
| 			separator = gtk.SeparatorMenuItem()			 | ||||
| 			uninstallMenuItem = gtk.MenuItem(_("Uninstall")) | ||||
| 			mTree.get_widget("applicationsMenu").append(launchMenuItem) | ||||
| 			mTree.get_widget("applicationsMenu").append(propsMenuItem) | ||||
| 			mTree.get_widget("applicationsMenu").append(favoriteMenuItem) | ||||
| 			mTree.get_widget("applicationsMenu").append(startupMenuItem) | ||||
| 			mTree.get_widget("applicationsMenu").append(separator) | ||||
| @ -699,6 +715,7 @@ class pluginclass( object ): | ||||
| 			mTree.get_widget("applicationsMenu").show_all() | ||||
| 
 | ||||
| 			launchMenuItem.connect( "activate", self.onLaunchApp, widget ) | ||||
| 			propsMenuItem.connect( "activate", self.onPropsApp, widget) | ||||
| 			uninstallMenuItem.connect ( "activate", self.onUninstallApp, widget ) | ||||
|   | ||||
| 			if self.isLocationInFavorites( widget.desktopFile ): | ||||
| @ -721,11 +738,19 @@ class pluginclass( object ): | ||||
| 		widget.execute() | ||||
| 		self.mintMenuWin.hide() | ||||
| 
 | ||||
| 	def onEditApp( self, menu, widget ): | ||||
| 		# print u"Location of favorite is: " + widget.desktopFile | ||||
| 		os.system('gnome-desktop-item-edit ' + widget.desktopFile)   | ||||
| 	def onPropsApp( self, menu, widget ): | ||||
| 
 | ||||
| 		# Building a path to the .desktop file in the user's home directory | ||||
| 		file_path = os.path.join(getUserItemPath(), os.path.basename(widget.desktopFile)) | ||||
| 
 | ||||
| 		if not os.path.isfile(file_path): | ||||
| 			data = open(widget.desktopFile).read() | ||||
| 			open(file_path, 'w').write(data) | ||||
| 
 | ||||
| 		os.system('gnome-desktop-item-edit ' + file_path)  | ||||
| 		self.mintMenuWin.hide() | ||||
| 
 | ||||
| 
 | ||||
| 	def onUninstallApp( self, menu, widget ): | ||||
| 		widget.uninstall() | ||||
| 		self.mintMenuWin.hide() | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user