From 02f6eeef005f2ebd59edc7e18a12099c2e179e87 Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Mon, 5 Jan 2015 15:22:35 -0500 Subject: Put another couple quick fixes in: 1) Do not adjust the width of new windows (even if they go off the right side of the screen, they still have some part of them on the main screen) 2) Add better crash handling to lumina-open (put the standard error text or standard output text of the application in the "details" for the message box). --- lumina-desktop/LSession.cpp | 4 ++-- lumina-open/main.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lumina-desktop/LSession.cpp b/lumina-desktop/LSession.cpp index 034aad6e..2cc1aea4 100644 --- a/lumina-desktop/LSession.cpp +++ b/lumina-desktop/LSession.cpp @@ -304,8 +304,8 @@ void LSession::adjustWindowGeom(WId win, bool maximize){ //Adjust origin point for left/top margins if(geom.y() < desk.y()){ geom.moveTop(desk.y()); } //move down to the edge (top panel) if(geom.x() < desk.x()){ geom.moveLeft(desk.x()); } //move right to the edge (left panel) - //Adjust size for right/bottom margins (within reason, since window titles are on top normally) - if(geom.right() > desk.right() && (geom.width() > 100)){ geom.setRight(desk.right()); } + //Adjust size for bottom margins (within reason, since window titles are on top normally) + // if(geom.right() > desk.right() && (geom.width() > 100)){ geom.setRight(desk.right()); } if(geom.bottom() > desk.bottom() && geom.height() > 100){ geom.setBottom(desk.bottom()); } //Now move/resize the window if(DEBUG){ qDebug() << "New Geom:" << geom.x() << geom.y() << geom.width() << geom.height(); } diff --git a/lumina-open/main.cpp b/lumina-open/main.cpp index 7ce59e63..5bc37dd4 100644 --- a/lumina-open/main.cpp +++ b/lumina-open/main.cpp @@ -197,6 +197,7 @@ void getCMD(int argc, char ** argv, QString& binary, QString& args, QString& pat } else if(isUrl && inFile.startsWith("mailto:")){ extension = "email"; } else if(isUrl){ extension = "webbrowser"; } + //qDebug() << "Input:" << inFile << isFile << isUrl << extension; //if not an application - find the right application to open the file QString cmd; bool useInputFile = false; @@ -318,11 +319,15 @@ int main(int argc, char **argv){ //if(retcode!=0 ){ if(p->exitStatus() == QProcess::CrashExit){ qDebug() << "[lumina-open] Application Error:" << retcode; + QString err = QString(p->readAllStandardError()); + if(err.isEmpty()){ err = QString(p->readAllStandardOutput()); } //Setup the application QApplication App(argc, argv); LuminaThemeEngine theme(&App); LUtils::LoadTranslation(&App,"lumina-open"); - QMessageBox::critical(0,QObject::tr("Application Error"), QObject::tr("The following application experienced an error and needed to close:")+"\n\n"+cmd); + QMessageBox dlg(QMessageBox::Critical, QObject::tr("Application Error"), QObject::tr("The following application experienced an error and needed to close:")+"\n\n"+cmd ); + if(!err.isEmpty()){ dlg.setDetailedText(err); } + dlg.exec(); } return retcode; } -- cgit