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
|
#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:
|
class Menu:
|
||||||
def __init__( self, MenuToLookup ):
|
def __init__( self, MenuToLookup ):
|
||||||
self.tree = gmenu.lookup_tree( MenuToLookup )
|
self.tree = gmenu.lookup_tree( MenuToLookup )
|
||||||
@ -633,7 +647,7 @@ class pluginclass( object ):
|
|||||||
mTree = gtk.glade.XML( self.gladefile, "favoritesMenu" )
|
mTree = gtk.glade.XML( self.gladefile, "favoritesMenu" )
|
||||||
#i18n
|
#i18n
|
||||||
launchMenuItem = gtk.MenuItem(_("Launch"))
|
launchMenuItem = gtk.MenuItem(_("Launch"))
|
||||||
editMenuItem = gtk.MenuItem(_("Edit"))
|
propsMenuItem = gtk.MenuItem(_("Properties"))
|
||||||
removeFromFavMenuItem = gtk.MenuItem(_("Remove from favorites"))
|
removeFromFavMenuItem = gtk.MenuItem(_("Remove from favorites"))
|
||||||
startupMenuItem = gtk.CheckMenuItem(_("Launch when I log in"))
|
startupMenuItem = gtk.CheckMenuItem(_("Launch when I log in"))
|
||||||
separator = gtk.SeparatorMenuItem()
|
separator = gtk.SeparatorMenuItem()
|
||||||
@ -642,13 +656,13 @@ class pluginclass( object ):
|
|||||||
|
|
||||||
|
|
||||||
launchMenuItem.connect( "activate", self.onLaunchApp, widget)
|
launchMenuItem.connect( "activate", self.onLaunchApp, widget)
|
||||||
editMenuItem.connect( "activate", self.onEditApp, widget)
|
propsMenuItem.connect( "activate", self.onPropsApp, widget)
|
||||||
removeFromFavMenuItem.connect( "activate", self.onFavoritesRemove, widget )
|
removeFromFavMenuItem.connect( "activate", self.onFavoritesRemove, widget )
|
||||||
insertSpaceMenuItem.connect( "activate", self.onFavoritesInsertSpace, widget, insertBefore )
|
insertSpaceMenuItem.connect( "activate", self.onFavoritesInsertSpace, widget, insertBefore )
|
||||||
insertSeparatorMenuItem.connect( "activate", self.onFavoritesInsertSeparator, widget, insertBefore )
|
insertSeparatorMenuItem.connect( "activate", self.onFavoritesInsertSeparator, widget, insertBefore )
|
||||||
|
|
||||||
mTree.get_widget("favoritesMenu").append(launchMenuItem)
|
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(removeFromFavMenuItem)
|
||||||
mTree.get_widget("favoritesMenu").append(startupMenuItem)
|
mTree.get_widget("favoritesMenu").append(startupMenuItem)
|
||||||
mTree.get_widget("favoritesMenu").append(separator)
|
mTree.get_widget("favoritesMenu").append(separator)
|
||||||
@ -687,11 +701,13 @@ class pluginclass( object ):
|
|||||||
|
|
||||||
#i18n
|
#i18n
|
||||||
launchMenuItem = gtk.MenuItem(_("Launch"))
|
launchMenuItem = gtk.MenuItem(_("Launch"))
|
||||||
|
propsMenuItem = gtk.MenuItem(_("Properties"))
|
||||||
favoriteMenuItem = gtk.CheckMenuItem(_("Show in my favorites"))
|
favoriteMenuItem = gtk.CheckMenuItem(_("Show in my favorites"))
|
||||||
startupMenuItem = gtk.CheckMenuItem(_("Launch when I log in"))
|
startupMenuItem = gtk.CheckMenuItem(_("Launch when I log in"))
|
||||||
separator = gtk.SeparatorMenuItem()
|
separator = gtk.SeparatorMenuItem()
|
||||||
uninstallMenuItem = gtk.MenuItem(_("Uninstall"))
|
uninstallMenuItem = gtk.MenuItem(_("Uninstall"))
|
||||||
mTree.get_widget("applicationsMenu").append(launchMenuItem)
|
mTree.get_widget("applicationsMenu").append(launchMenuItem)
|
||||||
|
mTree.get_widget("applicationsMenu").append(propsMenuItem)
|
||||||
mTree.get_widget("applicationsMenu").append(favoriteMenuItem)
|
mTree.get_widget("applicationsMenu").append(favoriteMenuItem)
|
||||||
mTree.get_widget("applicationsMenu").append(startupMenuItem)
|
mTree.get_widget("applicationsMenu").append(startupMenuItem)
|
||||||
mTree.get_widget("applicationsMenu").append(separator)
|
mTree.get_widget("applicationsMenu").append(separator)
|
||||||
@ -699,6 +715,7 @@ class pluginclass( object ):
|
|||||||
mTree.get_widget("applicationsMenu").show_all()
|
mTree.get_widget("applicationsMenu").show_all()
|
||||||
|
|
||||||
launchMenuItem.connect( "activate", self.onLaunchApp, widget )
|
launchMenuItem.connect( "activate", self.onLaunchApp, widget )
|
||||||
|
propsMenuItem.connect( "activate", self.onPropsApp, widget)
|
||||||
uninstallMenuItem.connect ( "activate", self.onUninstallApp, widget )
|
uninstallMenuItem.connect ( "activate", self.onUninstallApp, widget )
|
||||||
|
|
||||||
if self.isLocationInFavorites( widget.desktopFile ):
|
if self.isLocationInFavorites( widget.desktopFile ):
|
||||||
@ -721,11 +738,19 @@ class pluginclass( object ):
|
|||||||
widget.execute()
|
widget.execute()
|
||||||
self.mintMenuWin.hide()
|
self.mintMenuWin.hide()
|
||||||
|
|
||||||
def onEditApp( self, menu, widget ):
|
def onPropsApp( self, menu, widget ):
|
||||||
# print u"Location of favorite is: " + widget.desktopFile
|
|
||||||
os.system('gnome-desktop-item-edit ' + widget.desktopFile)
|
# 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()
|
self.mintMenuWin.hide()
|
||||||
|
|
||||||
|
|
||||||
def onUninstallApp( self, menu, widget ):
|
def onUninstallApp( self, menu, widget ):
|
||||||
widget.uninstall()
|
widget.uninstall()
|
||||||
self.mintMenuWin.hide()
|
self.mintMenuWin.hide()
|
||||||
|
Loading…
Reference in New Issue
Block a user