From c20db0e025ba75d4a86c09fef067b2fa65a3c75a Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sat, 14 Aug 2010 16:06:41 +0000 Subject: [PATCH] dynamically check for the availability of the bzip2 filter svn path=/trunk/KDE/kdegraphics/okular/; revision=1163613 --- part.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/part.cpp b/part.cpp index 56f382077..d3ddb1e7f 100644 --- a/part.cpp +++ b/part.cpp @@ -168,18 +168,19 @@ static QString compressedMimeFor( const QString& mime_to_check ) std::auto_ptr< KFilterBase > f; compressedMimeMap[ QString::fromLatin1( "application/x-gzip" ) ] = QString::fromLatin1( "application/x-gzip" ); - compressedMimeMap[ QString::fromLatin1( "application/x-bzip" ) ] = - QString::fromLatin1( "application/x-bzip" ); - compressedMimeMap[ QString::fromLatin1( "application/x-bzpdf" ) ] = - QString::fromLatin1( "application/x-bzip" ); - compressedMimeMap[ QString::fromLatin1( "application/x-bzpostscript" ) ] = - QString::fromLatin1( "application/x-bzip" ); - compressedMimeMap[ QString::fromLatin1( "application/x-bzdvi" ) ] = - QString::fromLatin1( "application/x-bzip" ); compressedMimeMap[ QString::fromLatin1( "image/x-gzeps" ) ] = QString::fromLatin1( "application/x-gzip" ); - compressedMimeMap[ QString::fromLatin1( "image/x-bzeps" ) ] = - QString::fromLatin1( "application/x-bzip" ); + // check we can read bzip2-compressed files + f.reset( KFilterBase::findFilterByMimeType( QString::fromLatin1( "application/x-bzip" ) ) ); + if ( f.get() ) + { + const QString app_bzip( QString::fromLatin1( "application/x-bzip" ) ); + compressedMimeMap[ app_bzip ] = app_bzip; + compressedMimeMap[ QString::fromLatin1( "application/x-bzpdf" ) ] = app_bzip; + compressedMimeMap[ QString::fromLatin1( "application/x-bzpostscript" ) ] = app_bzip; + compressedMimeMap[ QString::fromLatin1( "application/x-bzdvi" ) ] = app_bzip; + compressedMimeMap[ QString::fromLatin1( "image/x-bzeps" ) ] = app_bzip; + } // check we can read XZ-compressed files f.reset( KFilterBase::findFilterByMimeType( QString::fromLatin1( "application/x-xz" ) ) ); if ( f.get() )