Adds support for Desktop Enty's Path

Fixes https://bugs.launchpad.net/linuxmint/+bug/1120639
Changes:
- Added appPath to ApplicationLauncher in easybutton.py
- Added new commandCwd argument to Exec in execute.py (defaults to None)
- ApplicationLauncher.execute() now passes CWD to execute.Exec
This commit is contained in:
xwizard 2013-02-10 17:31:00 +01:00
parent 8da9a01db5
commit 8e0c79261b
2 changed files with 14 additions and 4 deletions

View File

@ -288,6 +288,7 @@ class ApplicationLauncher( easyButton ):
self.appCategories = desktopItem.getCategories()
self.appGnomeDocPath = desktopItem.get( "X-MATE-DocPath" ) or ""
self.useTerminal = desktopItem.getTerminal()
self.appPath = desktopItem.getPath()
if not self.appGnomeDocPath:
self.appKdeDocPath = desktopItem.getDocPath() or ""
@ -369,9 +370,9 @@ class ApplicationLauncher( easyButton ):
if self.appExec:
if self.useTerminal:
cmd = "x-terminal-emulator -e \"" + self.appExec + "\""
Execute(cmd)
Execute(cmd, self.appPath)
else:
Execute(self.appExec)
Execute(self.appExec, self.appPath)
def uninstall (self, *args ):
Execute("gksu /usr/lib/linuxmint/mintMenu/mintRemove.py " + self.desktopFile)

View File

@ -14,16 +14,25 @@ def RemoveArgs(Execline):
return NewExecline
# Actually execute the command
def Execute( cmd ):
def Execute( cmd , commandCwd=None):
if not commandCwd:
cwd = os.path.expanduser( "~" );
else:
tmpCwd = os.path.expanduser( commandCwd );
if (os.path.exists(tmpCwd)):
cwd = tmpCwd
if isinstance( cmd, str ):
if (cmd.find("/home/") >= 0) or (cmd.find("su-to-root") >= 0) or (cmd.find("\"") >= 0):
print "running manually..."
os.chdir(cwd)
os.system(cmd + " &")
return True
cmd = cmd.split()
cmd = RemoveArgs(cmd)
try:
os.chdir( os.path.expanduser( "~" ) )
os.chdir( cwd )
subprocess.Popen( cmd )
return True
except Exception, detail: