46 QImageIOPlugin::Capability cap,
47 QList<QByteArray> *result,
48 QList<QByteArray> *resultKeys =
nullptr)
50 QList<QPluginParsedMetaData> metaDataList = loader->metaData();
51 const int pluginCount = metaDataList.size();
52 for (
int i = 0; i < pluginCount; ++i) {
53 const QCborMap metaData = metaDataList.at(i).value(QtPluginMetaDataKeys::MetaData).toMap();
54 const QCborArray keys = metaData.value(
"Keys"_L1).toArray();
55 const QCborArray mimeTypes = metaData.value(
"MimeTypes"_L1).toArray();
56 QImageIOPlugin *plugin = qobject_cast<QImageIOPlugin *>(loader->instance(i));
57 const int keyCount = keys.size();
58 for (
int k = 0; k < keyCount; ++k) {
59 const QByteArray key = keys.at(k).toString().toLatin1();
60 if (plugin && (plugin->capabilities(
nullptr, key) & cap) != 0) {
61 result->append(mimeTypes.at(k).toString().toLatin1());
63 resultKeys->append(key);
86 QList<QByteArray> formats;
87 formats.reserve(_qt_NumFormats);
88 for (
int i = 0; i < _qt_NumFormats; ++i)
89 formats << _qt_BuiltInFormats[i].extension;
91#ifndef QT_NO_IMAGEFORMATPLUGIN
92 appendImagePluginFormats(irhLoader(), pluginCapability(cap), &formats);
95 std::sort(formats.begin(), formats.end());
96 formats.erase(std::unique(formats.begin(), formats.end()), formats.end());
104 QList<QByteArray> mimeTypes;
105 mimeTypes.reserve(_qt_NumFormats);
106 for (
const auto &fmt : _qt_BuiltInFormats)
107 mimeTypes.emplace_back(imagePrefix() + fmt.mimeType);
109#ifndef QT_NO_IMAGEFORMATPLUGIN
110 appendImagePluginMimeTypes(irhLoader(), pluginCapability(cap), &mimeTypes);
113 std::sort(mimeTypes.begin(), mimeTypes.end());
114 mimeTypes.erase(std::unique(mimeTypes.begin(), mimeTypes.end()), mimeTypes.end());
120 QList<QByteArray> formats;
121 if (mimeType.startsWith(imagePrefix())) {
122 const QByteArrayView type = mimeType.mid(imagePrefix().size());
123 for (
const auto &fmt : _qt_BuiltInFormats) {
124 if (fmt.mimeType == type && !formats.contains(fmt.extension))
125 formats << fmt.extension;
129#ifndef QT_NO_IMAGEFORMATPLUGIN
130 QList<QByteArray> mimeTypes;
131 QList<QByteArray> keys;
132 appendImagePluginMimeTypes(irhLoader(), pluginCapability(cap), &mimeTypes, &keys);
133 for (
int i = 0; i < mimeTypes.size(); ++i) {
134 if (mimeTypes.at(i) == mimeType) {
135 const auto &key = keys.at(i);
136 if (!formats.contains(key))