mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Detect animated format using mimeType instead of file path
This allows to extend the functionality to non-local files and avoids a warning on such files (`QFSFileEngine::open: No file name specified`)
This commit is contained in:
parent
f987a1c404
commit
f7a3318fa5
|
@ -236,7 +236,7 @@ void InformationPanelContent::refreshPreview()
|
|||
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/"));
|
||||
|
||||
|
|
|
@ -186,8 +186,9 @@ void PixmapViewer::stopAnimatedImage()
|
|||
}
|
||||
}
|
||||
|
||||
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); });
|
||||
}
|
||||
|
|
|
@ -80,9 +80,9 @@ public:
|
|||
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;
|
||||
|
|
Loading…
Reference in a new issue