From af05a86e04bf88efbfe780981ca4801cf3d5fdcb Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 27 Jun 2008 17:42:42 +0000 Subject: [PATCH] In case an image is not found, try uppercasing its extension and looking for it again. (yay for case-insensitive contexts!) svn path=/trunk/KDE/kdegraphics/okular/; revision=825261 --- generators/xps/generator_xps.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/generators/xps/generator_xps.cpp b/generators/xps/generator_xps.cpp index 67ff64006..0c559e7fd 100644 --- a/generators/xps/generator_xps.cpp +++ b/generators/xps/generator_xps.cpp @@ -1104,12 +1104,23 @@ QImage XpsPage::loadImageFromFile( const QString &fileName ) return QImage(); } - // TODO: consider case-insensitiveness (eg image.png vs existing image.PNG) - const QString absoluteFileName = absolutePath( entryPath( m_fileName ), fileName ); - const KZipFileEntry* imageFile = static_cast(m_file->xpsArchive()->directory()->entry( absoluteFileName )); + QString absoluteFileName = absolutePath( entryPath( m_fileName ), fileName ); + const KZipFileEntry* imageFile = static_cast< const KZipFileEntry * >( m_file->xpsArchive()->directory()->entry( absoluteFileName ) ); if ( !imageFile ) { - // image not found - return QImage(); + // image not found, try uppercasing the extension + const int dotPos = absoluteFileName.lastIndexOf( QLatin1Char( '.' ) ); + const QChar lastChar = absoluteFileName.at( absoluteFileName.count() - 1 ); + if ( dotPos != -1 ) { + for ( int i = dotPos + 1; i < absoluteFileName.count(); ++i ) { + absoluteFileName[i] = absoluteFileName[i].toUpper(); + } + + imageFile = static_cast< const KZipFileEntry * >( m_file->xpsArchive()->directory()->entry( absoluteFileName ) ); + } + if ( !imageFile ) { + // image not found + return QImage(); + } } /* WORKAROUND: