CVS commit by faure: Support for X-KDE-HasTempFileOption in the .desktop file, telling KRun to pass --tempfile to the application. For #91410 and #62555. M +3 -0 application.desktop 1.152 M +10 -2 kio/krun.cpp 1.264 --- kdelibs/kio/application.desktop #1.151:1.152 @@ -106,2 +106,5 @@ [PropertyDef::X-KDE-ParentApp] Type=QString + +[PropertyDef::X-KDE-HasTempFileOption] +Type=bool --- kdelibs/kio/kio/krun.cpp #1.263:1.264 @@ -346,4 +346,5 @@ QStringList KRun::processDesktopExec(con QString exec = _service.exec(); QStringList result; + bool appHasTempFileOption; KRunMX1 mx1( _service ); @@ -373,5 +374,6 @@ QStringList KRun::processDesktopExec(con // Check if we need "tempexec" (kioexec in fact) - if( tempFiles ) { + appHasTempFileOption = tempFiles && _service.property("X-KDE-HasTempFileOption").toBool(); + if( tempFiles && !appHasTempFileOption ) { result << "kioexec" << "--tempfiles" << exec; result += _urls.toStringList(); @@ -386,5 +388,8 @@ QStringList KRun::processDesktopExec(con if ( !(*it).isLocalFile() && !KProtocolInfo::isHelperProtocol(*it) ) { // We need to run the app through kioexec - result << "kioexec" << exec; + result << "kioexec"; + if ( tempFiles ) + result << "--tempfiles"; + result << exec; result += _urls.toStringList(); if (has_shell) @@ -394,4 +399,7 @@ QStringList KRun::processDesktopExec(con } + if ( appHasTempFileOption ) + exec += " --tempfile"; + // Did the user forget to append something like '%f'? // If so, then assume that '%f' is the right choice => the application