For opening URLs, try to use the kfmclient from the session KDE version.

svn path=/trunk/KDE/kdebase/apps/; revision=799859
This commit is contained in:
Luboš Luňák 2008-04-22 15:33:40 +00:00
parent facb91e957
commit c14b4dc18f

View file

@ -109,6 +109,32 @@ extern "C" KDE_EXPORT int kdemain( int argc, char **argv )
return 0;
}
// Use kfmclient from the session KDE version
if(( args->arg( 0 ) == "openURL" || args->arg( 0 ) == "newTab" )
&& getenv( "KDE_FULL_SESSION" ) != NULL )
{
int version = KDE_VERSION_MAJOR;
if( getenv( "KDE_SESSION_VERSION" ) == NULL ) // this is KDE3
version = 3;
else
version = atoi( getenv( "KDE_SESSION_VERSION" ));
if( version != 0 && version != KDE_VERSION_MAJOR )
{
kDebug( 1202 ) << "Forwarding to kfmclient from KDE version " << version;
char wrapper[ 10 ];
sprintf( wrapper, "kde%d", version );
char** newargv = new char*[ argc + 2 ];
newargv[ 0 ] = wrapper;
for( int i = 0;
i < argc;
++i )
newargv[ i + 1 ] = argv[ i ];
newargv[ argc + 1 ] = NULL;
execvp( wrapper, newargv );
// just continue if failed
}
}
// ClientApp internally uses KConfig and hence needs a valid KComponentData
needInstance();
return ClientApp::doIt() ? 0 /*no error*/ : 1 /*error*/;