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();
|
refreshPixmapView();
|
||||||
|
|
||||||
const QString mimeType = m_item.mimetype();
|
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/"));
|
m_isVideo = !isAnimatedImage && mimeType.startsWith(QLatin1String("video/"));
|
||||||
bool usePhonon = m_isVideo || mimeType.startsWith(QLatin1String("audio/"));
|
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);
|
const QList<QByteArray> imageFormats = QImageReader::imageFormatsForMimeType(mimeType.toUtf8());
|
||||||
return !imageFormat.isEmpty() && QMovie::supportedFormats().contains(imageFormat);
|
return std::any_of(imageFormats.begin(), imageFormats.end(),
|
||||||
|
[](const QByteArray &format){ return QMovie::supportedFormats().contains(format); });
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,9 +80,9 @@ public:
|
||||||
void stopAnimatedImage();
|
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:
|
protected:
|
||||||
void paintEvent(QPaintEvent* event) override;
|
void paintEvent(QPaintEvent* event) override;
|
||||||
|
|
Loading…
Reference in a new issue