ImageViewer: Add up-to-date mimetypes (and add webp mimetype)

The list of mimetypes was missing new types like tga, dds and webp.
Just ask QImageReader::supportedMimeTypes() for the supported types,
which is also easier to maintain.

Task-number: QTBUG-45061
Change-Id: I80573da868088915b8d746c56374786e5e36903c
Reviewed-by: hjk <hjk@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
Alessandro Portale
2015-03-18 16:04:10 +01:00
committed by hjk
parent ec9f3ee79e
commit 4514dbfd8c
4 changed files with 20 additions and 22 deletions

View File

@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="image/webp">
<comment>WebP Image file</comment>
<glob pattern="*.webp"/>
</mime-type>
</mime-info>

View File

@@ -8,5 +8,6 @@
<file>images/background.png</file> <file>images/background.png</file>
<file>images/pause-small.png</file> <file>images/pause-small.png</file>
<file>images/play-small.png</file> <file>images/play-small.png</file>
<file>ImageViewer.mimetypes.xml</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@@ -47,29 +47,14 @@ ImageViewerFactory::ImageViewerFactory(QObject *parent) :
setId(Constants::IMAGEVIEWER_ID); setId(Constants::IMAGEVIEWER_ID);
setDisplayName(qApp->translate("OpenWith::Editors", Constants::IMAGEVIEWER_DISPLAY_NAME)); setDisplayName(qApp->translate("OpenWith::Editors", Constants::IMAGEVIEWER_DISPLAY_NAME));
QMap<QByteArray, const char *> possibleMimeTypes; const QList<QByteArray> supportedMimeTypes = QImageReader::supportedMimeTypes();
possibleMimeTypes.insert("bmp", "image/bmp"); foreach (const QByteArray &format, supportedMimeTypes)
possibleMimeTypes.insert("gif", "image/gif"); addMimeType(format.constData());
possibleMimeTypes.insert("ico", "image/x-icon");
possibleMimeTypes.insert("jpeg","image/jpeg");
possibleMimeTypes.insert("jpg", "image/jpeg");
possibleMimeTypes.insert("mng", "video/x-mng");
possibleMimeTypes.insert("pbm", "image/x-portable-bitmap");
possibleMimeTypes.insert("pgm", "image/x-portable-graymap");
possibleMimeTypes.insert("png", "image/png");
possibleMimeTypes.insert("ppm", "image/x-portable-pixmap");
possibleMimeTypes.insert("svg", "image/svg+xml");
possibleMimeTypes.insert("tif", "image/tiff");
possibleMimeTypes.insert("tiff","image/tiff");
possibleMimeTypes.insert("xbm", "image/xbm");
possibleMimeTypes.insert("xpm", "image/xpm");
QList<QByteArray> supportedFormats = QImageReader::supportedImageFormats(); #if (QT_VERSION < QT_VERSION_CHECK(5, 5, 0)) && !QT_NO_SVGRENDERER
foreach (const QByteArray &format, supportedFormats) { // Workaround for https://codereview.qt-project.org/108693
const char *value = possibleMimeTypes.value(format); addMimeType("image/svg+xml");
if (value) #endif
addMimeType(value);
}
} }
Core::IEditor *ImageViewerFactory::createEditor() Core::IEditor *ImageViewerFactory::createEditor()

View File

@@ -38,6 +38,7 @@
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/id.h> #include <coreplugin/id.h>
#include <extensionsystem/pluginmanager.h> #include <extensionsystem/pluginmanager.h>
#include <utils/mimetypes/mimedatabase.h>
namespace ImageViewer { namespace ImageViewer {
namespace Internal { namespace Internal {
@@ -49,6 +50,8 @@ bool ImageViewerPlugin::initialize(const QStringList &arguments, QString *errorM
Q_UNUSED(arguments) Q_UNUSED(arguments)
Q_UNUSED(errorMessage) Q_UNUSED(errorMessage)
Utils::MimeDatabase::addMimeTypes(QLatin1String(":/imageviewer/ImageViewer.mimetypes.xml"));
m_factory = new ImageViewerFactory(this); m_factory = new ImageViewerFactory(this);
addAutoReleasedObject(m_factory); addAutoReleasedObject(m_factory);
return true; return true;