aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Moore <moorekou@gmail.com>2016-08-17 15:01:45 -0400
committerKen Moore <moorekou@gmail.com>2016-08-17 15:01:45 -0400
commitca2af75002ff5e88aebe8026e915e71d6a17c498 (patch)
tree0f88d0ab67bbac1760e8bc3fd79935ca115507be
parentMerge pull request #247 from Nanolx/master (diff)
downloadlumina-ca2af75002ff5e88aebe8026e915e71d6a17c498.tar.gz
lumina-ca2af75002ff5e88aebe8026e915e71d6a17c498.tar.bz2
lumina-ca2af75002ff5e88aebe8026e915e71d6a17c498.zip
A couple quick fixes:
1) Ensure that lumina-open is used to open the default terminal app (additional binary verification/checking) 2) Add some additional verification of the binary to run within lumina-open, and warn the user about a missing binary as needed.
-rw-r--r--src-qt5/core/lumina-desktop/LDesktop.cpp5
-rw-r--r--src-qt5/core/lumina-open/main.cpp6
2 files changed, 8 insertions, 3 deletions
diff --git a/src-qt5/core/lumina-desktop/LDesktop.cpp b/src-qt5/core/lumina-desktop/LDesktop.cpp
index 0dd28f11..cf1fe25f 100644
--- a/src-qt5/core/lumina-desktop/LDesktop.cpp
+++ b/src-qt5/core/lumina-desktop/LDesktop.cpp
@@ -102,9 +102,8 @@ void LDesktop::SystemLogout(){
void LDesktop::SystemTerminal(){
LSession::handle()->sessionSettings()->sync(); //make sure it is up to date
QString term = LXDG::findDefaultAppForMime("application/terminal"); //LSession::handle()->sessionSettings()->value("default-terminal","xterm").toString();
- if(term.endsWith(".desktop")){ term = "lumina-open \""+term+"\""; }
- else if(term.isEmpty() || !LUtils::isValidBinary(term)){ term = "xterm"; }
- LSession::LaunchApplication(term);
+ if(term.isEmpty() || !LUtils::isValidBinary(term)){ term = "xterm"; }
+ LSession::LaunchApplication("lumina-open \""+term+"\"");
}
void LDesktop::SystemFileManager(){
diff --git a/src-qt5/core/lumina-open/main.cpp b/src-qt5/core/lumina-open/main.cpp
index 62a14f4c..b5f0d97f 100644
--- a/src-qt5/core/lumina-open/main.cpp
+++ b/src-qt5/core/lumina-open/main.cpp
@@ -347,6 +347,12 @@ int main(int argc, char **argv){
//qDebug() << "Run CMD:" << cmd << args;
//Now run the command (move to execvp() later?)
if(cmd.isEmpty()){ return 0; } //no command to run (handled internally)
+ QString bin = cmd.section(" ",0,0);
+ if( !LUtils::isValidBinary(bin) ){
+ //invalid binary for some reason - open a dialog to warn the user instead
+ QMessageBox::warning(0, QObject::tr("Binary Missing"), QString(QObject::tr("Could not find \"%1\". Please ensure it is installed first.")).arg(bin)+"\n\n"+cmd);
+ return 1;
+ }
qDebug() << "[lumina-open] Running Cmd:" << cmd;
int retcode = 0;
//Provide an override file for never watching running processes.
bgstack15