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:
parent
8da9a01db5
commit
8e0c79261b
@ -288,6 +288,7 @@ class ApplicationLauncher( easyButton ):
|
|||||||
self.appCategories = desktopItem.getCategories()
|
self.appCategories = desktopItem.getCategories()
|
||||||
self.appGnomeDocPath = desktopItem.get( "X-MATE-DocPath" ) or ""
|
self.appGnomeDocPath = desktopItem.get( "X-MATE-DocPath" ) or ""
|
||||||
self.useTerminal = desktopItem.getTerminal()
|
self.useTerminal = desktopItem.getTerminal()
|
||||||
|
self.appPath = desktopItem.getPath()
|
||||||
|
|
||||||
if not self.appGnomeDocPath:
|
if not self.appGnomeDocPath:
|
||||||
self.appKdeDocPath = desktopItem.getDocPath() or ""
|
self.appKdeDocPath = desktopItem.getDocPath() or ""
|
||||||
@ -369,9 +370,9 @@ class ApplicationLauncher( easyButton ):
|
|||||||
if self.appExec:
|
if self.appExec:
|
||||||
if self.useTerminal:
|
if self.useTerminal:
|
||||||
cmd = "x-terminal-emulator -e \"" + self.appExec + "\""
|
cmd = "x-terminal-emulator -e \"" + self.appExec + "\""
|
||||||
Execute(cmd)
|
Execute(cmd, self.appPath)
|
||||||
else:
|
else:
|
||||||
Execute(self.appExec)
|
Execute(self.appExec, self.appPath)
|
||||||
|
|
||||||
def uninstall (self, *args ):
|
def uninstall (self, *args ):
|
||||||
Execute("gksu /usr/lib/linuxmint/mintMenu/mintRemove.py " + self.desktopFile)
|
Execute("gksu /usr/lib/linuxmint/mintMenu/mintRemove.py " + self.desktopFile)
|
||||||
|
@ -14,16 +14,25 @@ def RemoveArgs(Execline):
|
|||||||
return NewExecline
|
return NewExecline
|
||||||
|
|
||||||
# Actually execute the command
|
# 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 isinstance( cmd, str ):
|
||||||
if (cmd.find("/home/") >= 0) or (cmd.find("su-to-root") >= 0) or (cmd.find("\"") >= 0):
|
if (cmd.find("/home/") >= 0) or (cmd.find("su-to-root") >= 0) or (cmd.find("\"") >= 0):
|
||||||
print "running manually..."
|
print "running manually..."
|
||||||
|
os.chdir(cwd)
|
||||||
os.system(cmd + " &")
|
os.system(cmd + " &")
|
||||||
return True
|
return True
|
||||||
cmd = cmd.split()
|
cmd = cmd.split()
|
||||||
cmd = RemoveArgs(cmd)
|
cmd = RemoveArgs(cmd)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
os.chdir( os.path.expanduser( "~" ) )
|
os.chdir( cwd )
|
||||||
subprocess.Popen( cmd )
|
subprocess.Popen( cmd )
|
||||||
return True
|
return True
|
||||||
except Exception, detail:
|
except Exception, detail:
|
||||||
|
Loading…
Reference in New Issue
Block a user