This allows to extend the functionality to non-local files and avoids a warning
on such files (`QFSFileEngine::open: No file name specified`)
refreshPixmapView();
const QString mimeType = m_item.mimetype();
- const bool isAnimatedImage = m_preview->isAnimatedImage(itemUrl.toLocalFile());
+ const bool isAnimatedImage = m_preview->isAnimatedMimeType(mimeType);
m_isVideo = !isAnimatedImage && mimeType.startsWith(QLatin1String("video/"));
bool usePhonon = m_isVideo || mimeType.startsWith(QLatin1String("audio/"));
}
}
-bool PixmapViewer::isAnimatedImage(const QString &fileName)
+bool PixmapViewer::isAnimatedMimeType(const QString &mimeType)
{
- const QByteArray imageFormat = QImageReader::imageFormat(fileName);
- return !imageFormat.isEmpty() && QMovie::supportedFormats().contains(imageFormat);
+ const QList<QByteArray> imageFormats = QImageReader::imageFormatsForMimeType(mimeType.toUtf8());
+ return std::any_of(imageFormats.begin(), imageFormats.end(),
+ [](const QByteArray &format){ return QMovie::supportedFormats().contains(format); });
}
void stopAnimatedImage();
/**
- * Checks if \a fileName contains an animated image supported by QMovie.
+ * Checks if \a mimeType has a format supported by QMovie.
*/
- static bool isAnimatedImage(const QString &fileName);
+ static bool isAnimatedMimeType(const QString &mimeType);
protected:
void paintEvent(QPaintEvent* event) override;